From 201ae92b0f5b30126dabdb6453e19846a3224497 Mon Sep 17 00:00:00 2001 From: Ismail Kaboubi Date: Thu, 21 Mar 2024 14:01:14 +0100 Subject: [PATCH] feat(upgrade): upgrade terraform provider to v0.40.0 (#17) Co-authored-by: ISMAIL KABOUBI --- Makefile | 4 +- .../v1alpha1/zz_generated.conversion_hubs.go | 3 + .../v1alpha1/zz_generated.deepcopy.go | 292 +++++++- .../v1alpha1/zz_generated.managed.go | 60 ++ .../v1alpha1/zz_generated.managedlist.go | 9 + .../v1alpha1/zz_move_terraformed.go | 129 ++++ apis/additionalip/v1alpha1/zz_move_types.go | 150 ++++ .../additionalip/v1alpha1/zz_service_types.go | 22 +- .../v1alpha1/zz_generated.conversion_hubs.go | 10 + .../gateway/v1alpha1/zz_generated.deepcopy.go | 293 ++++++++ apis/gateway/v1alpha1/zz_generated.managed.go | 68 ++ .../v1alpha1/zz_generated.managedlist.go | 17 + .../v1alpha1/zz_generated.resolvers.go | 88 +++ apis/gateway/v1alpha1/zz_groupversion_info.go | 32 + .../v1alpha1/zz_projectgateway_terraformed.go | 129 ++++ .../v1alpha1/zz_projectgateway_types.go | 171 +++++ apis/zz_register.go | 2 + config/additional_ip/config.go | 13 +- config/external_name.go | 2 + config/gateway/config.go | 21 + config/me/config.go | 1 - config/provider-metadata.yaml | 105 ++- config/provider.go | 3 + config/registry/config.go | 2 - config/schema.json | 2 +- examples/gateway/gateway.yaml | 22 + examples/gateway/privatenetwork.yaml | 14 + examples/gateway/subnet.yaml | 19 + examples/providerconfig/secret.yaml.tmpl | 8 +- hack/fix.sh | 2 +- .../additionalip/move/zz_controller.go | 74 ++ .../gateway/projectgateway/zz_controller.go | 74 ++ internal/controller/zz_setup.go | 4 + .../additionalip.ovh.edixos.io_moves.yaml | 382 ++++++++++ ...gateway.ovh.edixos.io_projectgateways.yaml | 673 ++++++++++++++++++ 35 files changed, 2858 insertions(+), 42 deletions(-) create mode 100755 apis/additionalip/v1alpha1/zz_move_terraformed.go create mode 100755 apis/additionalip/v1alpha1/zz_move_types.go create mode 100755 apis/gateway/v1alpha1/zz_generated.conversion_hubs.go create mode 100644 apis/gateway/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/gateway/v1alpha1/zz_generated.managed.go create mode 100644 apis/gateway/v1alpha1/zz_generated.managedlist.go create mode 100644 apis/gateway/v1alpha1/zz_generated.resolvers.go create mode 100755 apis/gateway/v1alpha1/zz_groupversion_info.go create mode 100755 apis/gateway/v1alpha1/zz_projectgateway_terraformed.go create mode 100755 apis/gateway/v1alpha1/zz_projectgateway_types.go create mode 100644 config/gateway/config.go create mode 100644 examples/gateway/gateway.yaml create mode 100644 examples/gateway/privatenetwork.yaml create mode 100644 examples/gateway/subnet.yaml create mode 100755 internal/controller/additionalip/move/zz_controller.go create mode 100755 internal/controller/gateway/projectgateway/zz_controller.go create mode 100644 package/crds/additionalip.ovh.edixos.io_moves.yaml create mode 100644 package/crds/gateway.ovh.edixos.io_projectgateways.yaml diff --git a/Makefile b/Makefile index d98c052..2160f20 100644 --- a/Makefile +++ b/Makefile @@ -8,10 +8,10 @@ export TERRAFORM_VERSION ?= 1.2.1 export TERRAFORM_PROVIDER_SOURCE ?= ovh/ovh export TERRAFORM_PROVIDER_REPO ?= https://github.com/ovh/terraform-provider-ovh -export TERRAFORM_PROVIDER_VERSION ?= 0.39.0 +export TERRAFORM_PROVIDER_VERSION ?= 0.40.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME ?= terraform-provider-ovh export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX ?= https://releases.hashicorp.com/$(TERRAFORM_PROVIDER_DOWNLOAD_NAME)/$(TERRAFORM_PROVIDER_VERSION) -export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-ovh_v0.39.0 +export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-ovh_v0.40.0 export TERRAFORM_DOCS_PATH ?= website/docs diff --git a/apis/additionalip/v1alpha1/zz_generated.conversion_hubs.go b/apis/additionalip/v1alpha1/zz_generated.conversion_hubs.go index 1fcc102..4e4c666 100755 --- a/apis/additionalip/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/additionalip/v1alpha1/zz_generated.conversion_hubs.go @@ -9,6 +9,9 @@ package v1alpha1 // Hub marks this type as a conversion hub. func (tr *ProjectFailoverIPAttach) Hub() {} +// Hub marks this type as a conversion hub. +func (tr *Move) Hub() {} + // Hub marks this type as a conversion hub. func (tr *Reverse) Hub() {} diff --git a/apis/additionalip/v1alpha1/zz_generated.deepcopy.go b/apis/additionalip/v1alpha1/zz_generated.deepcopy.go index c68d378..4f5c24e 100644 --- a/apis/additionalip/v1alpha1/zz_generated.deepcopy.go +++ b/apis/additionalip/v1alpha1/zz_generated.deepcopy.go @@ -152,6 +152,236 @@ func (in *DetailsParameters) DeepCopy() *DetailsParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Move) DeepCopyInto(out *Move) { + *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 Move. +func (in *Move) DeepCopy() *Move { + if in == nil { + return nil + } + out := new(Move) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Move) 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 *MoveInitParameters) DeepCopyInto(out *MoveInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = make([]RoutedToInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoveInitParameters. +func (in *MoveInitParameters) DeepCopy() *MoveInitParameters { + if in == nil { + return nil + } + out := new(MoveInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MoveList) DeepCopyInto(out *MoveList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Move, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoveList. +func (in *MoveList) DeepCopy() *MoveList { + if in == nil { + return nil + } + out := new(MoveList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MoveList) 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 *MoveObservation) DeepCopyInto(out *MoveObservation) { + *out = *in + if in.CanBeTerminated != nil { + in, out := &in.CanBeTerminated, &out.CanBeTerminated + *out = new(bool) + **out = **in + } + if in.Country != nil { + in, out := &in.Country, &out.Country + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.OrganisationID != nil { + in, out := &in.OrganisationID, &out.OrganisationID + *out = new(string) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = make([]RoutedToObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.TaskStartDate != nil { + in, out := &in.TaskStartDate, &out.TaskStartDate + *out = new(string) + **out = **in + } + if in.TaskStatus != nil { + in, out := &in.TaskStatus, &out.TaskStatus + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoveObservation. +func (in *MoveObservation) DeepCopy() *MoveObservation { + if in == nil { + return nil + } + out := new(MoveObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MoveParameters) DeepCopyInto(out *MoveParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = make([]RoutedToParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoveParameters. +func (in *MoveParameters) DeepCopy() *MoveParameters { + if in == nil { + return nil + } + out := new(MoveParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MoveSpec) DeepCopyInto(out *MoveSpec) { + *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 MoveSpec. +func (in *MoveSpec) DeepCopy() *MoveSpec { + if in == nil { + return nil + } + out := new(MoveSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MoveStatus) DeepCopyInto(out *MoveStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MoveStatus. +func (in *MoveStatus) DeepCopy() *MoveStatus { + if in == nil { + return nil + } + out := new(MoveStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OrderInitParameters) DeepCopyInto(out *OrderInitParameters) { *out = *in @@ -987,6 +1217,11 @@ func (in *ReverseStatus) DeepCopy() *ReverseStatus { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoutedToInitParameters) DeepCopyInto(out *RoutedToInitParameters) { *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutedToInitParameters. @@ -1022,6 +1257,11 @@ func (in *RoutedToObservation) DeepCopy() *RoutedToObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *RoutedToParameters) DeepCopyInto(out *RoutedToParameters) { *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutedToParameters. @@ -1203,7 +1443,7 @@ func (in *ServiceObservation) DeepCopyInto(out *ServiceObservation) { } if in.RoutedTo != nil { in, out := &in.RoutedTo, &out.RoutedTo - *out = make([]RoutedToObservation, len(*in)) + *out = make([]ServiceRoutedToObservation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -1274,6 +1514,56 @@ func (in *ServiceParameters) DeepCopy() *ServiceParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceRoutedToInitParameters) DeepCopyInto(out *ServiceRoutedToInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRoutedToInitParameters. +func (in *ServiceRoutedToInitParameters) DeepCopy() *ServiceRoutedToInitParameters { + if in == nil { + return nil + } + out := new(ServiceRoutedToInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceRoutedToObservation) DeepCopyInto(out *ServiceRoutedToObservation) { + *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRoutedToObservation. +func (in *ServiceRoutedToObservation) DeepCopy() *ServiceRoutedToObservation { + if in == nil { + return nil + } + out := new(ServiceRoutedToObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceRoutedToParameters) DeepCopyInto(out *ServiceRoutedToParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceRoutedToParameters. +func (in *ServiceRoutedToParameters) DeepCopy() *ServiceRoutedToParameters { + if in == nil { + return nil + } + out := new(ServiceRoutedToParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { *out = *in diff --git a/apis/additionalip/v1alpha1/zz_generated.managed.go b/apis/additionalip/v1alpha1/zz_generated.managed.go index a85f82f..d936edf 100644 --- a/apis/additionalip/v1alpha1/zz_generated.managed.go +++ b/apis/additionalip/v1alpha1/zz_generated.managed.go @@ -7,6 +7,66 @@ package v1alpha1 import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +// GetCondition of this Move. +func (mg *Move) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Move. +func (mg *Move) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Move. +func (mg *Move) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Move. +func (mg *Move) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Move. +func (mg *Move) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Move. +func (mg *Move) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Move. +func (mg *Move) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Move. +func (mg *Move) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Move. +func (mg *Move) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Move. +func (mg *Move) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Move. +func (mg *Move) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Move. +func (mg *Move) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this ProjectFailoverIPAttach. func (mg *ProjectFailoverIPAttach) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/additionalip/v1alpha1/zz_generated.managedlist.go b/apis/additionalip/v1alpha1/zz_generated.managedlist.go index e6c7d56..37203a8 100644 --- a/apis/additionalip/v1alpha1/zz_generated.managedlist.go +++ b/apis/additionalip/v1alpha1/zz_generated.managedlist.go @@ -7,6 +7,15 @@ package v1alpha1 import resource "github.com/crossplane/crossplane-runtime/pkg/resource" +// GetItems of this MoveList. +func (l *MoveList) 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 ProjectFailoverIPAttachList. func (l *ProjectFailoverIPAttachList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/additionalip/v1alpha1/zz_move_terraformed.go b/apis/additionalip/v1alpha1/zz_move_terraformed.go new file mode 100755 index 0000000..82e50cd --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_move_terraformed.go @@ -0,0 +1,129 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "dario.cat/mergo" + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Move +func (mg *Move) GetTerraformResourceType() string { + return "ovh_ip_move" +} + +// GetConnectionDetailsMapping for this Move +func (tr *Move) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Move +func (tr *Move) 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 Move +func (tr *Move) 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 Move +func (tr *Move) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Move +func (tr *Move) 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 Move +func (tr *Move) 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 Move +func (tr *Move) 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) +} + +// GetInitParameters of this Move +func (tr *Move) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { + params, err := tr.GetParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) + } + if !shouldMergeInitProvider { + return params, nil + } + + initParams, err := tr.GetInitParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) + } + + // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the + // slices from the initProvider to forProvider. As it also sets + // overwrite to true, we need to set it back to false, we don't + // want to overwrite the forProvider fields with the initProvider + // fields. + err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { + c.Overwrite = false + }) + if err != nil { + return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) + } + + return params, nil +} + +// LateInitialize this Move using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Move) LateInitialize(attrs []byte) (bool, error) { + params := &MoveParameters{} + 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 *Move) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/additionalip/v1alpha1/zz_move_types.go b/apis/additionalip/v1alpha1/zz_move_types.go new file mode 100755 index 0000000..6d49f98 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_move_types.go @@ -0,0 +1,150 @@ +/* +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 MoveInitParameters struct { + + // Custom description on your ip + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Routage information + RoutedTo []RoutedToInitParameters `json:"routedTo,omitempty" tf:"routed_to,omitempty"` +} + +type MoveObservation struct { + CanBeTerminated *bool `json:"canBeTerminated,omitempty" tf:"can_be_terminated,omitempty"` + + Country *string `json:"country,omitempty" tf:"country,omitempty"` + + // Custom description on your ip + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + OrganisationID *string `json:"organisationId,omitempty" tf:"organisation_id,omitempty"` + + // Routage information + RoutedTo []RoutedToObservation `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to + TaskStartDate *string `json:"taskStartDate,omitempty" tf:"task_start_date,omitempty"` + + // Status field of the current IP task that is in charge of changing the service the IP is attached to + TaskStatus *string `json:"taskStatus,omitempty" tf:"task_status,omitempty"` + + // Possible values for ip type + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type MoveParameters struct { + + // Custom description on your ip + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // +kubebuilder:validation:Optional + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Routage information + // +kubebuilder:validation:Optional + RoutedTo []RoutedToParameters `json:"routedTo,omitempty" tf:"routed_to,omitempty"` +} + +type RoutedToInitParameters struct { + + // Service where ip is routed to + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type RoutedToObservation struct { + + // Service where ip is routed to + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type RoutedToParameters struct { + + // Service where ip is routed to + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName" tf:"service_name,omitempty"` +} + +// MoveSpec defines the desired state of Move +type MoveSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider MoveParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // 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 MoveInitParameters `json:"initProvider,omitempty"` +} + +// MoveStatus defines the observed state of Move. +type MoveStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider MoveObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// Move is the Schema for the Moves 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:resource:scope=Cluster,categories={crossplane,managed,ovh} +type Move 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.ip) || (has(self.initProvider) && has(self.initProvider.ip))",message="spec.forProvider.ip is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.routedTo) || (has(self.initProvider) && has(self.initProvider.routedTo))",message="spec.forProvider.routedTo is a required parameter" + Spec MoveSpec `json:"spec"` + Status MoveStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// MoveList contains a list of Moves +type MoveList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Move `json:"items"` +} + +// Repository type metadata. +var ( + Move_Kind = "Move" + Move_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Move_Kind}.String() + Move_KindAPIVersion = Move_Kind + "." + CRDGroupVersion.String() + Move_GroupVersionKind = CRDGroupVersion.WithKind(Move_Kind) +) + +func init() { + SchemeBuilder.Register(&Move{}, &MoveList{}) +} diff --git a/apis/additionalip/v1alpha1/zz_service_types.go b/apis/additionalip/v1alpha1/zz_service_types.go index 765b735..ec317ab 100755 --- a/apis/additionalip/v1alpha1/zz_service_types.go +++ b/apis/additionalip/v1alpha1/zz_service_types.go @@ -221,16 +221,6 @@ type PlanParameters struct { PricingMode *string `json:"pricingMode" tf:"pricing_mode,omitempty"` } -type RoutedToInitParameters struct { -} - -type RoutedToObservation struct { - ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` -} - -type RoutedToParameters struct { -} - type ServiceInitParameters struct { // Custom description on your ip @@ -279,7 +269,7 @@ type ServiceObservation struct { PlanOption []PlanOptionObservation `json:"planOption,omitempty" tf:"plan_option,omitempty"` // Routage information - RoutedTo []RoutedToObservation `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + RoutedTo []ServiceRoutedToObservation `json:"routedTo,omitempty" tf:"routed_to,omitempty"` ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` @@ -310,6 +300,16 @@ type ServiceParameters struct { PlanOption []PlanOptionParameters `json:"planOption,omitempty" tf:"plan_option,omitempty"` } +type ServiceRoutedToInitParameters struct { +} + +type ServiceRoutedToObservation struct { + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ServiceRoutedToParameters struct { +} + // ServiceSpec defines the desired state of Service type ServiceSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/gateway/v1alpha1/zz_generated.conversion_hubs.go b/apis/gateway/v1alpha1/zz_generated.conversion_hubs.go new file mode 100755 index 0000000..5095aa4 --- /dev/null +++ b/apis/gateway/v1alpha1/zz_generated.conversion_hubs.go @@ -0,0 +1,10 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +// Hub marks this type as a conversion hub. +func (tr *ProjectGateway) Hub() {} diff --git a/apis/gateway/v1alpha1/zz_generated.deepcopy.go b/apis/gateway/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..0062d83 --- /dev/null +++ b/apis/gateway/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,293 @@ +//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 *ProjectGateway) DeepCopyInto(out *ProjectGateway) { + *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 ProjectGateway. +func (in *ProjectGateway) DeepCopy() *ProjectGateway { + if in == nil { + return nil + } + out := new(ProjectGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectGateway) 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 *ProjectGatewayInitParameters) DeepCopyInto(out *ProjectGatewayInitParameters) { + *out = *in + if in.Model != nil { + in, out := &in.Model, &out.Model + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NetworkIDRef != nil { + in, out := &in.NetworkIDRef, &out.NetworkIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.NetworkIDSelector != nil { + in, out := &in.NetworkIDSelector, &out.NetworkIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGatewayInitParameters. +func (in *ProjectGatewayInitParameters) DeepCopy() *ProjectGatewayInitParameters { + if in == nil { + return nil + } + out := new(ProjectGatewayInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectGatewayList) DeepCopyInto(out *ProjectGatewayList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGatewayList. +func (in *ProjectGatewayList) DeepCopy() *ProjectGatewayList { + if in == nil { + return nil + } + out := new(ProjectGatewayList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectGatewayList) 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 *ProjectGatewayObservation) DeepCopyInto(out *ProjectGatewayObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Model != nil { + in, out := &in.Model, &out.Model + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGatewayObservation. +func (in *ProjectGatewayObservation) DeepCopy() *ProjectGatewayObservation { + if in == nil { + return nil + } + out := new(ProjectGatewayObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectGatewayParameters) DeepCopyInto(out *ProjectGatewayParameters) { + *out = *in + if in.Model != nil { + in, out := &in.Model, &out.Model + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NetworkIDRef != nil { + in, out := &in.NetworkIDRef, &out.NetworkIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.NetworkIDSelector != nil { + in, out := &in.NetworkIDSelector, &out.NetworkIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetIDRef != nil { + in, out := &in.SubnetIDRef, &out.SubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGatewayParameters. +func (in *ProjectGatewayParameters) DeepCopy() *ProjectGatewayParameters { + if in == nil { + return nil + } + out := new(ProjectGatewayParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectGatewaySpec) DeepCopyInto(out *ProjectGatewaySpec) { + *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 ProjectGatewaySpec. +func (in *ProjectGatewaySpec) DeepCopy() *ProjectGatewaySpec { + if in == nil { + return nil + } + out := new(ProjectGatewaySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectGatewayStatus) DeepCopyInto(out *ProjectGatewayStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectGatewayStatus. +func (in *ProjectGatewayStatus) DeepCopy() *ProjectGatewayStatus { + if in == nil { + return nil + } + out := new(ProjectGatewayStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/gateway/v1alpha1/zz_generated.managed.go b/apis/gateway/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..86018df --- /dev/null +++ b/apis/gateway/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +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 ProjectGateway. +func (mg *ProjectGateway) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectGateway. +func (mg *ProjectGateway) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectGateway. +func (mg *ProjectGateway) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectGateway. +func (mg *ProjectGateway) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectGateway. +func (mg *ProjectGateway) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectGateway. +func (mg *ProjectGateway) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectGateway. +func (mg *ProjectGateway) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectGateway. +func (mg *ProjectGateway) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectGateway. +func (mg *ProjectGateway) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectGateway. +func (mg *ProjectGateway) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectGateway. +func (mg *ProjectGateway) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectGateway. +func (mg *ProjectGateway) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/gateway/v1alpha1/zz_generated.managedlist.go b/apis/gateway/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..2323c2d --- /dev/null +++ b/apis/gateway/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +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 ProjectGatewayList. +func (l *ProjectGatewayList) 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/gateway/v1alpha1/zz_generated.resolvers.go b/apis/gateway/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..0978471 --- /dev/null +++ b/apis/gateway/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,88 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + v1alpha1 "github.com/edixos/provider-ovh/apis/network/v1alpha1" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this ProjectGateway. +func (mg *ProjectGateway) 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.NetworkID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.NetworkIDRef, + Selector: mg.Spec.ForProvider.NetworkIDSelector, + To: reference.To{ + List: &v1alpha1.PrivateNetworkList{}, + Managed: &v1alpha1.PrivateNetwork{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.NetworkID") + } + mg.Spec.ForProvider.NetworkID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.NetworkIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.SubnetIDRef, + Selector: mg.Spec.ForProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetList{}, + Managed: &v1alpha1.Subnet{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SubnetID") + } + mg.Spec.ForProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.SubnetIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.NetworkID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.NetworkIDRef, + Selector: mg.Spec.InitProvider.NetworkIDSelector, + To: reference.To{ + List: &v1alpha1.PrivateNetworkList{}, + Managed: &v1alpha1.PrivateNetwork{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.NetworkID") + } + mg.Spec.InitProvider.NetworkID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.NetworkIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.InitProvider.SubnetID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.SubnetIDRef, + Selector: mg.Spec.InitProvider.SubnetIDSelector, + To: reference.To{ + List: &v1alpha1.SubnetList{}, + Managed: &v1alpha1.Subnet{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.InitProvider.SubnetID") + } + mg.Spec.InitProvider.SubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.InitProvider.SubnetIDRef = rsp.ResolvedReference + + return nil +} diff --git a/apis/gateway/v1alpha1/zz_groupversion_info.go b/apis/gateway/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..54efd0e --- /dev/null +++ b/apis/gateway/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=gateway.ovh.edixos.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "gateway.ovh.edixos.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/gateway/v1alpha1/zz_projectgateway_terraformed.go b/apis/gateway/v1alpha1/zz_projectgateway_terraformed.go new file mode 100755 index 0000000..feeb22c --- /dev/null +++ b/apis/gateway/v1alpha1/zz_projectgateway_terraformed.go @@ -0,0 +1,129 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "dario.cat/mergo" + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this ProjectGateway +func (mg *ProjectGateway) GetTerraformResourceType() string { + return "ovh_cloud_project_gateway" +} + +// GetConnectionDetailsMapping for this ProjectGateway +func (tr *ProjectGateway) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProjectGateway +func (tr *ProjectGateway) 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 ProjectGateway +func (tr *ProjectGateway) 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 ProjectGateway +func (tr *ProjectGateway) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectGateway +func (tr *ProjectGateway) 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 ProjectGateway +func (tr *ProjectGateway) 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 ProjectGateway +func (tr *ProjectGateway) 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) +} + +// GetInitParameters of this ProjectGateway +func (tr *ProjectGateway) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { + params, err := tr.GetParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) + } + if !shouldMergeInitProvider { + return params, nil + } + + initParams, err := tr.GetInitParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) + } + + // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the + // slices from the initProvider to forProvider. As it also sets + // overwrite to true, we need to set it back to false, we don't + // want to overwrite the forProvider fields with the initProvider + // fields. + err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { + c.Overwrite = false + }) + if err != nil { + return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) + } + + return params, nil +} + +// LateInitialize this ProjectGateway using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectGateway) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectGatewayParameters{} + 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 *ProjectGateway) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/gateway/v1alpha1/zz_projectgateway_types.go b/apis/gateway/v1alpha1/zz_projectgateway_types.go new file mode 100755 index 0000000..4aead45 --- /dev/null +++ b/apis/gateway/v1alpha1/zz_projectgateway_types.go @@ -0,0 +1,171 @@ +/* +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 ProjectGatewayInitParameters struct { + Model *string `json:"model,omitempty" tf:"model,omitempty"` + + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +crossplane:generate:reference:type=github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Reference to a PrivateNetwork in network to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDRef *v1.Reference `json:"networkIdRef,omitempty" tf:"-"` + + // Selector for a PrivateNetwork in network to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDSelector *v1.Selector `json:"networkIdSelector,omitempty" tf:"-"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // +crossplane:generate:reference:type=github.com/edixos/provider-ovh/apis/network/v1alpha1.Subnet + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Reference to a Subnet in network to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a Subnet in network to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` +} + +type ProjectGatewayObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Model *string `json:"model,omitempty" tf:"model,omitempty"` + + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +type ProjectGatewayParameters struct { + + // +kubebuilder:validation:Optional + Model *string `json:"model,omitempty" tf:"model,omitempty"` + + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +crossplane:generate:reference:type=github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Reference to a PrivateNetwork in network to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDRef *v1.Reference `json:"networkIdRef,omitempty" tf:"-"` + + // Selector for a PrivateNetwork in network to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDSelector *v1.Selector `json:"networkIdSelector,omitempty" tf:"-"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Service name of the resource representing the id of the cloud project. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // +crossplane:generate:reference:type=github.com/edixos/provider-ovh/apis/network/v1alpha1.Subnet + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Reference to a Subnet in network to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a Subnet in network to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` +} + +// ProjectGatewaySpec defines the desired state of ProjectGateway +type ProjectGatewaySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectGatewayParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // 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 ProjectGatewayInitParameters `json:"initProvider,omitempty"` +} + +// ProjectGatewayStatus defines the observed state of ProjectGateway. +type ProjectGatewayStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectGatewayObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// ProjectGateway is the Schema for the ProjectGateways 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:resource:scope=Cluster,categories={crossplane,managed,ovh} +type ProjectGateway 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.model) || (has(self.initProvider) && has(self.initProvider.model))",message="spec.forProvider.model is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.region) || (has(self.initProvider) && has(self.initProvider.region))",message="spec.forProvider.region is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + Spec ProjectGatewaySpec `json:"spec"` + Status ProjectGatewayStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectGatewayList contains a list of ProjectGateways +type ProjectGatewayList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectGateway `json:"items"` +} + +// Repository type metadata. +var ( + ProjectGateway_Kind = "ProjectGateway" + ProjectGateway_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectGateway_Kind}.String() + ProjectGateway_KindAPIVersion = ProjectGateway_Kind + "." + CRDGroupVersion.String() + ProjectGateway_GroupVersionKind = CRDGroupVersion.WithKind(ProjectGateway_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectGateway{}, &ProjectGatewayList{}) +} diff --git a/apis/zz_register.go b/apis/zz_register.go index ca868da..c027ba5 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -16,6 +16,7 @@ import ( v1alpha1databases "github.com/edixos/provider-ovh/apis/databases/v1alpha1" v1alpha1dedicatedserver "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" v1alpha1dns "github.com/edixos/provider-ovh/apis/dns/v1alpha1" + v1alpha1gateway "github.com/edixos/provider-ovh/apis/gateway/v1alpha1" v1alpha1iam "github.com/edixos/provider-ovh/apis/iam/v1alpha1" v1alpha1kube "github.com/edixos/provider-ovh/apis/kube/v1alpha1" v1alpha1lb "github.com/edixos/provider-ovh/apis/lb/v1alpha1" @@ -41,6 +42,7 @@ func init() { v1alpha1databases.SchemeBuilder.AddToScheme, v1alpha1dedicatedserver.SchemeBuilder.AddToScheme, v1alpha1dns.SchemeBuilder.AddToScheme, + v1alpha1gateway.SchemeBuilder.AddToScheme, v1alpha1iam.SchemeBuilder.AddToScheme, v1alpha1kube.SchemeBuilder.AddToScheme, v1alpha1lb.SchemeBuilder.AddToScheme, diff --git a/config/additional_ip/config.go b/config/additional_ip/config.go index 4ef0d07..af225aa 100644 --- a/config/additional_ip/config.go +++ b/config/additional_ip/config.go @@ -2,15 +2,22 @@ package additional_ip import "github.com/crossplane/upjet/pkg/config" +const ( + shortGroup = "additionalip" +) + // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { p.AddResourceConfigurator("ovh_cloud_project_failover_ip_attach", func(r *config.Resource) { - r.ShortGroup = "additionalip" + r.ShortGroup = shortGroup }) p.AddResourceConfigurator("ovh_ip_reverse", func(r *config.Resource) { - r.ShortGroup = "additionalip" + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_ip_move", func(r *config.Resource) { + r.ShortGroup = shortGroup }) p.AddResourceConfigurator("ovh_ip_service", func(r *config.Resource) { - r.ShortGroup = "additionalip" + r.ShortGroup = shortGroup }) } diff --git a/config/external_name.go b/config/external_name.go index 2b6d936..e27ba35 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -91,6 +91,7 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_me_api_oauth2_client": config.IdentifierFromProvider, "ovh_cloud_project_failover_ip_attach": config.IdentifierFromProvider, "ovh_ip_reverse": config.IdentifierFromProvider, + "ovh_ip_move": config.IdentifierFromProvider, "ovh_ip_service": config.IdentifierFromProvider, "ovh_dedicated_ceph_acl": config.IdentifierFromProvider, "ovh_dedicated_server_install_task": config.IdentifierFromProvider, @@ -161,6 +162,7 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_vrack_dedicated_server_interface": config.IdentifierFromProvider, "ovh_vrack_ip": config.IdentifierFromProvider, "ovh_vrack_iploadbalancing": config.IdentifierFromProvider, + "ovh_cloud_project_gateway": config.IdentifierFromProvider, } // ExternalNameConfigurations applies all external name configs listed in the diff --git a/config/gateway/config.go b/config/gateway/config.go new file mode 100644 index 0000000..a9af15a --- /dev/null +++ b/config/gateway/config.go @@ -0,0 +1,21 @@ +package gateway + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "gateway" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_cloud_project_gateway", func(r *config.Resource) { + r.ShortGroup = shortGroup + r.Kind = "ProjectGateway" + r.References["network_id"] = config.Reference{ + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + } + r.References["subnet_id"] = config.Reference{ + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.Subnet", + } + }) +} diff --git a/config/me/config.go b/config/me/config.go index 7b2dfa8..5547507 100644 --- a/config/me/config.go +++ b/config/me/config.go @@ -27,5 +27,4 @@ func Configure(p *config.Provider) { r.ShortGroup = shortGroup r.Kind = "Oauth2Client" }) - } diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 0e0c8ec..45d8c68 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -41,6 +41,7 @@ resources: OVH_HOSTING_PRIVATEDATABASE_WHITELIST_NAME_TEST: '- Set a custom label to your whitelisted IP address' OVH_HOSTING_PRIVATEDATABASE_WHITELIST_SERVICE_TEST: '- Set this variable to true to authorize service access the whitelisted IP address' OVH_HOSTING_PRIVATEDATABASE_WHITELIST_SFTP_TEST: '- Set this variable to true to authorize SFTP access to a whitelisted IP address' + OVH_IP_MOVE_SERVICE_NAME_TEST: '- The value you have to set for testing ip move resources.' OVH_IP_TEST: ', OVH_IP_BLOCK_TEST, OVH_IP_REVERSE_TEST - The values you have to set for testing ip reverse resources.' OVH_IPLB_IPFO_TEST: '- An array of FailOver IPs (also known as Additional IPs) that shall be associated with the IPLB Service' OVH_IPLB_SERVICE_TEST: '- The ID of the IP Load Balancer to use' @@ -60,9 +61,16 @@ resources: - (Optional) The API Consumer key. If omitted, the OVH_CONSUMER_KEY environment variable is used. endpoint: |- - - (Required) Specify which API endpoint to use. + - (Optional) Specify which API endpoint to use. It can be set using the OVH_ENDPOINT environment variable. e.g. ovh-eu or ovh-ca. + kimsufi-ca: for Kimsufi Canada API + kimsufi-eu: for Kimsufi Europe API + ovh-ca: for OVHcloud Canada API + ovh-eu: for OVHcloud Europe API + ovh-us: for OVHcloud US API + soyoustart-ca: for So you Start Canada API + soyoustart-eu: for So you Start Europe API importStatements: [] cloud_project.html.markdown: subCategory: "" @@ -873,6 +881,20 @@ resources: status: '- Ip status, can be ok or operationPending' subType: '- IP sub type, can be cloud or ovh' importStatements: [] + cloud_project_gateway.html.markdown: + subCategory: Gateway + description: 'cloud_project_gateway.html.markdownsubcategory: "Gateway"' + name: cloud_project_gateway.html.markdown + title: cloud_project_gateway.html.markdown + argumentDocs: + model: '- (Required) The model of the gateway.' + name: '- (Required) The name of the gateway.' + network_id: '- (Required) The ID of the private network.' + region: '- (Required) The region of the gateway.' + service_name: '- (Required) The ID of the private network.' + status: '- The status of the gateway.' + subnet_id: '- (Required) The ID of the subnet.' + importStatements: [] cloud_project_kube.html.markdown: subCategory: "" description: 'cloud_project_kube.html.markdownsubcategory : "Managed Kubernetes Service"' @@ -906,7 +928,7 @@ resources: name: '- (Optional) The name of the kubernetes cluster.' next_upgrade_versions: '- Kubernetes versions available for upgrade.' nodes_url: '- Cluster nodes URL.' - private_network_configuration: '- (Optional) The private network configuration' + private_network_configuration: '- (Optional) The private network configuration. If this is set then the 2 parameters below shall be defined.' private_network_id: '- (Optional) OpenStack private network (or vRack) ID to use. Changing this value recreates the resource, including ETCD user data. Defaults - not use private network.' private_network_routing_as_default: '- Defines whether routing should default to using the nodes'' private interface, instead of their public interface. Default is false.' region: '- a valid OVHcloud public cloud region ID in which the kubernetes cluster will be available. Ex.: "GRA1". Defaults to all public cloud regions. Changing this value recreates the resource.' @@ -1519,35 +1541,36 @@ resources: name: dedicated_server.html.markdown title: dedicated_server.html.markdown argumentDocs: - boot_id: '- boot id of the server' - boot_script: '- boot script of the server' - commercial_range: '- dedicated server commercial range' - datacenter: '- dedicated datacenter localisation (bhs1,bhs2,...)' + boot_id: '- Boot id of the server' + boot_script: '- Boot script of the server' + commercial_range: '- Dedicated server commercial range' + datacenter: '- Dedicated datacenter localisation (bhs1,bhs2,...)' + display_name: '- Dedicated server display name' enabled: '- VirtualNetworkInterface activation state' enabled_public_vnis: '- List of enabled public VNI uuids' enabled_vrack_aggregation_vnis: '- List of enabled vrack_aggregation VNI uuids' enabled_vrack_vnis: '- List of enabled vrack VNI uuids' - ip: '- dedicated server ip (IPv4)' - ips: '- dedicated server ip blocks' - link_speed: '- link speed of the server' + ip: '- Dedicated server ip (IPv4)' + ips: '- Dedicated server ip blocks' + link_speed: '- Link speed of the server' mode: '- VirtualNetworkInterface mode (public,vrack,vrack_aggregation)' monitoring: '- Icmp monitoring state' - name: '- dedicated server name' + name: '- Dedicated server name' nics: '- NetworkInterfaceControllers bound to this VirtualNetworkInterface' os: '- Operating system' professional_use: '- Does this server have professional use option' - rack: '- rack id of the server' - rescue_mail: '- rescue mail of the server' - reverse: '- dedicated server reverse' - root_device: '- root device of the server' - server_id: '- your server id' + rack: '- Rack id of the server' + rescue_mail: '- Rescue mail of the server' + reverse: '- Dedicated server reverse' + root_device: '- Root device of the server' + server_id: '- Server id' server_name: '- Server bound to this VirtualNetworkInterface' service_name: '- (Required) The service_name of your dedicated server.' - state: '- error, hacked, hackedBlocked, ok' + state: '- Error, hacked, hackedBlocked, ok' support_level: '- Dedicated server support level (critical, fastpath, gs, pro)' urn: '- URN of the dedicated server instance' uuid: '- VirtualNetworkInterface unique id' - vnis: '- the list of Virtualnetworkinterface assiociated with this server' + vnis: '- The list of Virtualnetworkinterface associated with this server' vrack: '- vRack name' importStatements: [] dedicated_server_boots.html.markdown: @@ -1610,6 +1633,35 @@ resources: start_date: '- Task creation date in RFC3339 format.' status: '- Task status (should be done)' importStatements: [] + dedicated_server_specifications_hardware.html.markdown: + subCategory: "" + description: 'dedicated_server_specifications_hardware.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_specifications_hardware.html.markdown + title: dedicated_server_specifications_hardware.html.markdown + argumentDocs: + boot_mode: '- Server boot mode' + cores_per_processor: '- Number of cores per processor' + default_hardware_raid_size: '- Default hardware raid size for this server' + default_hardware_raid_type: '- Default hardware raid type configured on this server' + description: '- Commercial name of this server' + disk_group_id: '- Identifier of this disk group' + disk_groups: '- Details about the groups of disks in the server' + disk_size: '- Disk capacity' + disk_type: '- Type of the disk (SSD, SATA, SAS, ...)' + expansion_cards: '- Details about the server''s expansion cards' + form_factor: '- Server form factor' + memory_size: '- RAM capacity' + motherboard: '- Server motherboard' + number_of_disks: '- Number of disks in this group' + number_of_processors: '- Number of processors in this dedicated server' + processor_architecture: '- Processor architecture bit' + processor_name: '- Processor name' + raid_controller: '- Raid controller, if any, managing this group of disks' + service_name: '- (Required) The internal name of your dedicated server.' + threads_per_processor: '- Number of threads per processor' + type: '- Expansion card type enum' + usb_keys: '- Capacity of the USB keys installed on your server, if any' + importStatements: [] dedicated_server_update.html.markdown: subCategory: "" description: 'dedicated_server_update.html.markdownsubcategory : "Dedicated Server"' @@ -1840,6 +1892,25 @@ resources: id: '- Hash of the list of the resource groups IDs.' resource_groups: '- List of the resource groups IDs.' importStatements: [] + ip_move.html.markdown: + subCategory: "" + description: 'ip_move.html.markdownsubcategory : "Additional IP"' + name: ip_move.html.markdown + title: ip_move.html.markdown + argumentDocs: + can_be_terminated: '- Whether IP service can be terminated' + country: '- Country' + description: '- Description attached to the IP' + ip: '- (Required) IP block that we want to attach to a different service' + organisation_id: '- IP block organisation Id' + routed_to: |- + - (Required) Service to route the IP to. If null, the IP will be parked + instead of moved + service_name: '- (Required) Name of the service to route the IP to. IP will be parked if this value is an empty string' + task_start_date: '- Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to' + task_status: '- Status field of the current IP task that is in charge of changing the service the IP is attached to' + type: '- Possible values for ip type' + importStatements: [] ip_reverse.html.markdown: subCategory: "" description: 'ip_reverse.html.markdownsubcategory : "Additional IP"' diff --git a/config/provider.go b/config/provider.go index 85ce642..419273c 100644 --- a/config/provider.go +++ b/config/provider.go @@ -8,6 +8,8 @@ import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" + "github.com/edixos/provider-ovh/config/gateway" + "github.com/edixos/provider-ovh/config/cloud" "github.com/edixos/provider-ovh/config/iam" "github.com/edixos/provider-ovh/config/me" @@ -85,6 +87,7 @@ func GetProvider() *ujconfig.Provider { object_storage.Configure, web_cloud_private_sql.Configure, vrack.Configure, + gateway.Configure, } { configure(pc) } diff --git a/config/registry/config.go b/config/registry/config.go index d4dd28e..2108a5d 100644 --- a/config/registry/config.go +++ b/config/registry/config.go @@ -12,7 +12,6 @@ func Configure(p *config.Provider) { r.ShortGroup = shortGroup r.Kind = "ContainerRegistry" r.UseAsync = true - }) p.AddResourceConfigurator("ovh_cloud_project_containerregistry_oidc", func(r *config.Resource) { r.ShortGroup = shortGroup @@ -49,5 +48,4 @@ func Configure(p *config.Provider) { return conn, nil } }) - } diff --git a/config/schema.json b/config/schema.json index 9b2dabf..4558026 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/ovh/ovh":{"provider":{"version":0,"block":{"attributes":{"application_key":{"type":"string","description":"The OVH API Application Key.","description_kind":"plain","optional":true},"application_secret":{"type":"string","description":"The OVH API Application Secret.","description_kind":"plain","optional":true},"consumer_key":{"type":"string","description":"The OVH API Consumer key.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The OVH API endpoint to target (ex: \"ovh-eu\").","description_kind":"plain","required":true}},"description_kind":"plain"}},"resource_schemas":{"ovh_cloud_project":{"version":0,"block":{"attributes":{"access":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_alerting":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Alerting creation date","description_kind":"markdown","computed":true},"delay":{"type":"number","description":"Possible values for delay between two alerts in seconds","description_kind":"markdown","required":true},"email":{"type":"string","description":"Email to contact","description_kind":"markdown","required":true},"formatted_monthly_threshold":{"nested_type":{"attributes":{"currency_code":{"type":"string","description_kind":"plain","computed":true},"text":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Formatted monthly threshold for this alerting","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Alerting unique UUID","description_kind":"markdown","computed":true},"monthly_threshold":{"type":"number","description":"Monthly threshold for this alerting in currency","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"The project id","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Registry creation date","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Registry name","description_kind":"plain","required":true},"plan":{"type":["list",["object",{"code":"string","created_at":"string","features":["list",["object",{"vulnerability":"bool"}]],"id":"string","name":"string","registry_limits":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"updated_at":"string"}]],"description":"Plan of the registry","description_kind":"plain","computed":true},"plan_id":{"type":"string","description":"Plan ID of the registry.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project ID of your registry","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Current size of the registry (bytes)","description_kind":"plain","computed":true},"status":{"type":"string","description":"Registry status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Registry last update date","description_kind":"plain","computed":true},"url":{"type":"string","description":"Access url of the registry","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of your registry","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_management":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","required":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_registry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","required":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_oidc":{"version":0,"block":{"attributes":{"delete_users":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"oidc_admin_group":{"type":"string","description_kind":"plain","optional":true},"oidc_auto_onboard":{"type":"bool","description_kind":"plain","optional":true},"oidc_client_id":{"type":"string","description_kind":"plain","required":true},"oidc_client_secret":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"oidc_endpoint":{"type":"string","description_kind":"plain","required":true},"oidc_groups_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_name":{"type":"string","description_kind":"plain","required":true},"oidc_scope":{"type":"string","description_kind":"plain","required":true},"oidc_user_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_verify_cert":{"type":"bool","description_kind":"plain","optional":true},"registry_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","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"}},"ovh_cloud_project_containerregistry_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"User email.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"login":{"type":"string","description":"Registry name","description_kind":"plain","required":true},"password":{"type":"string","description":"User password","description_kind":"plain","computed":true,"sensitive":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"user":{"type":"string","description":"User name","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database":{"version":0,"block":{"attributes":{"advanced_configuration":{"type":["map","string"],"description":"Advanced configuration key / value","description_kind":"plain","optional":true,"computed":true},"backup_regions":{"type":["list","string"],"description":"List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field","description_kind":"plain","optional":true,"computed":true},"backup_time":{"type":"string","description":"Time on which backups start every day","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Date of the creation of the cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the cluster","description_kind":"plain","optional":true},"disk_size":{"type":"number","description":"Disk size attributes of the cluster","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Disk type attributes of the cluster","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"component":"string","domain":"string","path":"string","port":"number","scheme":"string","ssl":"bool","ssl_mode":"string","uri":"string"}]],"description":"List of all endpoints of the service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"flavor":{"type":"string","description":"The node flavor used for this cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","optional":true},"maintenance_time":{"type":"string","description":"Time on which maintenances can start every day","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Type of network of the cluster","description_kind":"plain","computed":true},"opensearch_acls_enabled":{"type":"bool","description":"Defines whether the ACLs are enabled on an Opensearch cluster","description_kind":"plain","optional":true},"plan":{"type":"string","description":"Plan of the cluster","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the cluster","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the engine deployed on the cluster","description_kind":"plain","required":true}},"block_types":{"nodes":{"nesting_mode":"list","block":{"attributes":{"network_id":{"type":"string","description":"Private network ID in which the node is. It's the regional openstackId of the private network.","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region of the node","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Private subnet ID in which the node is","description_kind":"plain","optional":true}},"description":"List of nodes composing the service","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_database":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"default":{"type":"bool","description":"Defines if the database has been created by default","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_integration":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"destination_service_id":{"type":"string","description":"ID of the destination service","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parameters":{"type":["map","string"],"description":"Parameters for the integration","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"source_service_id":{"type":"string","description":"ID of the source service","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the integration","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the integration","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_ip_restriction":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"description":{"type":"string","description":"Description of the IP restriction","description_kind":"plain","optional":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Authorized IP","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the IP restriction","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permission":{"type":"string","description":"Permission to give to this username on this topic","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description":"Topic affected by this acl","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permission":{"type":"string","description":"Permission to give to this username on this resource","description_kind":"plain","required":true},"resource":{"type":"string","description":"Resource affected by this acl","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topic":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_insync_replicas":{"type":"number","description":"Minimum insync replica accepted for this topic","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the topic","description_kind":"plain","required":true},"partitions":{"type":"number","description":"Number of partitions for this topic","description_kind":"plain","optional":true,"computed":true},"replication":{"type":"number","description":"Number of replication for this topic","description_kind":"plain","optional":true,"computed":true},"retention_bytes":{"type":"number","description":"Number of bytes for the retention of the data for this topic","description_kind":"plain","optional":true,"computed":true},"retention_hours":{"type":"number","description":"Number of hours for the retention of the data for this topic","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespace":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the namespace","description_kind":"plain","required":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace","description_kind":"plain","required":true},"retention_block_data_expiration_duration":{"type":"string","description":"Controls how long we wait before expiring stale data","description_kind":"plain","optional":true},"retention_block_size_duration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk","description_kind":"plain","optional":true,"computed":true},"retention_buffer_future_duration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted","description_kind":"plain","optional":true},"retention_buffer_past_duration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted","description_kind":"plain","optional":true},"retention_period_duration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"snapshot_enabled":{"type":"bool","description":"Defines whether M3db will create snapshot files for this namespace","description_kind":"plain","optional":true},"type":{"type":"string","description":"Type of namespace","description_kind":"plain","computed":true},"writes_to_commit_log_enabled":{"type":"bool","description":"Defines whether M3db will include writes to this namespace in the commit log","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"group":{"type":"string","description":"Group of the user","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_mongodb_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to with the authentication database","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_pattern":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_index_count":{"type":"number","description":"Maximum number of index for this pattern","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern format","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"acls":{"nesting_mode":"set","block":{"attributes":{"pattern":{"type":"string","description":"Pattern of the ACL","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission of the ACL","description_kind":"plain","required":true}},"description":"Acls of the user","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_connection_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"database_id":{"type":"string","description":"Database used for the connection pool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Connection mode to the connection pool","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the connection pool","description_kind":"plain","required":true},"port":{"type":"number","description":"Port of the connection pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Size of the connection pool","description_kind":"plain","required":true},"ssl_mode":{"type":"string","description":"SSL connection mode for the pool","description_kind":"plain","computed":true},"uri":{"type":"string","description":"Connection URI to the pool","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"Database user authorized to connect to the pool, if none all the users are allowed","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_redis_user":{"version":0,"block":{"attributes":{"categories":{"type":["set","string"],"description":"Categories of the user","description_kind":"plain","optional":true},"channels":{"type":["set","string"],"description":"Channels of the user","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"commands":{"type":["set","string"],"description":"Commands of the user","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keys":{"type":["set","string"],"description":"Keys of the user","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_failover_ip_attach":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"IP block","description_kind":"plain","optional":true,"computed":true},"continent_code":{"type":"string","description":"Ip continent","description_kind":"plain","optional":true,"computed":true},"geo_loc":{"type":"string","description":"Ip location","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"Ip id","description_kind":"plain","computed":true},"ip":{"type":"string","description":"Ip","description_kind":"plain","optional":true,"computed":true},"progress":{"type":"number","description":"Current operation progress in percent","description_kind":"plain","computed":true},"routed_to":{"type":"string","description":"Instance where ip is routed to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"status":{"type":"string","description":"Ip status","description_kind":"plain","computed":true},"sub_type":{"type":"string","description":"IP sub type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_kube":{"version":0,"block":{"attributes":{"control_plane_is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"kubeconfig_attributes":{"type":["list",["object",{"client_certificate":"string","client_key":"string","cluster_ca_certificate":"string","host":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true,"sensitive":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_url":{"type":"string","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"update_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"customization":{"nesting_mode":"set","block":{"block_types":{"apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}}},"description_kind":"plain","deprecated":true}},"customization_apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"customization_kube_proxy":{"nesting_mode":"set","block":{"block_types":{"iptables":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ipvs":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"scheduler":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true},"tcp_fin_timeout":{"type":"string","description_kind":"plain","optional":true},"tcp_timeout":{"type":"string","description_kind":"plain","optional":true},"udp_timeout":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"private_network_configuration":{"nesting_mode":"set","block":{"attributes":{"default_vrack_gateway":{"type":"string","description":"If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.","description_kind":"plain","required":true},"private_network_routing_as_default":{"type":"bool","description":"Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false.","description_kind":"plain","required":true}},"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"}},"ovh_cloud_project_kube_iprestrictions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description":"List of IP restrictions for the cluster","description_kind":"plain","required":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service 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"}},"ovh_cloud_project_kube_nodepool":{"version":0,"block":{"attributes":{"anti_affinity":{"type":"bool","description":"Enable anti affinity groups for nodes in the pool","description_kind":"plain","optional":true,"computed":true},"autoscale":{"type":"bool","description":"Enable auto-scaling for the pool","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_unneeded_time_seconds":{"type":"number","description":"scaleDownUnneededTimeSeconds for autoscaling","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_unready_time_seconds":{"type":"number","description":"scaleDownUnreadyTimeSeconds for autoscaling","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_utilization_threshold":{"type":"number","description":"scaleDownUtilizationThreshold for autoscaling","description_kind":"plain","optional":true,"computed":true},"available_nodes":{"type":"number","description":"Number of nodes which are actually ready in the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Creation date","description_kind":"plain","computed":true},"current_nodes":{"type":"number","description":"Number of nodes present in the pool","description_kind":"plain","computed":true},"desired_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"flavor":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description":"Flavor name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"max_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"min_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"monthly_billed":{"type":"bool","description":"Enable monthly billing on all nodes in the pool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"size_status":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status","description_kind":"plain","computed":true},"up_to_date_nodes":{"type":"number","description":"Number of nodes with latest version installed in the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date","description_kind":"plain","computed":true}},"block_types":{"template":{"nesting_mode":"set","block":{"block_types":{"metadata":{"nesting_mode":"set","block":{"attributes":{"annotations":{"type":["map","string"],"description":"annotations","description_kind":"plain","required":true},"finalizers":{"type":["list","string"],"description":"finalizers","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"labels","description_kind":"plain","required":true}},"description":"metadata","description_kind":"plain"},"min_items":1,"max_items":1},"spec":{"nesting_mode":"set","block":{"attributes":{"taints":{"type":["list",["map","string"]],"description":"taints","description_kind":"plain","required":true},"unschedulable":{"type":"bool","description":"unschedulable","description_kind":"plain","required":true}},"description":"spec","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Node pool template","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"}},"ovh_cloud_project_kube_oidc":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer_url":{"type":"string","description_kind":"plain","required":true},"kube_id":{"type":"string","description_kind":"plain","required":true},"oidc_ca_content":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_groups_prefix":{"type":"string","description_kind":"plain","optional":true},"oidc_required_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_signing_algs":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_username_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_username_prefix":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","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"}},"ovh_cloud_project_network_private":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"regions":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"regions_attributes":{"type":["set",["object",{"openstackid":"string","region":"string","status":"string"}]],"description_kind":"plain","computed":true},"regions_status":{"type":["set",["object",{"region":"string","status":"string"}]],"description_kind":"plain","deprecated":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vlan_id":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_cloud_project_network_private_subnet":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","computed":true},"dhcp":{"type":"bool","description_kind":"plain","optional":true},"end":{"type":"string","description_kind":"plain","required":true},"gateway_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_pools":{"type":["set",["object",{"dhcp":"bool","end":"string","network":"string","region":"string","start":"string"}]],"description_kind":"plain","computed":true},"network":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_gateway":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_region_storage_presign":{"version":0,"block":{"attributes":{"expire":{"type":"number","description":"How long (in seconds) the URL will be valid.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description":"The S3 storage container's name.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the object to download or upload.","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name.","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"url":{"type":"string","description":"Presigned URL.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"openstack_rc":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"role_name":{"type":"string","description_kind":"plain","optional":true},"role_names":{"type":["list","string"],"description_kind":"plain","optional":true},"roles":{"type":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credential":{"version":0,"block":{"attributes":{"access_key_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_user_id":{"type":"string","description_kind":"plain","computed":true},"secret_access_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The policy document. This is a JSON formatted string.","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_workflow_backup":{"version":0,"block":{"attributes":{"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"cron":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_execution_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name.","description_kind":"plain","required":true},"rotation":{"type":"number","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_cluster":{"version":0,"block":{"attributes":{"archive_allowed_networks":{"type":["set","string"],"description":"Allowed networks for ARCHIVE flow type","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"cluster_type":{"type":"string","description":"Cluster type","description_kind":"plain","computed":true},"dedicated_input_pem":{"type":"string","description":"PEM for dedicated inputs","description_kind":"plain","computed":true,"sensitive":true},"direct_input_allowed_networks":{"type":["set","string"],"description":"Allowed networks for DIRECT_INPUT flow type","description_kind":"plain","optional":true},"direct_input_pem":{"type":"string","description":"PEM for direct inputs","description_kind":"plain","computed":true,"sensitive":true},"hostname":{"type":"string","description":"hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_archive_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for ARCHIVE flow type","description_kind":"plain","computed":true,"sensitive":true},"initial_direct_input_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for DIRECT_INPUT flow type","description_kind":"plain","computed":true,"sensitive":true},"initial_query_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for QUERY flow type","description_kind":"plain","computed":true,"sensitive":true},"is_default":{"type":"bool","description":"All content generated by given service will be placed on this cluster","description_kind":"plain","computed":true},"is_unlocked":{"type":"bool","description":"Allow given service to perform advanced operations on cluster","description_kind":"plain","computed":true},"query_allowed_networks":{"type":["set","string"],"description":"Allowed networks for QUERY flow type","description_kind":"plain","optional":true},"region":{"type":"string","description":"Data center localization","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_input":{"version":0,"block":{"attributes":{"allowed_networks":{"type":["list","string"],"description":"IP blocks","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Input creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Input description","description_kind":"plain","required":true},"engine_id":{"type":"string","description":"Input engine ID","description_kind":"plain","required":true},"exposed_port":{"type":"string","description":"Port","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"Hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_id":{"type":"string","description":"Input ID","description_kind":"plain","computed":true},"is_restart_required":{"type":"bool","description":"Indicate if input need to be restarted","description_kind":"plain","computed":true},"nb_instance":{"type":"number","description":"Number of instance running","description_kind":"plain","optional":true,"computed":true},"public_address":{"type":"string","description":"Input IP address","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl_certificate":{"type":"string","description":"Input SSL certificate","description_kind":"plain","computed":true,"sensitive":true},"status":{"type":"string","description":"init: configuration required, pending: ready to start, running: available","description_kind":"plain","computed":true},"stream_id":{"type":"string","description":"Associated Graylog stream","description_kind":"plain","required":true},"title":{"type":"string","description":"Input title","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Input last update","description_kind":"plain","computed":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"block_types":{"flowgger":{"nesting_mode":"list","block":{"attributes":{"log_format":{"type":"string","description":"Type of format to decode","description_kind":"plain","required":true},"log_framing":{"type":"string","description":"Indicates how messages are delimited","description_kind":"plain","required":true}},"description":"Flowgger configuration","description_kind":"plain"},"max_items":1},"logstash":{"nesting_mode":"list","block":{"attributes":{"filter_section":{"type":"string","description":"The filter section of logstash.conf","description_kind":"plain","optional":true},"input_section":{"type":"string","description":"The filter section of logstash.conf","description_kind":"plain","required":true},"pattern_section":{"type":"string","description":"The list of customs Grok patterns","description_kind":"plain","optional":true}},"description":"Logstash configuration","description_kind":"plain"},"max_items":1}},"description":"Input configuration","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_dbaas_logs_output_graylog_stream":{"version":0,"block":{"attributes":{"can_alert":{"type":"bool","description":"Indicates if the current user can create alert on the stream","description_kind":"plain","computed":true},"cold_storage_compression":{"type":"string","description":"Cold storage compression method","description_kind":"plain","optional":true,"computed":true},"cold_storage_content":{"type":"string","description":"ColdStorage content","description_kind":"plain","optional":true,"computed":true},"cold_storage_enabled":{"type":"bool","description":"Is Cold storage enabled?","description_kind":"plain","optional":true,"computed":true},"cold_storage_notify_enabled":{"type":"bool","description":"Notify on new Cold storage archive","description_kind":"plain","optional":true,"computed":true},"cold_storage_retention":{"type":"number","description":"Cold storage retention in year","description_kind":"plain","optional":true,"computed":true},"cold_storage_target":{"type":"string","description":"ColdStorage destination","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Stream creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"indexing_enabled":{"type":"bool","description":"Enable ES indexing","description_kind":"plain","optional":true,"computed":true},"indexing_max_size":{"type":"number","description":"Maximum indexing size (in GB)","description_kind":"plain","optional":true,"computed":true},"indexing_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting","description_kind":"plain","optional":true,"computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"is_shareable":{"type":"bool","description":"Indicates if you are allowed to share entry","description_kind":"plain","computed":true},"nb_alert_condition":{"type":"number","description":"Number of alert condition","description_kind":"plain","computed":true},"nb_archive":{"type":"number","description":"Number of coldstored archives","description_kind":"plain","computed":true},"parent_stream_id":{"type":"string","description":"Parent stream ID","description_kind":"plain","optional":true},"pause_indexing_on_max_size":{"type":"bool","description":"If set, pause indexing when maximum size is reach","description_kind":"plain","optional":true,"computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Stream ID","description_kind":"plain","computed":true},"title":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Stream last update","description_kind":"plain","computed":true},"web_socket_enabled":{"type":"bool","description":"Enable Websocket","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_dedicated_ceph_acl":{"version":0,"block":{"attributes":{"family":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"netmask":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition":{"version":0,"block":{"attributes":{"capacity":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"used_by_snapshots":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition_access":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","required":true},"partition_name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition_snapshot":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_server_install_task":{"version":0,"block":{"attributes":{"bootid_on_destroy":{"type":"number","description":"If set, reboot the server on the specified boot id during destroy phase","description_kind":"plain","optional":true},"comment":{"type":"string","description":"Details of this task","description_kind":"plain","computed":true},"done_date":{"type":"string","description":"Completion date","description_kind":"plain","computed":true},"function":{"type":"string","description":"Function name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update","description_kind":"plain","computed":true},"partition_scheme_name":{"type":"string","description":"Partition scheme name.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"start_date":{"type":"string","description":"Task Creation date","description_kind":"plain","computed":true},"status":{"type":"string","description":"Task status","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true}},"block_types":{"details":{"nesting_mode":"list","block":{"attributes":{"change_log":{"type":"string","description":"Template change log details","description_kind":"plain","deprecated":true,"optional":true},"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","description_kind":"plain","optional":true},"disk_group_id":{"type":"number","description_kind":"plain","optional":true},"install_rtm":{"type":"bool","description_kind":"plain","optional":true},"install_sql_server":{"type":"bool","description_kind":"plain","optional":true},"language":{"type":"string","description":"language","description_kind":"plain","optional":true},"no_raid":{"type":"bool","description_kind":"plain","optional":true},"post_installation_script_link":{"type":"string","description":"Indicate the URL where your postinstall customisation script is located","description_kind":"plain","optional":true},"post_installation_script_return":{"type":"string","description":"indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'","description_kind":"plain","optional":true},"reset_hw_raid":{"type":"bool","description_kind":"plain","optional":true},"soft_raid_devices":{"type":"number","description_kind":"plain","optional":true},"ssh_key_name":{"type":"string","description":"Name of the ssh key that should be installed. Password login will be disabled","description_kind":"plain","optional":true},"use_distrib_kernel":{"type":"bool","description":"Use the distribution's native kernel instead of the recommended OVH Kernel","description_kind":"plain","optional":true},"use_spla":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_dedicated_server_networking":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Operation description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"status":{"type":"string","description":"Operation status","description_kind":"plain","computed":true}},"block_types":{"interfaces":{"nesting_mode":"set","block":{"attributes":{"macs":{"type":["set","string"],"description":"Interface Mac address","description_kind":"plain","required":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","required":true}},"description":"Interface or interfaces aggregation.","description_kind":"plain"},"min_items":1,"max_items":2},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_dedicated_server_reboot_task":{"version":0,"block":{"attributes":{"comment":{"type":"string","description":"Details of this task","description_kind":"plain","computed":true},"done_date":{"type":"string","description":"Completion date","description_kind":"plain","computed":true},"function":{"type":"string","description":"Function name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["list","string"],"description":"Change this value to recreate a reboot task.","description_kind":"plain","required":true},"last_update":{"type":"string","description":"Last update","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"start_date":{"type":"string","description":"Task Creation date","description_kind":"plain","computed":true},"status":{"type":"string","description":"Task status","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server_update":{"version":0,"block":{"attributes":{"boot_id":{"type":"number","description":"The boot id of your dedicated server.","description_kind":"plain","optional":true,"computed":true},"boot_script":{"type":"string","description":"The boot script of your dedicated server.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_domain_zone":{"version":0,"block":{"attributes":{"dnssec_supported":{"type":"bool","description":"Is DNSSEC supported by this zone","description_kind":"plain","computed":true},"has_dns_anycast":{"type":"bool","description":"hasDnsAnycast flag of the DNS zone","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update date of the DNS zone","description_kind":"plain","computed":true},"name":{"type":"string","description":"Zone name","description_kind":"plain","computed":true},"name_servers":{"type":["list","string"],"description":"Name servers that host the DNS zone","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_domain_zone_record":{"version":0,"block":{"attributes":{"fieldtype":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subdomain":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_domain_zone_redirection":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keywords":{"type":"string","description_kind":"plain","optional":true},"subdomain":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU on your private database","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"Datacenter where this private database is located","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Name displayed in customer panel for your private database","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"Private database hostname","description_kind":"plain","computed":true},"hostname_ftp":{"type":"string","description":"Private database FTP hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"infrastructure":{"type":"string","description":"Infrastructure where service was stored","description_kind":"plain","computed":true},"offer":{"type":"string","description":"Type of the private database offer","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"port":{"type":"number","description":"Private database service port","description_kind":"plain","computed":true},"port_ftp":{"type":"number","description":"Private database FTP port","description_kind":"plain","computed":true},"quota_size":{"type":"number","description":"Space allowed (in MB) on your private database","description_kind":"plain","computed":true},"quota_used":{"type":"number","description":"Sapce used (in MB) on your private database","description_kind":"plain","computed":true},"ram":{"type":"number","description":"Amount of ram (in MB) on your private database","description_kind":"plain","computed":true},"server":{"type":"string","description":"Private database server name","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Private database state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Private database type","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description":"Private database available versions","description_kind":"plain","computed":true},"version_label":{"type":"string","description":"Private database version label","description_kind":"plain","computed":true},"version_number":{"type":"number","description":"Private database version number","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_database":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description":"Name of your new database","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description":"Password for the new user ( alphanumeric and 8 characters minimum )","description_kind":"plain","required":true,"sensitive":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect on your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user_grant":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description":"Database name where add grant","description_kind":"plain","required":true},"grant":{"type":"string","description":"Database name where add grant","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect on your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_whitelist":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"The whitelisted IP in your instance","description_kind":"plain","required":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP","description_kind":"plain","required":true},"service":{"type":"bool","description":"Authorize this IP to access service port","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"sftp":{"type":"bool","description":"Authorize this IP to access SFTP port","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_permissions_group":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","required":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policy":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identities":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"permissions_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_group":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_ip_reverse":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","required":true},"ip_reverse":{"type":"string","description_kind":"plain","required":true},"reverse":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_ip_service":{"version":0,"block":{"attributes":{"can_be_terminated":{"type":"bool","description_kind":"plain","computed":true},"country":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Custom description on your ip","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"organisation_id":{"type":"string","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"routed_to":{"type":["list",["object",{"service_name":"string"}]],"description":"Routage information","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description":"Possible values for ip type","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_iploadbalancing":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Set the name displayed in ManagerV6 for your iplb (max 50 chars)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description":"Your IP load balancing","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPV4 associated to your IP load balancing","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPV6 associated to your IP load balancing. DEPRECATED.","description_kind":"plain","computed":true},"metrics_token":{"type":"string","description":"The metrics token associated with your IP load balancing","description_kind":"plain","computed":true,"sensitive":true},"offer":{"type":"string","description":"The offer of your IP load balancing","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"orderable_zone":{"type":["set",["object",{"name":"string","plan_code":"string"}]],"description":"Available additional zone for your Load Balancer","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","computed":true},"ssl_configuration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null.","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Current state of your IP","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vrack_eligibility":{"type":"bool","description":"Vrack eligibility","description_kind":"plain","computed":true},"vrack_name":{"type":"string","description":"Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product","description_kind":"plain","computed":true},"zone":{"type":["list","string"],"description":"Location where your service is","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_iploadbalancing_http_farm":{"version":0,"block":{"attributes":{"balance":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stickiness":{"type":"string","description_kind":"plain","optional":true},"vrack_network_id":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"probe":{"nesting_mode":"list","block":{"attributes":{"force_ssl":{"type":"bool","description_kind":"plain","optional":true},"interval":{"type":"number","description_kind":"plain","optional":true},"match":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"negate":{"type":"bool","description_kind":"plain","optional":true},"pattern":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_http_farm_server":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"backup":{"type":"bool","description_kind":"plain","optional":true},"chain":{"type":"string","description_kind":"plain","optional":true},"cookie":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"farm_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"on_marked_down":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"probe":{"type":"bool","description_kind":"plain","optional":true},"proxy_protocol_version":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_http_frontend":{"version":0,"block":{"attributes":{"allowed_source":{"type":["list","string"],"description_kind":"plain","optional":true},"dedicated_ipfo":{"type":["set","string"],"description_kind":"plain","optional":true},"default_farm_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"default_ssl_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"hsts":{"type":"bool","description_kind":"plain","optional":true},"http_header":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"redirect_location":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_http_route":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your route, this field is for you","description_kind":"plain","optional":true},"frontend_id":{"type":"number","description":"Route traffic for this frontend","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list",["object",{"field":"string","match":"string","negate":"bool","pattern":"string","rule_id":"number","sub_field":"string"}]],"description":"List of rules to match to trigger action","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","required":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated last. Only the first matching route will trigger an action","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"status":{"type":"number","description":"HTTP status code for \"redirect\" and \"reject\" actions","description_kind":"plain","optional":true},"target":{"type":"string","description":"Farm ID for \"farm\" action type or URL template for \"redirect\" action. You may use ${uri}, ${protocol}, ${host}, ${port} and ${path} variables in redirect target","description_kind":"plain","optional":true},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches","description_kind":"plain","required":true}},"description":"Action triggered when all rules match","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_http_route_rule":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match":{"type":"string","description_kind":"plain","required":true},"negate":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"route_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"sub_field":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_refresh":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["list","string"],"description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_farm":{"version":0,"block":{"attributes":{"balance":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stickiness":{"type":"string","description_kind":"plain","optional":true},"vrack_network_id":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"probe":{"nesting_mode":"list","block":{"attributes":{"force_ssl":{"type":"bool","description_kind":"plain","optional":true},"interval":{"type":"number","description_kind":"plain","optional":true},"match":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","optional":true},"negate":{"type":"bool","description_kind":"plain","optional":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_farm_server":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"backup":{"type":"bool","description_kind":"plain","optional":true},"chain":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"farm_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"on_marked_down":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"probe":{"type":"bool","description_kind":"plain","optional":true},"proxy_protocol_version":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_frontend":{"version":0,"block":{"attributes":{"allowed_source":{"type":["list","string"],"description_kind":"plain","optional":true},"dedicated_ipfo":{"type":["list","string"],"description_kind":"plain","optional":true},"default_farm_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"default_ssl_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_route":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your route, this field is for you","description_kind":"plain","optional":true},"frontend_id":{"type":"number","description":"Route traffic for this frontend","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list",["object",{"field":"string","match":"string","negate":"bool","pattern":"string","rule_id":"number","sub_field":"string"}]],"description":"List of rules to match to trigger action","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","required":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated last. Only the first matching route will trigger an action","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"string","description":"Farm ID for \"farm\" action type, empty for others","description_kind":"plain","optional":true},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches","description_kind":"plain","required":true}},"description":"Action triggered when all rules match","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_route_rule":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match":{"type":"string","description_kind":"plain","required":true},"negate":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"route_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"sub_field":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_network":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your vrack network","description_kind":"plain","optional":true},"farm_id":{"type":["list","number"],"description":"This attribute is there for documentation purpose only and isnt passed to the OVH API as it may conflicts with http/tcp farms `vrack_network_id` attribute","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_ip":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your IPloadbalancer","description_kind":"plain","required":true},"subnet":{"type":"string","description":"IP block of the private network in the vRack","description_kind":"plain","required":true},"vlan":{"type":"number","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN","description_kind":"plain","optional":true,"computed":true},"vrack_network_id":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_client":{"version":0,"block":{"attributes":{"callback_urls":{"type":["list","string"],"description":"Callback URLs of the applications using this oauth2 client. Required if using the AUTHORIZATION_CODE flow.","description_kind":"plain","optional":true},"client_id":{"type":"string","description":"Client ID for the oauth2 client, generated during the resource creation.","description_kind":"plain","computed":true},"client_secret":{"type":"string","description":"Secret for the oauth2 client, generated during the oauth2 client creation.","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description":"A description of your oauth2 client.","description_kind":"plain","required":true},"flow":{"type":"string","description":"OAuth2 flow type implemented for this oauth2 client. Can be either AUTHORIZATION_CODE or CLIENT_CREDENTIALS","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identity":{"type":"string","description":"URN that will allow you to associate this oauth2 client with an access policy","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_identity_group":{"version":0,"block":{"attributes":{"creation":{"type":"string","description_kind":"plain","computed":true},"default_group":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","optional":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_identity_user":{"version":0,"block":{"attributes":{"creation":{"type":"string","description":"Creation date of this user","description_kind":"plain","computed":true},"description":{"type":"string","description":"User description","description_kind":"plain","optional":true},"email":{"type":"string","description":"User's email","description_kind":"plain","required":true},"group":{"type":"string","description":"User's group","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update of this user","description_kind":"plain","computed":true},"login":{"type":"string","description":"User's login suffix","description_kind":"plain","required":true},"password":{"type":"string","description":"User's password","description_kind":"plain","required":true,"sensitive":true},"password_last_update":{"type":"string","description":"When the user changed his password for the last time","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current user's status","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_installation_template":{"version":0,"block":{"attributes":{"available_languages":{"type":["list","string"],"description":"List of all language available for this template","description_kind":"plain","computed":true},"base_template_name":{"type":"string","description":"OVH template name yours will be based on, choose one among the list given by compatibleTemplates function","description_kind":"plain","required":true},"beta":{"type":"bool","description":"This distribution is new and, although tested and functional, may still display odd behaviour","description_kind":"plain","computed":true},"bit_format":{"type":"number","description":"This template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation)","description_kind":"plain","computed":true},"default_language":{"type":"string","description":"The default language of this template","description_kind":"plain","required":true},"deprecated":{"type":"bool","description":"is this distribution deprecated","description_kind":"plain","computed":true},"description":{"type":"string","description":"information about this template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"the distribution this template is based on","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs)","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification":{"type":"string","description":"Date of last modification of the base image","description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"This distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"remove_default_partition_schemes":{"type":"bool","description":"Remove default partition schemes at creation","description_kind":"plain","optional":true,"computed":true},"supports_distribution_kernel":{"type":"bool","description":"This distribution supports installation using the distribution's native kernel instead of the recommended OVH kernel","description_kind":"plain","computed":true},"supports_rtm":{"type":"bool","description":"This distribution supports RTM software","description_kind":"plain","computed":true},"supports_sql_server":{"type":"bool","description":"This distribution supports the microsoft SQL server","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"block_types":{"customization":{"nesting_mode":"list","block":{"attributes":{"change_log":{"type":"string","description":"Template change log details","description_kind":"plain","deprecated":true,"optional":true},"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","description_kind":"plain","optional":true},"post_installation_script_link":{"type":"string","description":"Indicate the URL where your postinstall customisation script is located","description_kind":"plain","optional":true},"post_installation_script_return":{"type":"string","description":"indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'","description_kind":"plain","optional":true},"rating":{"type":"number","description_kind":"plain","deprecated":true,"optional":true},"ssh_key_name":{"type":"string","description":"Name of the ssh key that should be installed. Password login will be disabled","description_kind":"plain","optional":true},"use_distribution_kernel":{"type":"bool","description":"Use the distribution's native kernel instead of the recommended OVH Kernel","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"priority":{"type":"number","description":"on a reinstall, if a partitioning scheme is not specified, the one with the higher priority will be used by default, among all the compatible partitioning schemes (given the underlying hardware specifications)","description_kind":"plain","required":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme_hardware_raid":{"version":0,"block":{"attributes":{"disks":{"type":["list","string"],"description":"Disk List. Syntax is cX:dY for disks and [cX:dY,cX:dY] for groups. With X and Y resp. the controller id and the disk id","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60)","description_kind":"plain","required":true},"name":{"type":"string","description":"Hardware RAID name","description_kind":"plain","required":true},"scheme_name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"step":{"type":"number","description":"Specifies the creation order of the hardware RAID","description_kind":"plain","required":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme_partition":{"version":0,"block":{"attributes":{"filesystem":{"type":"string","description":"Partition filesystem","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mountpoint":{"type":"string","description":"partition mount point","description_kind":"plain","required":true},"order":{"type":"number","description":"step or order. specifies the creation order of the partition on the disk","description_kind":"plain","required":true},"raid":{"type":"string","description":"raid partition type","description_kind":"plain","optional":true,"computed":true},"scheme_name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"size":{"type":"number","description":"size of partition in MB, 0 =\u003e rest of the space","description_kind":"plain","required":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true},"type":{"type":"string","description":"partition type","description_kind":"plain","required":true},"volume_name":{"type":"string","description":"The volume name needed for proxmox distribution","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_ssh_key":{"version":0,"block":{"attributes":{"default":{"type":"bool","description":"True when this public Ssh key is used for rescue mode and reinstallations","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"ASCII encoded public Ssh key","description_kind":"plain","required":true},"key_name":{"type":"string","description":"Name of this public Ssh key","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"yourvrackdescription","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"yourvrackname","description_kind":"plain","optional":true,"computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_vrack_cloudproject":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"Service name of the vrack resource.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack_dedicated_server":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true}},"description_kind":"plain","deprecated":true}},"ovh_vrack_dedicated_server_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the vrack resource.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack_ip":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"Your IP block.","description_kind":"plain","required":true},"gateway":{"type":"string","description":"Your gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Your IP block","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","required":true},"zone":{"type":"string","description":"Where you want your block announced on the network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vrack_iploadbalancing":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description":"Your ipLoadbalancing","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","required":true}},"description_kind":"plain"}}},"data_source_schemas":{"ovh_cloud_project_capabilities_containerregistry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list",["object",{"plans":["list",["object",{"code":"string","created_at":"string","features":["list",["object",{"vulnerability":"bool"}]],"id":"string","name":"string","registry_limits":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"updated_at":"string"}]],"region_name":"string"}]],"description":"List of container registry capability for a single region","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_capabilities_containerregistry_filter":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"Plan code from catalog","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Plan creation date","description_kind":"plain","computed":true},"features":{"type":["list",["object",{"vulnerability":"bool"}]],"description":"Features of the plan","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Plan name","description_kind":"plain","computed":true},"plan_name":{"type":"string","description":"Plan name of the registry.","description_kind":"plain","required":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","required":true},"registry_limits":{"type":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"description":"Container registry limits","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Plan last update date","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistries":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list",["object",{"created_at":"string","id":"string","name":"string","project_id":"string","region":"string","size":"number","status":"string","updated_at":"string","url":"string","version":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Registry creation date","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Registry name","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID of your registry","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Current size of the registry (bytes)","description_kind":"plain","computed":true},"status":{"type":"string","description":"Registry status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Registry last update date","description_kind":"plain","computed":true},"url":{"type":"string","description":"Access url of the registry","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of your registry","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_management":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_registry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_oidc":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"oidc_admin_group":{"type":"string","description_kind":"plain","optional":true},"oidc_auto_onboard":{"type":"bool","description_kind":"plain","optional":true},"oidc_client_id":{"type":"string","description_kind":"plain","optional":true},"oidc_endpoint":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_name":{"type":"string","description_kind":"plain","optional":true},"oidc_scope":{"type":"string","description_kind":"plain","optional":true},"oidc_user_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_verify_cert":{"type":"bool","description_kind":"plain","optional":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"result":{"type":["list",["object",{"email":"string","id":"string","user":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database":{"version":0,"block":{"attributes":{"advanced_configuration":{"type":["map","string"],"description":"Advanced configuration key / value","description_kind":"plain","computed":true},"backup_regions":{"type":["list","string"],"description":"List of region where backups are pushed","description_kind":"plain","computed":true},"backup_time":{"type":"string","description":"Time on which backups start every day","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date of the creation of the cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the cluster","description_kind":"plain","computed":true},"disk_size":{"type":"number","description":"Disk size attributes of the cluster","description_kind":"plain","computed":true},"disk_type":{"type":"string","description":"Disk type attributes of the cluster","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"component":"string","domain":"string","path":"string","port":"number","scheme":"string","ssl":"bool","ssl_mode":"string","uri":"string"}]],"description":"List of all endpoints of the service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"flavor":{"type":"string","description":"The node flavor used for this cluster","description_kind":"plain","computed":true},"id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","computed":true},"maintenance_time":{"type":"string","description":"Time on which maintenances can start every day","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Type of network of the cluster","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"network_id":"string","region":"string","subnet_id":"string"}]],"description":"List of nodes composing the service","description_kind":"plain","computed":true},"opensearch_acls_enabled":{"type":"bool","description":"Defines whether the ACLs are enabled on an Opensearch cluster","description_kind":"plain","computed":true},"plan":{"type":"string","description":"Plan of the cluster","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the cluster","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the engine deployed on the cluster","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_capabilities":{"version":0,"block":{"attributes":{"engines":{"type":["set",["object",{"default_version":"string","description":"string","name":"string","ssl_modes":["set","string"],"versions":["set","string"]}]],"description":"Database engines available","description_kind":"plain","computed":true},"flavors":{"type":["set",["object",{"core":"number","memory":"number","name":"string","storage":"number"}]],"description":"Flavors available","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"options":{"type":["set",["object",{"name":"string","type":"string"}]],"description":"Options available","description_kind":"plain","computed":true},"plans":{"type":["set",["object",{"backup_retention":"string","description":"string","name":"string"}]],"description":"Plans available","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_certificates":{"version":0,"block":{"attributes":{"ca":{"type":"string","description":"CA certificate used for the service","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_database":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"default":{"type":"bool","description":"Defines if the database has been created by default","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the database","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_databases":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"database_ids":{"type":["list","string"],"description":"List of databases ids","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_integration":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"destination_service_id":{"type":"string","description":"ID of the destination service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description":"Integration ID","description_kind":"plain","required":true},"parameters":{"type":["map","string"],"description":"Parameters for the integration","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"source_service_id":{"type":"string","description":"ID of the source service","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status of the integration","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the integration","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_integrations":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_ids":{"type":["list","string"],"description":"List of integrations ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_ip_restrictions":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"ips":{"type":["set","string"],"description":"List of IP restriction","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Acl ID","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission to give to this username on this topic","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description":"Topic affected by this acl","description_kind":"plain","computed":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acls":{"version":0,"block":{"attributes":{"acl_ids":{"type":["list","string"],"description":"List of acl ids","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Shema registry ACL ID","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission to give to this username on this resource","description_kind":"plain","computed":true},"resource":{"type":"string","description":"Resource affected by this ACL","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this ACL","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacls":{"version":0,"block":{"attributes":{"acl_ids":{"type":["list","string"],"description":"List of schema registry acl ids","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topic":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Topic ID","description_kind":"plain","required":true},"min_insync_replicas":{"type":"number","description":"Minimum insync replica accepted for this topic","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the topic","description_kind":"plain","computed":true},"partitions":{"type":"number","description":"Number of partitions for this topic","description_kind":"plain","computed":true},"replication":{"type":"number","description":"Number of replication for this topic","description_kind":"plain","computed":true},"retention_bytes":{"type":"number","description":"Number of bytes for the retention of the data for this topic","description_kind":"plain","computed":true},"retention_hours":{"type":"number","description":"Number of hours for the retention of the data for this topic","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topics":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic_ids":{"type":["list","string"],"description":"List of topic ids","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_user_access":{"version":0,"block":{"attributes":{"cert":{"type":"string","description":"User cert","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"User key for the cert","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description":"Id of the user","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespace":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the namespace","description_kind":"plain","required":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace","description_kind":"plain","computed":true},"retention_block_data_expiration_duration":{"type":"string","description":"Controls how long we wait before expiring stale data","description_kind":"plain","computed":true},"retention_block_size_duration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk","description_kind":"plain","computed":true},"retention_buffer_future_duration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted","description_kind":"plain","computed":true},"retention_buffer_past_duration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted","description_kind":"plain","computed":true},"retention_period_duration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"snapshot_enabled":{"type":"bool","description":"Defines whether M3DB will create snapshot files for this namespace","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of namespace","description_kind":"plain","computed":true},"writes_to_commit_log_enabled":{"type":"bool","description":"Defines whether M3DB will include writes to this namespace in the commit log","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespaces":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_ids":{"type":["list","string"],"description":"List of namespaces ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"group":{"type":"string","description":"Group of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_mongodb_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user with the authentication database in the format name@authDB","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_pattern":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Pattern ID","description_kind":"plain","required":true},"max_index_count":{"type":"number","description":"Maximum number of index for this pattern","description_kind":"plain","computed":true},"pattern":{"type":"string","description":"Pattern format","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_patterns":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pattern_ids":{"type":["list","string"],"description":"List of pattern ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_user":{"version":0,"block":{"attributes":{"acls":{"type":["set",["object",{"pattern":"string","permission":"string"}]],"description":"Acls of the user","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_connection_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"database_id":{"type":"string","description":"Database used for the connection pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Connection mode to the connection pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the connection pool","description_kind":"plain","required":true},"port":{"type":"number","description":"Port of the connection pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Size of the connection pool","description_kind":"plain","computed":true},"ssl_mode":{"type":"string","description":"SSL connection mode for the pool","description_kind":"plain","computed":true},"uri":{"type":"string","description":"Connection URI to the pool","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"User authorized to connect to the pool, if none all the users are allowed","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_redis_user":{"version":0,"block":{"attributes":{"categories":{"type":["set","string"],"description":"Categories of the user","description_kind":"plain","computed":true},"channels":{"type":["set","string"],"description":"Channels of the user","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"commands":{"type":["set","string"],"description":"Commands of the user","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keys":{"type":["set","string"],"description":"Keys of the user","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_users":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"user_ids":{"type":["list","string"],"description":"List of users ids","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_databases":{"version":0,"block":{"attributes":{"cluster_ids":{"type":["list","string"],"description":"List of database clusters uuids","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_failover_ip_attach":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"IP block","description_kind":"plain","optional":true,"computed":true},"continent_code":{"type":"string","description":"Ip continent","description_kind":"plain","optional":true,"computed":true},"geo_loc":{"type":"string","description":"Ip location","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"Ip id","description_kind":"plain","computed":true},"ip":{"type":"string","description":"Ip","description_kind":"plain","optional":true,"computed":true},"progress":{"type":"number","description":"Current operation progress in percent","description_kind":"plain","computed":true},"routed_to":{"type":"string","description":"Instance where ip is routed to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"status":{"type":"string","description":"Ip status","description_kind":"plain","computed":true},"sub_type":{"type":"string","description":"IP sub type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_kube":{"version":0,"block":{"attributes":{"control_plane_is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"kube_id":{"type":"string","description_kind":"plain","required":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_url":{"type":"string","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"update_policy":{"type":"string","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"customization":{"nesting_mode":"set","block":{"block_types":{"apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}}},"description_kind":"plain","deprecated":true}},"customization_apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"customization_kube_proxy":{"nesting_mode":"set","block":{"block_types":{"iptables":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ipvs":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"scheduler":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true},"tcp_fin_timeout":{"type":"string","description_kind":"plain","optional":true},"tcp_timeout":{"type":"string","description_kind":"plain","optional":true},"udp_timeout":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_cloud_project_kube_iprestrictions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description":"List of IP restrictions for the cluster","description_kind":"plain","computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodepool":{"version":0,"block":{"attributes":{"anti_affinity":{"type":"bool","description":"Enable anti affinity groups for nodes in the pool","description_kind":"plain","computed":true},"autoscale":{"type":"bool","description":"Enable auto-scaling for the pool","description_kind":"plain","computed":true},"autoscaling_scale_down_unneeded_time_seconds":{"type":"number","description":"scaleDownUnneededTimeSeconds for autoscaling","description_kind":"plain","computed":true},"autoscaling_scale_down_unready_time_seconds":{"type":"number","description":"scaleDownUnreadyTimeSeconds for autoscaling","description_kind":"plain","computed":true},"autoscaling_scale_down_utilization_threshold":{"type":"number","description":"scaleDownUtilizationThreshold for autoscaling","description_kind":"plain","computed":true},"available_nodes":{"type":"number","description":"Number of nodes which are actually ready in the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Creation date","description_kind":"plain","computed":true},"current_nodes":{"type":"number","description":"Number of nodes present in the pool","description_kind":"plain","computed":true},"desired_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"flavor":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"max_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"min_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"monthly_billed":{"type":"bool","description":"Enable monthly billing on all nodes in the pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project id","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"size_status":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status","description_kind":"plain","computed":true},"up_to_date_nodes":{"type":"number","description":"Number of nodes with latest version installed in the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date","description_kind":"plain","computed":true}},"block_types":{"template":{"nesting_mode":"set","block":{"block_types":{"metadata":{"nesting_mode":"set","block":{"attributes":{"annotations":{"type":["map","string"],"description":"annotations","description_kind":"plain","optional":true},"finalizers":{"type":["list","string"],"description":"finalizers","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"labels","description_kind":"plain","optional":true}},"description":"metadata","description_kind":"plain"},"max_items":1},"spec":{"nesting_mode":"set","block":{"attributes":{"taints":{"type":["list",["map","string"]],"description":"taints","description_kind":"plain","optional":true},"unschedulable":{"type":"bool","description":"unschedulable","description_kind":"plain","optional":true}},"description":"spec","description_kind":"plain"},"max_items":1}},"description":"Node pool template","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodepool_nodes":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"created_at":"string","deployed_at":"string","flavor":"string","id":"string","instance_id":"string","is_up_to_date":"bool","name":"string","node_pool_id":"string","project_id":"string","status":"string","updated_at":"string","version":"string"}]],"description":"Nodes composing the node pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodes":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"created_at":"string","deployed_at":"string","flavor":"string","id":"string","instance_id":"string","is_up_to_date":"bool","name":"string","node_pool_id":"string","project_id":"string","status":"string","updated_at":"string","version":"string"}]],"description":"Nodes composing the cluster","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_oidc":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer_url":{"type":"string","description_kind":"plain","optional":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"oidc_ca_content":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_groups_prefix":{"type":"string","description_kind":"plain","optional":true},"oidc_required_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_signing_algs":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_username_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_username_prefix":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_region":{"version":0,"block":{"attributes":{"continent_code":{"type":"string","description_kind":"plain","computed":true},"datacenter_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"services":{"type":["set",["object",{"name":"string","status":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_regions":{"version":0,"block":{"attributes":{"has_services_up":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["set","string"],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"roles":{"type":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credential":{"version":0,"block":{"attributes":{"access_key_id":{"type":"string","description":"The access key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_access_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credentials":{"version":0,"block":{"attributes":{"access_key_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The policy document. This is a JSON formatted string.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"users":{"type":["list",["object",{"creation_date":"string","description":"string","roles":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"status":"string","user_id":"string","username":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_vrack":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_cluster":{"version":0,"block":{"attributes":{"archive_allowed_networks":{"type":["set","string"],"description":"Allowed networks for ARCHIVE flow type","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"cluster_type":{"type":"string","description":"Cluster type","description_kind":"plain","computed":true},"dedicated_input_pem":{"type":"string","description":"PEM for dedicated inputs","description_kind":"plain","computed":true,"sensitive":true},"direct_input_allowed_networks":{"type":["set","string"],"description":"Allowed networks for DIRECT_INPUT flow type","description_kind":"plain","computed":true},"direct_input_pem":{"type":"string","description":"PEM for direct inputs","description_kind":"plain","computed":true,"sensitive":true},"hostname":{"type":"string","description":"hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"All content generated by given service will be placed on this cluster","description_kind":"plain","computed":true},"is_unlocked":{"type":"bool","description":"Allow given service to perform advanced operations on cluster","description_kind":"plain","computed":true},"query_allowed_networks":{"type":["set","string"],"description":"Allowed networks for QUERY flow type","description_kind":"plain","computed":true},"region":{"type":"string","description":"Data center localization","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_clusters":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"uuids":{"type":["set","string"],"description":"UUID of clusters","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_input_engine":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_deprecated":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_output_graylog_stream":{"version":0,"block":{"attributes":{"can_alert":{"type":"bool","description":"Indicates if the current user can create alert on the stream","description_kind":"plain","computed":true},"cold_storage_compression":{"type":"string","description":"Cold storage compression method","description_kind":"plain","computed":true},"cold_storage_content":{"type":"string","description":"ColdStorage content","description_kind":"plain","computed":true},"cold_storage_enabled":{"type":"bool","description":"Is Cold storage enabled?","description_kind":"plain","computed":true},"cold_storage_notify_enabled":{"type":"bool","description":"Notify on new Cold storage archive","description_kind":"plain","computed":true},"cold_storage_retention":{"type":"number","description":"Cold storage retention in year","description_kind":"plain","computed":true},"cold_storage_target":{"type":"string","description":"ColdStorage destination","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Stream creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Stream description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"indexing_enabled":{"type":"bool","description":"Enable ES indexing","description_kind":"plain","computed":true},"indexing_max_size":{"type":"number","description":"Maximum indexing size (in GB)","description_kind":"plain","computed":true},"indexing_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting","description_kind":"plain","computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"is_shareable":{"type":"bool","description":"Indicates if you are allowed to share entry","description_kind":"plain","computed":true},"nb_alert_condition":{"type":"number","description":"Number of alert condition","description_kind":"plain","computed":true},"nb_archive":{"type":"number","description":"Number of coldstored archives","description_kind":"plain","computed":true},"parent_stream_id":{"type":"string","description":"Parent stream ID","description_kind":"plain","computed":true},"pause_indexing_on_max_size":{"type":"bool","description":"If set, pause indexing when maximum size is reach","description_kind":"plain","computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Stream ID","description_kind":"plain","computed":true},"title":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Stream last update","description_kind":"plain","computed":true},"web_socket_enabled":{"type":"bool","description":"Enable Websocket","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_ceph":{"version":0,"block":{"attributes":{"ceph_mons":{"type":["list","string"],"description_kind":"plain","computed":true},"ceph_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"crush_tunables":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_installation_templates":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_nasha":{"version":0,"block":{"attributes":{"can_create_partition":{"type":"bool","description":"True, if partition creation is allowed on this HA-NAS","description_kind":"plain","computed":true},"custom_name":{"type":"string","description":"The name you give to the HA-NAS","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"area of HA-NAS","description_kind":"plain","computed":true},"disk_type":{"type":"string","description":"the disk type of the HA-NAS","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Access IP of HA-NAS","description_kind":"plain","computed":true},"monitored":{"type":"bool","description":"Send an email to customer if any issue is detected","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The storage service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"zpool_capacity":{"type":"number","description":"percentage of HA-NAS space used in %","description_kind":"plain","computed":true},"zpool_size":{"type":"number","description":"the size of the HA-NAS","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server":{"version":0,"block":{"attributes":{"boot_id":{"type":"number","description_kind":"plain","computed":true},"boot_script":{"type":"string","description_kind":"plain","computed":true},"commercial_range":{"type":"string","description":"dedicater server commercial range","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"dedicated datacenter localisation (bhs1,bhs2,...)","description_kind":"plain","computed":true},"enabled_public_vnis":{"type":["list","string"],"description":"List of enabled public VNI uuids","description_kind":"plain","computed":true},"enabled_vrack_aggregation_vnis":{"type":["list","string"],"description":"List of enabled vrack_aggregation VNI uuids","description_kind":"plain","computed":true},"enabled_vrack_vnis":{"type":["list","string"],"description":"List of enabled vrack VNI uuids","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"dedicated server ip (IPv4)","description_kind":"plain","computed":true},"ips":{"type":["list","string"],"description":"dedicated server ip blocks","description_kind":"plain","computed":true},"link_speed":{"type":"number","description_kind":"plain","computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"plain","computed":true},"name":{"type":"string","description":"dedicated server name","description_kind":"plain","computed":true},"os":{"type":"string","description":"Operating system","description_kind":"plain","computed":true},"professional_use":{"type":"bool","description":"Does this server have professional use option","description_kind":"plain","computed":true},"rack":{"type":"string","description_kind":"plain","computed":true},"rescue_mail":{"type":"string","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"dedicated server reverse","description_kind":"plain","computed":true},"root_device":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"number","description":"your server id","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok","description_kind":"plain","computed":true},"support_level":{"type":"string","description":"Dedicated server support level (critical, fastpath, gs, pro)","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vnis":{"type":["list",["object",{"enabled":"bool","mode":"string","name":"string","nics":["list","string"],"server_name":"string","uuid":"string","vrack":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server_boots":{"version":0,"block":{"attributes":{"boot_type":{"type":"string","description":"Filter the value of bootType property","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel":{"type":"string","description":"Filter the value of kernel property","description_kind":"plain","optional":true},"result":{"type":["list","number"],"description":"Server compatibles netboots ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_servers":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_domain_zone":{"version":0,"block":{"attributes":{"dnssec_supported":{"type":"bool","description_kind":"plain","computed":true},"has_dns_anycast":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"name_servers":{"type":["set","string"],"description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU on your private database","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"Datacenter where this private database is located","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Name displayed in customer panel for your private database","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Private database hostname","description_kind":"plain","computed":true},"hostname_ftp":{"type":"string","description":"Private database FTP hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"infrastructure":{"type":"string","description":"Infrastructure where service was stored","description_kind":"plain","computed":true},"offer":{"type":"string","description":"Type of the private database offer","description_kind":"plain","computed":true},"port":{"type":"number","description":"Private database service port","description_kind":"plain","computed":true},"port_ftp":{"type":"number","description":"Private database FTP port","description_kind":"plain","computed":true},"quota_size":{"type":"number","description":"Space allowed (in MB) on your private database","description_kind":"plain","computed":true},"quota_used":{"type":"number","description":"Space used (in MB) on your private database","description_kind":"plain","computed":true},"ram":{"type":"number","description":"Amount of ram (in MB) on your private database","description_kind":"plain","computed":true},"server":{"type":"string","description":"Private database server name","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"state":{"type":"string","description":"Private database state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Private database type","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description":"Private database available versions","description_kind":"plain","computed":true},"version_label":{"type":"string","description":"Private database version label","description_kind":"plain","computed":true},"version_number":{"type":"number","description":"Private database version number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_database":{"version":0,"block":{"attributes":{"backup_time":{"type":"string","description":"Time of the next backup (every day)","description_kind":"plain","computed":true},"creation_date":{"type":"string","description":"Creation date of the database","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"quota_used":{"type":"number","description":"Space used by the database (in MB)","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"users":{"type":["set",["object",{"grant_type":"string","user_name":"string"}]],"description":"Users granted to this database","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of the user","description_kind":"plain","computed":true},"databases":{"type":["set",["object",{"database_name":"string","grant_type":"string"}]],"description":"Databases granted for this user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect to your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user_grant":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of the user","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"grant":{"type":"string","description":"Grant name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect to your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_whitelist":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of this whitelist","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"The whitelisted IP in your instance","description_kind":"plain","optional":true},"last_update":{"type":"string","description":"The last update date of this whitelist","description_kind":"plain","computed":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP","description_kind":"plain","computed":true},"service":{"type":"bool","description":"Authorize this IP to access service port","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"sftp":{"type":"bool","description":"Authorize this IP to access SFTP port","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whitelist status","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_permissions_group":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_permissions_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urns":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policies":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policies":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policy":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"identities":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"permissions_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_reference_actions":{"version":0,"block":{"attributes":{"actions":{"type":["set",["object",{"action":"string","categories":["set","string"],"description":"string","resource_type":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_reference_resource_type":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"types":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_group":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_groups":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_ip_service":{"version":0,"block":{"attributes":{"can_be_terminated":{"type":"bool","description_kind":"plain","computed":true},"country":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Custom description on your ip","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"organisation_id":{"type":"string","description":"IP block organisation Id","description_kind":"plain","computed":true},"routed_to":{"type":["list",["object",{"service_name":"string"}]],"description":"Routage information","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"type":{"type":"string","description":"Possible values for ip type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iploadbalancing":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metrics_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"offer":{"type":"string","description_kind":"plain","optional":true,"computed":true},"orderable_zone":{"type":["set",["object",{"name":"string","plan_code":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_configuration":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vrack_eligibility":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"vrack_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_network":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your vrack network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_ip":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IPloadbalancer","description_kind":"plain","required":true},"subnet":{"type":"string","description":"IP block of the private network in the vRack","description_kind":"plain","computed":true},"vlan":{"type":"number","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN","description_kind":"plain","computed":true},"vrack_network_id":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_networks":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","number"],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your iploadbalancer.","description_kind":"plain","required":true},"subnet":{"type":"string","description":"Filters on subnet","description_kind":"plain","optional":true},"vlan_id":{"type":"number","description":"Filters on vlan id","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_me":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"Address of nichandle","description_kind":"plain","computed":true},"area":{"type":"string","description":"Area of nichandle","description_kind":"plain","computed":true},"birth_city":{"type":"string","description":"City of birth","description_kind":"plain","computed":true},"birth_day":{"type":"string","description":"Birth date","description_kind":"plain","computed":true},"city":{"type":"string","description":"City of nichandle","description_kind":"plain","computed":true},"company_national_identification_number":{"type":"string","description":"Company National Identification Number","description_kind":"plain","computed":true},"corporation_type":{"type":"string","description":"Corporation type","description_kind":"plain","computed":true},"country":{"type":"string","description":"Customer country","description_kind":"plain","computed":true},"currency":{"type":["list",["object",{"code":"string","symbol":"string"}]],"description":"Customer currency","description_kind":"plain","computed":true},"customer_code":{"type":"string","description":"Your customer code (a numerical value used for identification when contacting support via phone call)","description_kind":"plain","computed":true},"email":{"type":"string","description":"Email address","description_kind":"plain","computed":true},"fax":{"type":"string","description":"Fax number","description_kind":"plain","computed":true},"firstname":{"type":"string","description":"First name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"italian_sdi":{"type":"string","description":"Italian SDI","description_kind":"plain","computed":true},"language":{"type":"string","description":"Language","description_kind":"plain","computed":true},"legalform":{"type":"string","description":"Customer legal form","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer name","description_kind":"plain","computed":true},"national_identification_number":{"type":"string","description":"National Identification Number","description_kind":"plain","computed":true},"nichandle":{"type":"string","description":"Customer identifier","description_kind":"plain","computed":true},"organisation":{"type":"string","description":"Name of organisation","description_kind":"plain","computed":true},"ovh_company":{"type":"string","description":"OVH subsidiary","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiary","description_kind":"plain","computed":true},"phone":{"type":"string","description":"Phone number","description_kind":"plain","computed":true},"phone_country":{"type":"string","description":"Phone number's country code","description_kind":"plain","computed":true},"sex":{"type":"string","description":"Gender","description_kind":"plain","computed":true},"spare_email":{"type":"string","description":"Spare email","description_kind":"plain","computed":true},"state":{"type":"string","description":"Nichandle state","description_kind":"plain","computed":true},"urn":{"type":"string","description":"Identity URN of the account","description_kind":"plain","computed":true},"vat":{"type":"string","description":"VAT number","description_kind":"plain","computed":true},"zip":{"type":"string","description":"Zipcode","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_client":{"version":0,"block":{"attributes":{"callback_urls":{"type":["list","string"],"description":"Callback URLs of the applications using this oauth2 client. Required if using the AUTHORIZATION_CODE flow.","description_kind":"plain","computed":true},"client_id":{"type":"string","description":"Client ID for the oauth2 client, generated during the resource creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"A description of your oauth2 client.","description_kind":"plain","computed":true},"flow":{"type":"string","description":"OAuth2 flow type implemented for this oauth2 client. Can be either AUTHORIZATION_CODE or CLIENT_CREDENTIALS","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identity":{"type":"string","description":"URN that will allow you to associate this oauth2 client with an access policy.","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_clients":{"version":0,"block":{"attributes":{"client_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_identity_group":{"version":0,"block":{"attributes":{"creation":{"type":"string","description_kind":"plain","computed":true},"default_group":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_identity_groups":{"version":0,"block":{"attributes":{"groups":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_identity_user":{"version":0,"block":{"attributes":{"creation":{"type":"string","description":"Creation date of this user","description_kind":"plain","computed":true},"description":{"type":"string","description":"User description","description_kind":"plain","computed":true},"email":{"type":"string","description":"User's email","description_kind":"plain","computed":true},"group":{"type":"string","description":"User's group","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update of this user","description_kind":"plain","computed":true},"login":{"type":"string","description":"User's login suffix","description_kind":"plain","computed":true},"password_last_update":{"type":"string","description":"When the user changed his password for the last time","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current user's status","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"user":{"type":"string","description":"User's login","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_identity_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"users":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_installation_template":{"version":0,"block":{"attributes":{"available_languages":{"type":["list","string"],"description":"List of all language available for this template","description_kind":"plain","computed":true},"beta":{"type":"bool","description":"This distribution is new and, although tested and functional, may still display odd behaviour","description_kind":"plain","computed":true},"bit_format":{"type":"number","description":"This template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation)","description_kind":"plain","computed":true},"customization":{"type":["list",["object",{"change_log":"string","custom_hostname":"string","post_installation_script_link":"string","post_installation_script_return":"string","rating":"number","ssh_key_name":"string","use_distribution_kernel":"bool"}]],"description_kind":"plain","computed":true},"default_language":{"type":"string","description":"The default language of this template","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"is this distribution deprecated","description_kind":"plain","computed":true},"description":{"type":"string","description":"information about this template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"the distribution this template is based on","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs)","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification":{"type":"string","description":"Date of last modification of the base image","description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"This distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"partition_scheme":{"type":["list",["object",{"hardware_raid":["list",["object",{"disks":["list","string"],"mode":"string","name":"string","step":"number"}]],"name":"string","partition":["list",["object",{"filesystem":"string","mountpoint":"string","order":"number","raid":"string","size":"number","type":"string","volume_name":"string"}]],"priority":"number"}]],"description_kind":"plain","computed":true},"supports_distribution_kernel":{"type":"bool","description":"This distribution supports installation using the distribution's native kernel instead of the recommended OVH kernel","description_kind":"plain","computed":true},"supports_rtm":{"type":"bool","description":"This distribution supports RTM software","description_kind":"plain","computed":true},"supports_sql_server":{"type":"bool","description":"This distribution supports the microsoft SQL server","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_templates":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_paymentmean_bankaccount":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"description_regexp":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"use_default":{"type":"bool","description_kind":"plain","optional":true},"use_oldest":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain","deprecated":true}},"ovh_me_paymentmean_creditcard":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"description_regexp":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"states":{"type":["set","string"],"description_kind":"plain","optional":true},"use_default":{"type":"bool","description_kind":"plain","optional":true},"use_last_to_expire":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain","deprecated":true}},"ovh_me_ssh_key":{"version":0,"block":{"attributes":{"default":{"type":"bool","description":"True when this public Ssh key is used for rescue mode and reinstallations","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"ASCII encoded public Ssh key","description_kind":"plain","computed":true},"key_name":{"type":"string","description":"Name of this public Ssh key","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_ssh_keys":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart":{"version":0,"block":{"attributes":{"assign":{"type":"bool","description":"Assign a shopping cart to a logged in client","description_kind":"plain","optional":true},"cart_id":{"type":"string","description":"Cart identifier","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of your cart","description_kind":"plain","optional":true},"expire":{"type":"string","description":"Expiration time (format: 2006-01-02T15:04:05Z07:00)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"items":{"type":["list","number"],"description":"Items of your cart","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"Indicates if the cart has already been validated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"result":{"type":["list",["object",{"plan_code":"string","prices":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"product_name":"string","product_type":"string"}]],"description":"List of representations of a generic product","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_options":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_code":{"type":"string","description":"Product offer identifier","description_kind":"plain","required":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"result":{"type":["list",["object",{"exclusive":"bool","family":"string","mandatory":"bool","plan_code":"string","prices":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"product_name":"string","product_type":"string"}]],"description":"List of representations of a generic product","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_options_plan":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"exclusive":{"type":"bool","description":"Define if options of this family are exclusive with each other","description_kind":"plain","computed":true},"family":{"type":"string","description":"Option family","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mandatory":{"type":"bool","description":"Define if an option of this family is mandatory","description_kind":"plain","computed":true},"options_plan_code":{"type":"string","description_kind":"plain","required":true},"plan_code":{"type":"string","description_kind":"plain","required":true},"price_capacity":{"type":"string","description":"Capacity of the pricing (type of pricing)","description_kind":"plain","required":true},"prices":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Prices of the product offer","description_kind":"plain","computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"product_name":{"type":"string","description":"Name of the product","description_kind":"plain","computed":true},"product_type":{"type":"string","description":"Product type","description_kind":"plain","computed":true},"selected_price":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Selected Price according to capacity","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_plan":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_code":{"type":"string","description_kind":"plain","required":true},"price_capacity":{"type":"string","description":"Capacity of the pricing (type of pricing)","description_kind":"plain","required":true},"prices":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Prices of the product offer","description_kind":"plain","computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"product_name":{"type":"string","description":"Name of the product","description_kind":"plain","computed":true},"product_type":{"type":"string","description":"Product type","description_kind":"plain","computed":true},"selected_price":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Selected Price according to capacity","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vps":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","computed":true},"datacenter":{"type":["map","string"],"description_kind":"plain","computed":true},"displayname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description_kind":"plain","computed":true},"keymap":{"type":"string","description_kind":"plain","computed":true},"memory":{"type":"number","description_kind":"plain","computed":true},"model":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"netbootmode":{"type":"string","description_kind":"plain","computed":true},"offertype":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"slamonitoring":{"type":"bool","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vcore":{"type":"number","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vpss":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vracks":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/ovh/ovh":{"provider":{"version":0,"block":{"attributes":{"application_key":{"type":"string","description":"The OVH API Application Key.","description_kind":"plain","optional":true},"application_secret":{"type":"string","description":"The OVH API Application Secret.","description_kind":"plain","optional":true},"consumer_key":{"type":"string","description":"The OVH API Consumer key.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The OVH API endpoint to target (ex: \"ovh-eu\").","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"ovh_cloud_project":{"version":0,"block":{"attributes":{"access":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"project_id":{"type":"string","description_kind":"plain","computed":true},"project_name":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_alerting":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Alerting creation date","description_kind":"markdown","computed":true},"delay":{"type":"number","description":"Possible values for delay between two alerts in seconds","description_kind":"markdown","required":true},"email":{"type":"string","description":"Email to contact","description_kind":"markdown","required":true},"formatted_monthly_threshold":{"nested_type":{"attributes":{"currency_code":{"type":"string","description_kind":"plain","computed":true},"text":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Formatted monthly threshold for this alerting","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Alerting unique UUID","description_kind":"markdown","computed":true},"monthly_threshold":{"type":"number","description":"Monthly threshold for this alerting in currency","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"The project id","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Registry creation date","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Registry name","description_kind":"plain","required":true},"plan":{"type":["list",["object",{"code":"string","created_at":"string","features":["list",["object",{"vulnerability":"bool"}]],"id":"string","name":"string","registry_limits":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"updated_at":"string"}]],"description":"Plan of the registry","description_kind":"plain","computed":true},"plan_id":{"type":"string","description":"Plan ID of the registry.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project ID of your registry","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Current size of the registry (bytes)","description_kind":"plain","computed":true},"status":{"type":"string","description":"Registry status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Registry last update date","description_kind":"plain","computed":true},"url":{"type":"string","description":"Access url of the registry","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of your registry","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_management":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","required":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_registry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","required":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_oidc":{"version":0,"block":{"attributes":{"delete_users":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"oidc_admin_group":{"type":"string","description_kind":"plain","optional":true},"oidc_auto_onboard":{"type":"bool","description_kind":"plain","optional":true},"oidc_client_id":{"type":"string","description_kind":"plain","required":true},"oidc_client_secret":{"type":"string","description_kind":"plain","required":true,"sensitive":true},"oidc_endpoint":{"type":"string","description_kind":"plain","required":true},"oidc_groups_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_name":{"type":"string","description_kind":"plain","required":true},"oidc_scope":{"type":"string","description_kind":"plain","required":true},"oidc_user_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_verify_cert":{"type":"bool","description_kind":"plain","optional":true},"registry_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","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"}},"ovh_cloud_project_containerregistry_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"User email.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"login":{"type":"string","description":"Registry name","description_kind":"plain","required":true},"password":{"type":"string","description":"User password","description_kind":"plain","computed":true,"sensitive":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"user":{"type":"string","description":"User name","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database":{"version":0,"block":{"attributes":{"advanced_configuration":{"type":["map","string"],"description":"Advanced configuration key / value","description_kind":"plain","optional":true,"computed":true},"backup_regions":{"type":["list","string"],"description":"List of region where backups are pushed. Not more than 1 regions for MongoDB. Not more than 2 regions for the other engines with one being the same as the nodes[].region field","description_kind":"plain","optional":true,"computed":true},"backup_time":{"type":"string","description":"Time on which backups start every day","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Date of the creation of the cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the cluster","description_kind":"plain","optional":true},"disk_size":{"type":"number","description":"Disk size attributes of the cluster","description_kind":"plain","optional":true,"computed":true},"disk_type":{"type":"string","description":"Disk type attributes of the cluster","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"component":"string","domain":"string","path":"string","port":"number","scheme":"string","ssl":"bool","ssl_mode":"string","uri":"string"}]],"description":"List of all endpoints of the service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"flavor":{"type":"string","description":"The node flavor used for this cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","optional":true},"maintenance_time":{"type":"string","description":"Time on which maintenances can start every day","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Type of network of the cluster","description_kind":"plain","computed":true},"opensearch_acls_enabled":{"type":"bool","description":"Defines whether the ACLs are enabled on an Opensearch cluster","description_kind":"plain","optional":true},"plan":{"type":"string","description":"Plan of the cluster","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the cluster","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the engine deployed on the cluster","description_kind":"plain","required":true}},"block_types":{"nodes":{"nesting_mode":"list","block":{"attributes":{"network_id":{"type":"string","description":"Private network ID in which the node is. It's the regional openstackId of the private network.","description_kind":"plain","optional":true},"region":{"type":"string","description":"Region of the node","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Private subnet ID in which the node is","description_kind":"plain","optional":true}},"description":"List of nodes composing the service","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_database":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"default":{"type":"bool","description":"Defines if the database has been created by default","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_integration":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"destination_service_id":{"type":"string","description":"ID of the destination service","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"parameters":{"type":["map","string"],"description":"Parameters for the integration","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"source_service_id":{"type":"string","description":"ID of the source service","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the integration","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the integration","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_ip_restriction":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"description":{"type":"string","description":"Description of the IP restriction","description_kind":"plain","optional":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Authorized IP","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the IP restriction","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permission":{"type":"string","description":"Permission to give to this username on this topic","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description":"Topic affected by this acl","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"permission":{"type":"string","description":"Permission to give to this username on this resource","description_kind":"plain","required":true},"resource":{"type":"string","description":"Resource affected by this acl","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topic":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"min_insync_replicas":{"type":"number","description":"Minimum insync replica accepted for this topic","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the topic","description_kind":"plain","required":true},"partitions":{"type":"number","description":"Number of partitions for this topic","description_kind":"plain","optional":true,"computed":true},"replication":{"type":"number","description":"Number of replication for this topic","description_kind":"plain","optional":true,"computed":true},"retention_bytes":{"type":"number","description":"Number of bytes for the retention of the data for this topic","description_kind":"plain","optional":true,"computed":true},"retention_hours":{"type":"number","description":"Number of hours for the retention of the data for this topic","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespace":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the namespace","description_kind":"plain","required":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace","description_kind":"plain","required":true},"retention_block_data_expiration_duration":{"type":"string","description":"Controls how long we wait before expiring stale data","description_kind":"plain","optional":true},"retention_block_size_duration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk","description_kind":"plain","optional":true,"computed":true},"retention_buffer_future_duration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted","description_kind":"plain","optional":true},"retention_buffer_past_duration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted","description_kind":"plain","optional":true},"retention_period_duration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"snapshot_enabled":{"type":"bool","description":"Defines whether M3db will create snapshot files for this namespace","description_kind":"plain","optional":true},"type":{"type":"string","description":"Type of namespace","description_kind":"plain","computed":true},"writes_to_commit_log_enabled":{"type":"bool","description":"Defines whether M3db will include writes to this namespace in the commit log","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"group":{"type":"string","description":"Group of the user","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_mongodb_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to with the authentication database","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_pattern":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_index_count":{"type":"number","description":"Maximum number of index for this pattern","description_kind":"plain","optional":true},"pattern":{"type":"string","description":"Pattern format","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"acls":{"nesting_mode":"set","block":{"attributes":{"pattern":{"type":"string","description":"Pattern of the ACL","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission of the ACL","description_kind":"plain","required":true}},"description":"Acls of the user","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_connection_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"database_id":{"type":"string","description":"Database used for the connection pool","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Connection mode to the connection pool","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the connection pool","description_kind":"plain","required":true},"port":{"type":"number","description":"Port of the connection pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Size of the connection pool","description_kind":"plain","required":true},"ssl_mode":{"type":"string","description":"SSL connection mode for the pool","description_kind":"plain","computed":true},"uri":{"type":"string","description":"Connection URI to the pool","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"Database user authorized to connect to the pool, if none all the users are allowed","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_redis_user":{"version":0,"block":{"attributes":{"categories":{"type":["set","string"],"description":"Categories of the user","description_kind":"plain","optional":true},"channels":{"type":["set","string"],"description":"Channels of the user","description_kind":"plain","optional":true,"computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"commands":{"type":["set","string"],"description":"Commands of the user","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keys":{"type":["set","string"],"description":"Keys of the user","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_database_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true,"sensitive":true},"password_reset":{"type":"string","description":"Arbitrary string to change to trigger a password update","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_failover_ip_attach":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"IP block","description_kind":"plain","optional":true,"computed":true},"continent_code":{"type":"string","description":"Ip continent","description_kind":"plain","optional":true,"computed":true},"geo_loc":{"type":"string","description":"Ip location","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"Ip id","description_kind":"plain","computed":true},"ip":{"type":"string","description":"Ip","description_kind":"plain","optional":true,"computed":true},"progress":{"type":"number","description":"Current operation progress in percent","description_kind":"plain","computed":true},"routed_to":{"type":"string","description":"Instance where ip is routed to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"status":{"type":"string","description":"Ip status","description_kind":"plain","computed":true},"sub_type":{"type":"string","description":"IP sub type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_gateway":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"model":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"region":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"subnet_id":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube":{"version":0,"block":{"attributes":{"control_plane_is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"kubeconfig_attributes":{"type":["list",["object",{"client_certificate":"string","client_key":"string","cluster_ca_certificate":"string","host":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true,"sensitive":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_url":{"type":"string","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"update_policy":{"type":"string","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"block_types":{"customization":{"nesting_mode":"set","block":{"block_types":{"apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}}},"description_kind":"plain","deprecated":true}},"customization_apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"customization_kube_proxy":{"nesting_mode":"set","block":{"block_types":{"iptables":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ipvs":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"scheduler":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true},"tcp_fin_timeout":{"type":"string","description_kind":"plain","optional":true},"tcp_timeout":{"type":"string","description_kind":"plain","optional":true},"udp_timeout":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1},"private_network_configuration":{"nesting_mode":"set","block":{"attributes":{"default_vrack_gateway":{"type":"string","description":"If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.","description_kind":"plain","required":true},"private_network_routing_as_default":{"type":"bool","description":"Defines whether routing should default to using the nodes' private interface, instead of their public interface. Default is false.","description_kind":"plain","required":true}},"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"}},"ovh_cloud_project_kube_iprestrictions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description":"List of IP restrictions for the cluster","description_kind":"plain","required":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service 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"}},"ovh_cloud_project_kube_nodepool":{"version":0,"block":{"attributes":{"anti_affinity":{"type":"bool","description":"Enable anti affinity groups for nodes in the pool","description_kind":"plain","optional":true,"computed":true},"autoscale":{"type":"bool","description":"Enable auto-scaling for the pool","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_unneeded_time_seconds":{"type":"number","description":"scaleDownUnneededTimeSeconds for autoscaling","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_unready_time_seconds":{"type":"number","description":"scaleDownUnreadyTimeSeconds for autoscaling","description_kind":"plain","optional":true,"computed":true},"autoscaling_scale_down_utilization_threshold":{"type":"number","description":"scaleDownUtilizationThreshold for autoscaling","description_kind":"plain","optional":true,"computed":true},"available_nodes":{"type":"number","description":"Number of nodes which are actually ready in the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Creation date","description_kind":"plain","computed":true},"current_nodes":{"type":"number","description":"Number of nodes present in the pool","description_kind":"plain","computed":true},"desired_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"flavor":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description":"Flavor name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"max_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"min_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","optional":true,"computed":true},"monthly_billed":{"type":"bool","description":"Enable monthly billing on all nodes in the pool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"size_status":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status","description_kind":"plain","computed":true},"up_to_date_nodes":{"type":"number","description":"Number of nodes with latest version installed in the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date","description_kind":"plain","computed":true}},"block_types":{"template":{"nesting_mode":"set","block":{"block_types":{"metadata":{"nesting_mode":"set","block":{"attributes":{"annotations":{"type":["map","string"],"description":"annotations","description_kind":"plain","required":true},"finalizers":{"type":["list","string"],"description":"finalizers","description_kind":"plain","required":true},"labels":{"type":["map","string"],"description":"labels","description_kind":"plain","required":true}},"description":"metadata","description_kind":"plain"},"min_items":1,"max_items":1},"spec":{"nesting_mode":"set","block":{"attributes":{"taints":{"type":["list",["map","string"]],"description":"taints","description_kind":"plain","required":true},"unschedulable":{"type":"bool","description":"unschedulable","description_kind":"plain","required":true}},"description":"spec","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Node pool template","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"}},"ovh_cloud_project_kube_oidc":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer_url":{"type":"string","description_kind":"plain","required":true},"kube_id":{"type":"string","description_kind":"plain","required":true},"oidc_ca_content":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_groups_prefix":{"type":"string","description_kind":"plain","optional":true},"oidc_required_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_signing_algs":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_username_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_username_prefix":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","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"}},"ovh_cloud_project_network_private":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"regions":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true},"regions_attributes":{"type":["set",["object",{"openstackid":"string","region":"string","status":"string"}]],"description_kind":"plain","computed":true},"regions_status":{"type":["set",["object",{"region":"string","status":"string"}]],"description_kind":"plain","deprecated":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"vlan_id":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_cloud_project_network_private_subnet":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description_kind":"plain","computed":true},"dhcp":{"type":"bool","description_kind":"plain","optional":true},"end":{"type":"string","description_kind":"plain","required":true},"gateway_ip":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_pools":{"type":["set",["object",{"dhcp":"bool","end":"string","network":"string","region":"string","start":"string"}]],"description_kind":"plain","computed":true},"network":{"type":"string","description_kind":"plain","required":true},"network_id":{"type":"string","description_kind":"plain","required":true},"no_gateway":{"type":"bool","description_kind":"plain","optional":true},"region":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_region_storage_presign":{"version":0,"block":{"attributes":{"expire":{"type":"number","description":"How long (in seconds) the URL will be valid.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description":"The S3 storage container's name.","description_kind":"plain","required":true},"object":{"type":"string","description":"Name of the object to download or upload.","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name.","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"url":{"type":"string","description":"Presigned URL.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"openstack_rc":{"type":["map","string"],"description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"role_name":{"type":"string","description_kind":"plain","optional":true},"role_names":{"type":["list","string"],"description_kind":"plain","optional":true},"roles":{"type":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"username":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credential":{"version":0,"block":{"attributes":{"access_key_id":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"internal_user_id":{"type":"string","description_kind":"plain","computed":true},"secret_access_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The policy document. This is a JSON formatted string.","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_workflow_backup":{"version":0,"block":{"attributes":{"backup_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"cron":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","computed":true},"instance_id":{"type":"string","description_kind":"plain","required":true},"max_execution_count":{"type":"number","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name.","description_kind":"plain","required":true},"rotation":{"type":"number","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_cluster":{"version":0,"block":{"attributes":{"archive_allowed_networks":{"type":["set","string"],"description":"Allowed networks for ARCHIVE flow type","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"cluster_type":{"type":"string","description":"Cluster type","description_kind":"plain","computed":true},"dedicated_input_pem":{"type":"string","description":"PEM for dedicated inputs","description_kind":"plain","computed":true,"sensitive":true},"direct_input_allowed_networks":{"type":["set","string"],"description":"Allowed networks for DIRECT_INPUT flow type","description_kind":"plain","optional":true},"direct_input_pem":{"type":"string","description":"PEM for direct inputs","description_kind":"plain","computed":true,"sensitive":true},"hostname":{"type":"string","description":"hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"initial_archive_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for ARCHIVE flow type","description_kind":"plain","computed":true,"sensitive":true},"initial_direct_input_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for DIRECT_INPUT flow type","description_kind":"plain","computed":true,"sensitive":true},"initial_query_allowed_networks":{"type":["set","string"],"description":"Initial allowed networks for QUERY flow type","description_kind":"plain","computed":true,"sensitive":true},"is_default":{"type":"bool","description":"All content generated by given service will be placed on this cluster","description_kind":"plain","computed":true},"is_unlocked":{"type":"bool","description":"Allow given service to perform advanced operations on cluster","description_kind":"plain","computed":true},"query_allowed_networks":{"type":["set","string"],"description":"Allowed networks for QUERY flow type","description_kind":"plain","optional":true},"region":{"type":"string","description":"Data center localization","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_input":{"version":0,"block":{"attributes":{"allowed_networks":{"type":["list","string"],"description":"IP blocks","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Input creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Input description","description_kind":"plain","required":true},"engine_id":{"type":"string","description":"Input engine ID","description_kind":"plain","required":true},"exposed_port":{"type":"string","description":"Port","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"Hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"input_id":{"type":"string","description":"Input ID","description_kind":"plain","computed":true},"is_restart_required":{"type":"bool","description":"Indicate if input need to be restarted","description_kind":"plain","computed":true},"nb_instance":{"type":"number","description":"Number of instance running","description_kind":"plain","optional":true,"computed":true},"public_address":{"type":"string","description":"Input IP address","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl_certificate":{"type":"string","description":"Input SSL certificate","description_kind":"plain","computed":true,"sensitive":true},"status":{"type":"string","description":"init: configuration required, pending: ready to start, running: available","description_kind":"plain","computed":true},"stream_id":{"type":"string","description":"Associated Graylog stream","description_kind":"plain","required":true},"title":{"type":"string","description":"Input title","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Input last update","description_kind":"plain","computed":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"block_types":{"flowgger":{"nesting_mode":"list","block":{"attributes":{"log_format":{"type":"string","description":"Type of format to decode","description_kind":"plain","required":true},"log_framing":{"type":"string","description":"Indicates how messages are delimited","description_kind":"plain","required":true}},"description":"Flowgger configuration","description_kind":"plain"},"max_items":1},"logstash":{"nesting_mode":"list","block":{"attributes":{"filter_section":{"type":"string","description":"The filter section of logstash.conf","description_kind":"plain","optional":true},"input_section":{"type":"string","description":"The filter section of logstash.conf","description_kind":"plain","required":true},"pattern_section":{"type":"string","description":"The list of customs Grok patterns","description_kind":"plain","optional":true}},"description":"Logstash configuration","description_kind":"plain"},"max_items":1}},"description":"Input configuration","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_dbaas_logs_output_graylog_stream":{"version":0,"block":{"attributes":{"can_alert":{"type":"bool","description":"Indicates if the current user can create alert on the stream","description_kind":"plain","computed":true},"cold_storage_compression":{"type":"string","description":"Cold storage compression method","description_kind":"plain","optional":true,"computed":true},"cold_storage_content":{"type":"string","description":"ColdStorage content","description_kind":"plain","optional":true,"computed":true},"cold_storage_enabled":{"type":"bool","description":"Is Cold storage enabled?","description_kind":"plain","optional":true,"computed":true},"cold_storage_notify_enabled":{"type":"bool","description":"Notify on new Cold storage archive","description_kind":"plain","optional":true,"computed":true},"cold_storage_retention":{"type":"number","description":"Cold storage retention in year","description_kind":"plain","optional":true,"computed":true},"cold_storage_target":{"type":"string","description":"ColdStorage destination","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"Stream creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"indexing_enabled":{"type":"bool","description":"Enable ES indexing","description_kind":"plain","optional":true,"computed":true},"indexing_max_size":{"type":"number","description":"Maximum indexing size (in GB)","description_kind":"plain","optional":true,"computed":true},"indexing_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting","description_kind":"plain","optional":true,"computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"is_shareable":{"type":"bool","description":"Indicates if you are allowed to share entry","description_kind":"plain","computed":true},"nb_alert_condition":{"type":"number","description":"Number of alert condition","description_kind":"plain","computed":true},"nb_archive":{"type":"number","description":"Number of coldstored archives","description_kind":"plain","computed":true},"parent_stream_id":{"type":"string","description":"Parent stream ID","description_kind":"plain","optional":true},"pause_indexing_on_max_size":{"type":"bool","description":"If set, pause indexing when maximum size is reach","description_kind":"plain","optional":true,"computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Stream ID","description_kind":"plain","computed":true},"title":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Stream last update","description_kind":"plain","computed":true},"web_socket_enabled":{"type":"bool","description":"Enable Websocket","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_dedicated_ceph_acl":{"version":0,"block":{"attributes":{"family":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"netmask":{"type":"string","description_kind":"plain","required":true},"network":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition":{"version":0,"block":{"attributes":{"capacity":{"type":"number","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"protocol":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","required":true},"used_by_snapshots":{"type":"number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition_access":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","required":true},"partition_name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_dedicated_nasha_partition_snapshot":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"partition_name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_server_install_task":{"version":0,"block":{"attributes":{"bootid_on_destroy":{"type":"number","description":"If set, reboot the server on the specified boot id during destroy phase","description_kind":"plain","optional":true},"comment":{"type":"string","description":"Details of this task","description_kind":"plain","computed":true},"done_date":{"type":"string","description":"Completion date","description_kind":"plain","computed":true},"function":{"type":"string","description":"Function name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update","description_kind":"plain","computed":true},"partition_scheme_name":{"type":"string","description":"Partition scheme name.","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"start_date":{"type":"string","description":"Task Creation date","description_kind":"plain","computed":true},"status":{"type":"string","description":"Task status","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true}},"block_types":{"details":{"nesting_mode":"list","block":{"attributes":{"change_log":{"type":"string","description":"Template change log details","description_kind":"plain","deprecated":true,"optional":true},"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","description_kind":"plain","optional":true},"disk_group_id":{"type":"number","description_kind":"plain","optional":true},"install_rtm":{"type":"bool","description_kind":"plain","optional":true},"install_sql_server":{"type":"bool","description_kind":"plain","optional":true},"language":{"type":"string","description":"language","description_kind":"plain","optional":true},"no_raid":{"type":"bool","description_kind":"plain","optional":true},"post_installation_script_link":{"type":"string","description":"Indicate the URL where your postinstall customisation script is located","description_kind":"plain","optional":true},"post_installation_script_return":{"type":"string","description":"indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'","description_kind":"plain","optional":true},"reset_hw_raid":{"type":"bool","description_kind":"plain","optional":true},"soft_raid_devices":{"type":"number","description_kind":"plain","optional":true},"ssh_key_name":{"type":"string","description":"Name of the ssh key that should be installed. Password login will be disabled","description_kind":"plain","optional":true},"use_distrib_kernel":{"type":"bool","description":"Use the distribution's native kernel instead of the recommended OVH Kernel","description_kind":"plain","optional":true},"use_spla":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_dedicated_server_networking":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Operation description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"status":{"type":"string","description":"Operation status","description_kind":"plain","computed":true}},"block_types":{"interfaces":{"nesting_mode":"set","block":{"attributes":{"macs":{"type":["set","string"],"description":"Interface Mac address","description_kind":"plain","required":true},"type":{"type":"string","description":"Interface type","description_kind":"plain","required":true}},"description":"Interface or interfaces aggregation.","description_kind":"plain"},"min_items":1,"max_items":2},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"ovh_dedicated_server_reboot_task":{"version":0,"block":{"attributes":{"comment":{"type":"string","description":"Details of this task","description_kind":"plain","computed":true},"done_date":{"type":"string","description":"Completion date","description_kind":"plain","computed":true},"function":{"type":"string","description":"Function name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["list","string"],"description":"Change this value to recreate a reboot task.","description_kind":"plain","required":true},"last_update":{"type":"string","description":"Last update","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"start_date":{"type":"string","description":"Task Creation date","description_kind":"plain","computed":true},"status":{"type":"string","description":"Task status","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server_update":{"version":0,"block":{"attributes":{"boot_id":{"type":"number","description":"The boot id of your dedicated server.","description_kind":"plain","optional":true,"computed":true},"boot_script":{"type":"string","description":"The boot script of your dedicated server.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_domain_zone":{"version":0,"block":{"attributes":{"dnssec_supported":{"type":"bool","description":"Is DNSSEC supported by this zone","description_kind":"plain","computed":true},"has_dns_anycast":{"type":"bool","description":"hasDnsAnycast flag of the DNS zone","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update date of the DNS zone","description_kind":"plain","computed":true},"name":{"type":"string","description":"Zone name","description_kind":"plain","computed":true},"name_servers":{"type":["list","string"],"description":"Name servers that host the DNS zone","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_domain_zone_record":{"version":0,"block":{"attributes":{"fieldtype":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"subdomain":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"ttl":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_domain_zone_redirection":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keywords":{"type":"string","description_kind":"plain","optional":true},"subdomain":{"type":"string","description_kind":"plain","optional":true},"target":{"type":"string","description_kind":"plain","required":true},"title":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU on your private database","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"Datacenter where this private database is located","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Name displayed in customer panel for your private database","description_kind":"plain","optional":true,"computed":true},"hostname":{"type":"string","description":"Private database hostname","description_kind":"plain","computed":true},"hostname_ftp":{"type":"string","description":"Private database FTP hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"infrastructure":{"type":"string","description":"Infrastructure where service was stored","description_kind":"plain","computed":true},"offer":{"type":"string","description":"Type of the private database offer","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"port":{"type":"number","description":"Private database service port","description_kind":"plain","computed":true},"port_ftp":{"type":"number","description":"Private database FTP port","description_kind":"plain","computed":true},"quota_size":{"type":"number","description":"Space allowed (in MB) on your private database","description_kind":"plain","computed":true},"quota_used":{"type":"number","description":"Sapce used (in MB) on your private database","description_kind":"plain","computed":true},"ram":{"type":"number","description":"Amount of ram (in MB) on your private database","description_kind":"plain","computed":true},"server":{"type":"string","description":"Private database server name","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Private database state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Private database type","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description":"Private database available versions","description_kind":"plain","computed":true},"version_label":{"type":"string","description":"Private database version label","description_kind":"plain","computed":true},"version_number":{"type":"number","description":"Private database version number","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_database":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description":"Name of your new database","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"password":{"type":"string","description":"Password for the new user ( alphanumeric and 8 characters minimum )","description_kind":"plain","required":true,"sensitive":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect on your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user_grant":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description":"Database name where add grant","description_kind":"plain","required":true},"grant":{"type":"string","description":"Database name where add grant","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect on your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_whitelist":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"The whitelisted IP in your instance","description_kind":"plain","required":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP","description_kind":"plain","required":true},"service":{"type":"bool","description":"Authorize this IP to access service port","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"sftp":{"type":"bool","description":"Authorize this IP to access SFTP port","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_permissions_group":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","required":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policy":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identities":{"type":["set","string"],"description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"permissions_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","required":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_group":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"owner":{"type":"string","description_kind":"plain","computed":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","optional":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_ip_move":{"version":0,"block":{"attributes":{"can_be_terminated":{"type":"bool","description_kind":"plain","computed":true},"country":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Custom description on your ip","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","required":true},"organisation_id":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","computed":true},"task_start_date":{"type":"string","description":"Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to","description_kind":"plain","computed":true},"task_status":{"type":"string","description":"Status field of the current IP task that is in charge of changing the service the IP is attached to","description_kind":"plain","computed":true},"type":{"type":"string","description":"Possible values for ip type","description_kind":"plain","computed":true}},"block_types":{"routed_to":{"nesting_mode":"list","block":{"attributes":{"service_name":{"type":"string","description":"Service where ip is routed to","description_kind":"plain","required":true}},"description":"Routage information","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_ip_reverse":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","required":true},"ip_reverse":{"type":"string","description_kind":"plain","required":true},"reverse":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_ip_service":{"version":0,"block":{"attributes":{"can_be_terminated":{"type":"bool","description_kind":"plain","computed":true},"country":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Custom description on your ip","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"organisation_id":{"type":"string","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"routed_to":{"type":["list",["object",{"service_name":"string"}]],"description":"Routage information","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description":"Possible values for ip type","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_iploadbalancing":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Set the name displayed in ManagerV6 for your iplb (max 50 chars)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description":"Your IP load balancing","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPV4 associated to your IP load balancing","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPV6 associated to your IP load balancing. DEPRECATED.","description_kind":"plain","computed":true},"metrics_token":{"type":"string","description":"The metrics token associated with your IP load balancing","description_kind":"plain","computed":true,"sensitive":true},"offer":{"type":"string","description":"The offer of your IP load balancing","description_kind":"plain","computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"orderable_zone":{"type":["set",["object",{"name":"string","plan_code":"string"}]],"description":"Available additional zone for your Load Balancer","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","computed":true},"ssl_configuration":{"type":"string","description":"Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null.","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"Current state of your IP","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vrack_eligibility":{"type":"bool","description":"Vrack eligibility","description_kind":"plain","computed":true},"vrack_name":{"type":"string","description":"Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product","description_kind":"plain","computed":true},"zone":{"type":["list","string"],"description":"Location where your service is","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_iploadbalancing_http_farm":{"version":0,"block":{"attributes":{"balance":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stickiness":{"type":"string","description_kind":"plain","optional":true},"vrack_network_id":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"probe":{"nesting_mode":"list","block":{"attributes":{"force_ssl":{"type":"bool","description_kind":"plain","optional":true},"interval":{"type":"number","description_kind":"plain","optional":true},"match":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","optional":true,"computed":true},"negate":{"type":"bool","description_kind":"plain","optional":true},"pattern":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_http_farm_server":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"backup":{"type":"bool","description_kind":"plain","optional":true},"chain":{"type":"string","description_kind":"plain","optional":true},"cookie":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"farm_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"on_marked_down":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"probe":{"type":"bool","description_kind":"plain","optional":true},"proxy_protocol_version":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_http_frontend":{"version":0,"block":{"attributes":{"allowed_source":{"type":["list","string"],"description_kind":"plain","optional":true},"dedicated_ipfo":{"type":["set","string"],"description_kind":"plain","optional":true},"default_farm_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"default_ssl_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"hsts":{"type":"bool","description_kind":"plain","optional":true},"http_header":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"redirect_location":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_http_route":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your route, this field is for you","description_kind":"plain","optional":true},"frontend_id":{"type":"number","description":"Route traffic for this frontend","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list",["object",{"field":"string","match":"string","negate":"bool","pattern":"string","rule_id":"number","sub_field":"string"}]],"description":"List of rules to match to trigger action","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","required":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated last. Only the first matching route will trigger an action","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"status":{"type":"number","description":"HTTP status code for \"redirect\" and \"reject\" actions","description_kind":"plain","optional":true},"target":{"type":"string","description":"Farm ID for \"farm\" action type or URL template for \"redirect\" action. You may use ${uri}, ${protocol}, ${host}, ${port} and ${path} variables in redirect target","description_kind":"plain","optional":true},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches","description_kind":"plain","required":true}},"description":"Action triggered when all rules match","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_http_route_rule":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match":{"type":"string","description_kind":"plain","required":true},"negate":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"route_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"sub_field":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_refresh":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keepers":{"type":["list","string"],"description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_farm":{"version":0,"block":{"attributes":{"balance":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stickiness":{"type":"string","description_kind":"plain","optional":true},"vrack_network_id":{"type":"number","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"block_types":{"probe":{"nesting_mode":"list","block":{"attributes":{"force_ssl":{"type":"bool","description_kind":"plain","optional":true},"interval":{"type":"number","description_kind":"plain","optional":true},"match":{"type":"string","description_kind":"plain","optional":true,"computed":true},"method":{"type":"string","description_kind":"plain","optional":true},"negate":{"type":"bool","description_kind":"plain","optional":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","required":true},"url":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_farm_server":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","required":true},"backup":{"type":"bool","description_kind":"plain","optional":true},"chain":{"type":"string","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"farm_id":{"type":"number","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"on_marked_down":{"type":"string","description_kind":"plain","optional":true},"port":{"type":"number","description_kind":"plain","optional":true},"probe":{"type":"bool","description_kind":"plain","optional":true},"proxy_protocol_version":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"status":{"type":"string","description_kind":"plain","required":true},"weight":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_frontend":{"version":0,"block":{"attributes":{"allowed_source":{"type":["list","string"],"description_kind":"plain","optional":true},"dedicated_ipfo":{"type":["list","string"],"description_kind":"plain","optional":true},"default_farm_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"default_ssl_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"disabled":{"type":"bool","description_kind":"plain","optional":true},"display_name":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"port":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"ssl":{"type":"bool","description_kind":"plain","optional":true},"zone":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_route":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your route, this field is for you","description_kind":"plain","optional":true},"frontend_id":{"type":"number","description":"Route traffic for this frontend","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"rules":{"type":["list",["object",{"field":"string","match":"string","negate":"bool","pattern":"string","rule_id":"number","sub_field":"string"}]],"description":"List of rules to match to trigger action","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"plain","required":true},"status":{"type":"string","description":"Route status. Routes in \"ok\" state are ready to operate","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Route priority ([0..255]). 0 if null. Highest priority routes are evaluated last. Only the first matching route will trigger an action","description_kind":"plain","optional":true,"computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"target":{"type":"string","description":"Farm ID for \"farm\" action type, empty for others","description_kind":"plain","optional":true},"type":{"type":"string","description":"Action to trigger if all the rules of this route matches","description_kind":"plain","required":true}},"description":"Action triggered when all rules match","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"ovh_iploadbalancing_tcp_route_rule":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true},"field":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match":{"type":"string","description_kind":"plain","required":true},"negate":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"pattern":{"type":"string","description_kind":"plain","optional":true},"route_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"sub_field":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_network":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your vrack network","description_kind":"plain","optional":true},"farm_id":{"type":["list","number"],"description":"This attribute is there for documentation purpose only and isnt passed to the OVH API as it may conflicts with http/tcp farms `vrack_network_id` attribute","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_ip":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your IPloadbalancer","description_kind":"plain","required":true},"subnet":{"type":"string","description":"IP block of the private network in the vRack","description_kind":"plain","required":true},"vlan":{"type":"number","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN","description_kind":"plain","optional":true,"computed":true},"vrack_network_id":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_client":{"version":0,"block":{"attributes":{"callback_urls":{"type":["list","string"],"description":"Callback URLs of the applications using this oauth2 client. Required if using the AUTHORIZATION_CODE flow.","description_kind":"plain","optional":true},"client_id":{"type":"string","description":"Client ID for the oauth2 client, generated during the resource creation.","description_kind":"plain","computed":true},"client_secret":{"type":"string","description":"Secret for the oauth2 client, generated during the oauth2 client creation.","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description":"A description of your oauth2 client.","description_kind":"plain","required":true},"flow":{"type":"string","description":"OAuth2 flow type implemented for this oauth2 client. Can be either AUTHORIZATION_CODE or CLIENT_CREDENTIALS","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identity":{"type":"string","description":"URN that will allow you to associate this oauth2 client with an access policy","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_identity_group":{"version":0,"block":{"attributes":{"creation":{"type":"string","description_kind":"plain","computed":true},"default_group":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","optional":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_identity_user":{"version":0,"block":{"attributes":{"creation":{"type":"string","description":"Creation date of this user","description_kind":"plain","computed":true},"description":{"type":"string","description":"User description","description_kind":"plain","optional":true},"email":{"type":"string","description":"User's email","description_kind":"plain","required":true},"group":{"type":"string","description":"User's group","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update of this user","description_kind":"plain","computed":true},"login":{"type":"string","description":"User's login suffix","description_kind":"plain","required":true},"password":{"type":"string","description":"User's password","description_kind":"plain","required":true,"sensitive":true},"password_last_update":{"type":"string","description":"When the user changed his password for the last time","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current user's status","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_installation_template":{"version":0,"block":{"attributes":{"available_languages":{"type":["list","string"],"description":"List of all language available for this template","description_kind":"plain","computed":true},"base_template_name":{"type":"string","description":"OVH template name yours will be based on, choose one among the list given by compatibleTemplates function","description_kind":"plain","required":true},"beta":{"type":"bool","description":"This distribution is new and, although tested and functional, may still display odd behaviour","description_kind":"plain","computed":true},"bit_format":{"type":"number","description":"This template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation)","description_kind":"plain","computed":true},"default_language":{"type":"string","description":"The default language of this template","description_kind":"plain","required":true},"deprecated":{"type":"bool","description":"is this distribution deprecated","description_kind":"plain","computed":true},"description":{"type":"string","description":"information about this template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"the distribution this template is based on","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs)","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification":{"type":"string","description":"Date of last modification of the base image","description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"This distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"remove_default_partition_schemes":{"type":"bool","description":"Remove default partition schemes at creation","description_kind":"plain","optional":true,"computed":true},"supports_distribution_kernel":{"type":"bool","description":"This distribution supports installation using the distribution's native kernel instead of the recommended OVH kernel","description_kind":"plain","computed":true},"supports_rtm":{"type":"bool","description":"This distribution supports RTM software","description_kind":"plain","computed":true},"supports_sql_server":{"type":"bool","description":"This distribution supports the microsoft SQL server","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"block_types":{"customization":{"nesting_mode":"list","block":{"attributes":{"change_log":{"type":"string","description":"Template change log details","description_kind":"plain","deprecated":true,"optional":true},"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","description_kind":"plain","optional":true},"post_installation_script_link":{"type":"string","description":"Indicate the URL where your postinstall customisation script is located","description_kind":"plain","optional":true},"post_installation_script_return":{"type":"string","description":"indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'","description_kind":"plain","optional":true},"rating":{"type":"number","description_kind":"plain","deprecated":true,"optional":true},"ssh_key_name":{"type":"string","description":"Name of the ssh key that should be installed. Password login will be disabled","description_kind":"plain","optional":true},"use_distribution_kernel":{"type":"bool","description":"Use the distribution's native kernel instead of the recommended OVH Kernel","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"priority":{"type":"number","description":"on a reinstall, if a partitioning scheme is not specified, the one with the higher priority will be used by default, among all the compatible partitioning schemes (given the underlying hardware specifications)","description_kind":"plain","required":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme_hardware_raid":{"version":0,"block":{"attributes":{"disks":{"type":["list","string"],"description":"Disk List. Syntax is cX:dY for disks and [cX:dY,cX:dY] for groups. With X and Y resp. the controller id and the disk id","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60)","description_kind":"plain","required":true},"name":{"type":"string","description":"Hardware RAID name","description_kind":"plain","required":true},"scheme_name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"step":{"type":"number","description":"Specifies the creation order of the hardware RAID","description_kind":"plain","required":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_template_partition_scheme_partition":{"version":0,"block":{"attributes":{"filesystem":{"type":"string","description":"Partition filesystem","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mountpoint":{"type":"string","description":"partition mount point","description_kind":"plain","required":true},"order":{"type":"number","description":"step or order. specifies the creation order of the partition on the disk","description_kind":"plain","required":true},"raid":{"type":"string","description":"raid partition type","description_kind":"plain","optional":true,"computed":true},"scheme_name":{"type":"string","description":"name of this partitioning scheme","description_kind":"plain","required":true},"size":{"type":"number","description":"size of partition in MB, 0 =\u003e rest of the space","description_kind":"plain","required":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":true},"type":{"type":"string","description":"partition type","description_kind":"plain","required":true},"volume_name":{"type":"string","description":"The volume name needed for proxmox distribution","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_ssh_key":{"version":0,"block":{"attributes":{"default":{"type":"bool","description":"True when this public Ssh key is used for rescue mode and reinstallations","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"ASCII encoded public Ssh key","description_kind":"plain","required":true},"key_name":{"type":"string","description":"Name of this public Ssh key","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"yourvrackdescription","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"yourvrackname","description_kind":"plain","optional":true,"computed":true},"order":{"type":["list",["object",{"date":"string","details":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"expiration_date":"string","order_id":"number"}]],"description":"Details about an Order","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"payment_mean":{"type":"string","description":"Ovh payment mode","description_kind":"plain","deprecated":true,"optional":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"block_types":{"plan":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"},"min_items":1,"max_items":1},"plan_option":{"nesting_mode":"list","block":{"attributes":{"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"duration":{"type":"string","description":"duration","description_kind":"plain","required":true},"plan_code":{"type":"string","description":"Plan code","description_kind":"plain","required":true},"pricing_mode":{"type":"string","description":"Pricing model identifier","description_kind":"plain","required":true}},"block_types":{"configuration":{"nesting_mode":"list","block":{"attributes":{"label":{"type":"string","description":"Identifier of the resource","description_kind":"plain","required":true},"value":{"type":"string","description":"Path to the resource in API.OVH.COM","description_kind":"plain","required":true}},"description":"Representation of a configuration item for personalizing product","description_kind":"plain"}}},"description":"Product Plan to order","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_vrack_cloudproject":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"Service name of the vrack resource.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack_dedicated_server":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true}},"description_kind":"plain","deprecated":true}},"ovh_vrack_dedicated_server_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interface_id":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the vrack resource.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_vrack_ip":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"Your IP block.","description_kind":"plain","required":true},"gateway":{"type":"string","description":"Your gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Your IP block","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","required":true},"zone":{"type":"string","description":"Where you want your block announced on the network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vrack_iploadbalancing":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description":"Your ipLoadbalancing","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The internal name of your vrack","description_kind":"plain","required":true}},"description_kind":"plain"}}},"data_source_schemas":{"ovh_cloud_project_capabilities_containerregistry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list",["object",{"plans":["list",["object",{"code":"string","created_at":"string","features":["list",["object",{"vulnerability":"bool"}]],"id":"string","name":"string","registry_limits":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"updated_at":"string"}]],"region_name":"string"}]],"description":"List of container registry capability for a single region","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_capabilities_containerregistry_filter":{"version":0,"block":{"attributes":{"code":{"type":"string","description":"Plan code from catalog","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Plan creation date","description_kind":"plain","computed":true},"features":{"type":["list",["object",{"vulnerability":"bool"}]],"description":"Features of the plan","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Plan name","description_kind":"plain","computed":true},"plan_name":{"type":"string","description":"Plan name of the registry.","description_kind":"plain","required":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","required":true},"registry_limits":{"type":["list",["object",{"image_storage":"number","parallel_request":"number"}]],"description":"Container registry limits","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Plan last update date","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistries":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list",["object",{"created_at":"string","id":"string","name":"string","project_id":"string","region":"string","size":"number","status":"string","updated_at":"string","url":"string","version":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Registry creation date","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Registry name","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"Project ID of your registry","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region of the registry.","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Current size of the registry (bytes)","description_kind":"plain","computed":true},"status":{"type":"string","description":"Registry status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Registry last update date","description_kind":"plain","computed":true},"url":{"type":"string","description":"Access url of the registry","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of your registry","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_management":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_ip_restrictions_registry":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_restrictions":{"type":["list",["map","string"]],"description":"List your IP restrictions applied on artifact manager component","description_kind":"plain","computed":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_oidc":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"oidc_admin_group":{"type":"string","description_kind":"plain","optional":true},"oidc_auto_onboard":{"type":"bool","description_kind":"plain","optional":true},"oidc_client_id":{"type":"string","description_kind":"plain","optional":true},"oidc_endpoint":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_name":{"type":"string","description_kind":"plain","optional":true},"oidc_scope":{"type":"string","description_kind":"plain","optional":true},"oidc_user_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_verify_cert":{"type":"bool","description_kind":"plain","optional":true},"registry_id":{"type":"string","description":"Registry ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_containerregistry_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"registry_id":{"type":"string","description":"RegistryID","description_kind":"plain","required":true},"result":{"type":["list",["object",{"email":"string","id":"string","user":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database":{"version":0,"block":{"attributes":{"advanced_configuration":{"type":["map","string"],"description":"Advanced configuration key / value","description_kind":"plain","computed":true},"backup_regions":{"type":["list","string"],"description":"List of region where backups are pushed","description_kind":"plain","computed":true},"backup_time":{"type":"string","description":"Time on which backups start every day","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date of the creation of the cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the cluster","description_kind":"plain","computed":true},"disk_size":{"type":"number","description":"Disk size attributes of the cluster","description_kind":"plain","computed":true},"disk_type":{"type":"string","description":"Disk type attributes of the cluster","description_kind":"plain","computed":true},"endpoints":{"type":["list",["object",{"component":"string","domain":"string","path":"string","port":"number","scheme":"string","ssl":"bool","ssl_mode":"string","uri":"string"}]],"description":"List of all endpoints of the service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"flavor":{"type":"string","description":"The node flavor used for this cluster","description_kind":"plain","computed":true},"id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","computed":true},"maintenance_time":{"type":"string","description":"Time on which maintenances can start every day","description_kind":"plain","computed":true},"network_type":{"type":"string","description":"Type of network of the cluster","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"network_id":"string","region":"string","subnet_id":"string"}]],"description":"List of nodes composing the service","description_kind":"plain","computed":true},"opensearch_acls_enabled":{"type":"bool","description":"Defines whether the ACLs are enabled on an Opensearch cluster","description_kind":"plain","computed":true},"plan":{"type":"string","description":"Plan of the cluster","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the cluster","description_kind":"plain","computed":true},"version":{"type":"string","description":"Version of the engine deployed on the cluster","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_capabilities":{"version":0,"block":{"attributes":{"engines":{"type":["set",["object",{"default_version":"string","description":"string","name":"string","ssl_modes":["set","string"],"versions":["set","string"]}]],"description":"Database engines available","description_kind":"plain","computed":true},"flavors":{"type":["set",["object",{"core":"number","memory":"number","name":"string","storage":"number"}]],"description":"Flavors available","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"options":{"type":["set",["object",{"name":"string","type":"string"}]],"description":"Options available","description_kind":"plain","computed":true},"plans":{"type":["set",["object",{"backup_retention":"string","description":"string","name":"string"}]],"description":"Plans available","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_certificates":{"version":0,"block":{"attributes":{"ca":{"type":"string","description":"CA certificate used for the service","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_database":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"default":{"type":"bool","description":"Defines if the database has been created by default","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the database","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_databases":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"database_ids":{"type":["list","string"],"description":"List of databases ids","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_integration":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"destination_service_id":{"type":"string","description":"ID of the destination service","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description":"Integration ID","description_kind":"plain","required":true},"parameters":{"type":["map","string"],"description":"Parameters for the integration","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"source_service_id":{"type":"string","description":"ID of the source service","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status of the integration","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the integration","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_integrations":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"integration_ids":{"type":["list","string"],"description":"List of integrations ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_ip_restrictions":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"ips":{"type":["set","string"],"description":"List of IP restriction","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Acl ID","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission to give to this username on this topic","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic":{"type":"string","description":"Topic affected by this acl","description_kind":"plain","computed":true},"username":{"type":"string","description":"Username affected by this acl","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_acls":{"version":0,"block":{"attributes":{"acl_ids":{"type":["list","string"],"description":"List of acl ids","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacl":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Shema registry ACL ID","description_kind":"plain","required":true},"permission":{"type":"string","description":"Permission to give to this username on this resource","description_kind":"plain","computed":true},"resource":{"type":"string","description":"Resource affected by this ACL","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"username":{"type":"string","description":"Username affected by this ACL","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_schemaregistryacls":{"version":0,"block":{"attributes":{"acl_ids":{"type":["list","string"],"description":"List of schema registry acl ids","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topic":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Topic ID","description_kind":"plain","required":true},"min_insync_replicas":{"type":"number","description":"Minimum insync replica accepted for this topic","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the topic","description_kind":"plain","computed":true},"partitions":{"type":"number","description":"Number of partitions for this topic","description_kind":"plain","computed":true},"replication":{"type":"number","description":"Number of replication for this topic","description_kind":"plain","computed":true},"retention_bytes":{"type":"number","description":"Number of bytes for the retention of the data for this topic","description_kind":"plain","computed":true},"retention_hours":{"type":"number","description":"Number of hours for the retention of the data for this topic","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_topics":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"topic_ids":{"type":["list","string"],"description":"List of topic ids","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_kafka_user_access":{"version":0,"block":{"attributes":{"cert":{"type":"string","description":"User cert","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"User key for the cert","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description_kind":"plain","required":true},"user_id":{"type":"string","description":"Id of the user","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespace":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the namespace","description_kind":"plain","required":true},"resolution":{"type":"string","description":"Resolution for an aggregated namespace","description_kind":"plain","computed":true},"retention_block_data_expiration_duration":{"type":"string","description":"Controls how long we wait before expiring stale data","description_kind":"plain","computed":true},"retention_block_size_duration":{"type":"string","description":"Controls how long to keep a block in memory before flushing to a fileset on disk","description_kind":"plain","computed":true},"retention_buffer_future_duration":{"type":"string","description":"Controls how far into the future writes to the namespace will be accepted","description_kind":"plain","computed":true},"retention_buffer_past_duration":{"type":"string","description":"Controls how far into the past writes to the namespace will be accepted","description_kind":"plain","computed":true},"retention_period_duration":{"type":"string","description":"Controls the duration of time that M3DB will retain data for the namespace","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"snapshot_enabled":{"type":"bool","description":"Defines whether M3DB will create snapshot files for this namespace","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of namespace","description_kind":"plain","computed":true},"writes_to_commit_log_enabled":{"type":"bool","description":"Defines whether M3DB will include writes to this namespace in the commit log","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_namespaces":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_ids":{"type":["list","string"],"description":"List of namespaces ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_m3db_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"group":{"type":"string","description":"Group of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_mongodb_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user with the authentication database in the format name@authDB","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_pattern":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description":"Pattern ID","description_kind":"plain","required":true},"max_index_count":{"type":"number","description":"Maximum number of index for this pattern","description_kind":"plain","computed":true},"pattern":{"type":"string","description":"Pattern format","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_patterns":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"pattern_ids":{"type":["list","string"],"description":"List of pattern ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_database_opensearch_user":{"version":0,"block":{"attributes":{"acls":{"type":["set",["object",{"pattern":"string","permission":"string"}]],"description":"Acls of the user","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_connection_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"database_id":{"type":"string","description":"Database used for the connection pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mode":{"type":"string","description":"Connection mode to the connection pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the connection pool","description_kind":"plain","required":true},"port":{"type":"number","description":"Port of the connection pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description":"Size of the connection pool","description_kind":"plain","computed":true},"ssl_mode":{"type":"string","description":"SSL connection mode for the pool","description_kind":"plain","computed":true},"uri":{"type":"string","description":"Connection URI to the pool","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"User authorized to connect to the pool, if none all the users are allowed","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_postgresql_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"roles":{"type":["set","string"],"description":"Roles the user belongs to","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_redis_user":{"version":0,"block":{"attributes":{"categories":{"type":["set","string"],"description":"Categories of the user","description_kind":"plain","computed":true},"channels":{"type":["set","string"],"description":"Channels of the user","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"commands":{"type":["set","string"],"description":"Commands of the user","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keys":{"type":["set","string"],"description":"Keys of the user","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_user":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date of the creation of the user","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the user","description_kind":"plain","required":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description":"Current status of the user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_users":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"user_ids":{"type":["list","string"],"description":"List of users ids","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_databases":{"version":0,"block":{"attributes":{"cluster_ids":{"type":["list","string"],"description":"List of database clusters uuids","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Name of the engine of the service","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_failover_ip_attach":{"version":0,"block":{"attributes":{"block":{"type":"string","description":"IP block","description_kind":"plain","optional":true,"computed":true},"continent_code":{"type":"string","description":"Ip continent","description_kind":"plain","optional":true,"computed":true},"geo_loc":{"type":"string","description":"Ip location","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"Ip id","description_kind":"plain","computed":true},"ip":{"type":"string","description":"Ip","description_kind":"plain","optional":true,"computed":true},"progress":{"type":"number","description":"Current operation progress in percent","description_kind":"plain","computed":true},"routed_to":{"type":"string","description":"Instance where ip is routed to","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"status":{"type":"string","description":"Ip status","description_kind":"plain","computed":true},"sub_type":{"type":"string","description":"IP sub type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_kube":{"version":0,"block":{"attributes":{"control_plane_is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_up_to_date":{"type":"bool","description_kind":"plain","computed":true},"kube_id":{"type":"string","description_kind":"plain","required":true},"kube_proxy_mode":{"type":"string","description_kind":"plain","optional":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_url":{"type":"string","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"update_policy":{"type":"string","description_kind":"plain","optional":true},"url":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description_kind":"plain","optional":true}},"block_types":{"customization":{"nesting_mode":"set","block":{"block_types":{"apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain","deprecated":true}}},"description_kind":"plain","deprecated":true}},"customization_apiserver":{"nesting_mode":"set","block":{"block_types":{"admissionplugins":{"nesting_mode":"set","block":{"attributes":{"disabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"enabled":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"customization_kube_proxy":{"nesting_mode":"set","block":{"block_types":{"iptables":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1},"ipvs":{"nesting_mode":"set","block":{"attributes":{"min_sync_period":{"type":"string","description_kind":"plain","optional":true},"scheduler":{"type":"string","description_kind":"plain","optional":true},"sync_period":{"type":"string","description_kind":"plain","optional":true},"tcp_fin_timeout":{"type":"string","description_kind":"plain","optional":true},"tcp_timeout":{"type":"string","description_kind":"plain","optional":true},"udp_timeout":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_cloud_project_kube_iprestrictions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description":"List of IP restrictions for the cluster","description_kind":"plain","computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodepool":{"version":0,"block":{"attributes":{"anti_affinity":{"type":"bool","description":"Enable anti affinity groups for nodes in the pool","description_kind":"plain","computed":true},"autoscale":{"type":"bool","description":"Enable auto-scaling for the pool","description_kind":"plain","computed":true},"autoscaling_scale_down_unneeded_time_seconds":{"type":"number","description":"scaleDownUnneededTimeSeconds for autoscaling","description_kind":"plain","computed":true},"autoscaling_scale_down_unready_time_seconds":{"type":"number","description":"scaleDownUnreadyTimeSeconds for autoscaling","description_kind":"plain","computed":true},"autoscaling_scale_down_utilization_threshold":{"type":"number","description":"scaleDownUtilizationThreshold for autoscaling","description_kind":"plain","computed":true},"available_nodes":{"type":"number","description":"Number of nodes which are actually ready in the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Creation date","description_kind":"plain","computed":true},"current_nodes":{"type":"number","description":"Number of nodes present in the pool","description_kind":"plain","computed":true},"desired_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"flavor":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"flavor_name":{"type":"string","description":"Flavor name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"max_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"min_nodes":{"type":"number","description":"Number of nodes you desire in the pool","description_kind":"plain","computed":true},"monthly_billed":{"type":"bool","description":"Enable monthly billing on all nodes in the pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project id","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"size_status":{"type":"string","description":"Status describing the state between number of nodes wanted and available ones","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current status","description_kind":"plain","computed":true},"up_to_date_nodes":{"type":"number","description":"Number of nodes with latest version installed in the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date","description_kind":"plain","computed":true}},"block_types":{"template":{"nesting_mode":"set","block":{"block_types":{"metadata":{"nesting_mode":"set","block":{"attributes":{"annotations":{"type":["map","string"],"description":"annotations","description_kind":"plain","optional":true},"finalizers":{"type":["list","string"],"description":"finalizers","description_kind":"plain","optional":true},"labels":{"type":["map","string"],"description":"labels","description_kind":"plain","optional":true}},"description":"metadata","description_kind":"plain"},"max_items":1},"spec":{"nesting_mode":"set","block":{"attributes":{"taints":{"type":["list",["map","string"]],"description":"taints","description_kind":"plain","optional":true},"unschedulable":{"type":"bool","description":"unschedulable","description_kind":"plain","optional":true}},"description":"spec","description_kind":"plain"},"max_items":1}},"description":"Node pool template","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodepool_nodes":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"name":{"type":"string","description":"NodePool resource name","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"created_at":"string","deployed_at":"string","flavor":"string","id":"string","instance_id":"string","is_up_to_date":"bool","name":"string","node_pool_id":"string","project_id":"string","status":"string","updated_at":"string","version":"string"}]],"description":"Nodes composing the node pool","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_nodes":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"created_at":"string","deployed_at":"string","flavor":"string","id":"string","instance_id":"string","is_up_to_date":"bool","name":"string","node_pool_id":"string","project_id":"string","status":"string","updated_at":"string","version":"string"}]],"description":"Nodes composing the cluster","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_kube_oidc":{"version":0,"block":{"attributes":{"client_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"issuer_url":{"type":"string","description_kind":"plain","optional":true},"kube_id":{"type":"string","description":"Kube ID","description_kind":"plain","required":true},"oidc_ca_content":{"type":"string","description_kind":"plain","optional":true},"oidc_groups_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_groups_prefix":{"type":"string","description_kind":"plain","optional":true},"oidc_required_claim":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_signing_algs":{"type":["list","string"],"description_kind":"plain","optional":true},"oidc_username_claim":{"type":"string","description_kind":"plain","optional":true},"oidc_username_prefix":{"type":"string","description_kind":"plain","optional":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_region":{"version":0,"block":{"attributes":{"continent_code":{"type":"string","description_kind":"plain","computed":true},"datacenter_location":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"services":{"type":["set",["object",{"name":"string","status":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_regions":{"version":0,"block":{"attributes":{"has_services_up":{"type":["list","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["set","string"],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"roles":{"type":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"status":{"type":"string","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true},"username":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credential":{"version":0,"block":{"attributes":{"access_key_id":{"type":"string","description":"The access key","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_access_key":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_credentials":{"version":0,"block":{"attributes":{"access_key_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_user_s3_policy":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The policy document. This is a JSON formatted string.","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the ID of the cloud project.","description_kind":"plain","required":true},"user_id":{"type":"string","description":"The user ID","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_cloud_project_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name of the resource representing the id of the cloud project.","description_kind":"plain","required":true},"users":{"type":["list",["object",{"creation_date":"string","description":"string","roles":["list",["object",{"description":"string","id":"string","name":"string","permissions":["set","string"]}]],"status":"string","user_id":"string","username":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_vrack":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dbaas_logs_cluster":{"version":0,"block":{"attributes":{"archive_allowed_networks":{"type":["set","string"],"description":"Allowed networks for ARCHIVE flow type","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description_kind":"plain","optional":true},"cluster_type":{"type":"string","description":"Cluster type","description_kind":"plain","computed":true},"dedicated_input_pem":{"type":"string","description":"PEM for dedicated inputs","description_kind":"plain","computed":true,"sensitive":true},"direct_input_allowed_networks":{"type":["set","string"],"description":"Allowed networks for DIRECT_INPUT flow type","description_kind":"plain","computed":true},"direct_input_pem":{"type":"string","description":"PEM for direct inputs","description_kind":"plain","computed":true,"sensitive":true},"hostname":{"type":"string","description":"hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"All content generated by given service will be placed on this cluster","description_kind":"plain","computed":true},"is_unlocked":{"type":"bool","description":"Allow given service to perform advanced operations on cluster","description_kind":"plain","computed":true},"query_allowed_networks":{"type":["set","string"],"description":"Allowed networks for QUERY flow type","description_kind":"plain","computed":true},"region":{"type":"string","description":"Data center localization","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_clusters":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"uuids":{"type":["set","string"],"description":"UUID of clusters","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_input_engine":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_deprecated":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"version":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_output_graylog_stream":{"version":0,"block":{"attributes":{"can_alert":{"type":"bool","description":"Indicates if the current user can create alert on the stream","description_kind":"plain","computed":true},"cold_storage_compression":{"type":"string","description":"Cold storage compression method","description_kind":"plain","computed":true},"cold_storage_content":{"type":"string","description":"ColdStorage content","description_kind":"plain","computed":true},"cold_storage_enabled":{"type":"bool","description":"Is Cold storage enabled?","description_kind":"plain","computed":true},"cold_storage_notify_enabled":{"type":"bool","description":"Notify on new Cold storage archive","description_kind":"plain","computed":true},"cold_storage_retention":{"type":"number","description":"Cold storage retention in year","description_kind":"plain","computed":true},"cold_storage_target":{"type":"string","description":"ColdStorage destination","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Stream creation","description_kind":"plain","computed":true},"description":{"type":"string","description":"Stream description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"indexing_enabled":{"type":"bool","description":"Enable ES indexing","description_kind":"plain","computed":true},"indexing_max_size":{"type":"number","description":"Maximum indexing size (in GB)","description_kind":"plain","computed":true},"indexing_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of the maximum configured setting","description_kind":"plain","computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"is_shareable":{"type":"bool","description":"Indicates if you are allowed to share entry","description_kind":"plain","computed":true},"nb_alert_condition":{"type":"number","description":"Number of alert condition","description_kind":"plain","computed":true},"nb_archive":{"type":"number","description":"Number of coldstored archives","description_kind":"plain","computed":true},"parent_stream_id":{"type":"string","description":"Parent stream ID","description_kind":"plain","computed":true},"pause_indexing_on_max_size":{"type":"bool","description":"If set, pause indexing when maximum size is reach","description_kind":"plain","computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Stream ID","description_kind":"plain","computed":true},"title":{"type":"string","description":"Stream description","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Stream last update","description_kind":"plain","computed":true},"web_socket_enabled":{"type":"bool","description":"Enable Websocket","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_ceph":{"version":0,"block":{"attributes":{"ceph_mons":{"type":["list","string"],"description_kind":"plain","computed":true},"ceph_version":{"type":"string","description_kind":"plain","optional":true,"computed":true},"crush_tunables":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"size":{"type":"number","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"status":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_installation_templates":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_nasha":{"version":0,"block":{"attributes":{"can_create_partition":{"type":"bool","description":"True, if partition creation is allowed on this HA-NAS","description_kind":"plain","computed":true},"custom_name":{"type":"string","description":"The name you give to the HA-NAS","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"area of HA-NAS","description_kind":"plain","computed":true},"disk_type":{"type":"string","description":"the disk type of the HA-NAS","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Access IP of HA-NAS","description_kind":"plain","computed":true},"monitored":{"type":"bool","description":"Send an email to customer if any issue is detected","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The storage service name","description_kind":"plain","required":true},"urn":{"type":"string","description_kind":"plain","computed":true},"zpool_capacity":{"type":"number","description":"percentage of HA-NAS space used in %","description_kind":"plain","computed":true},"zpool_size":{"type":"number","description":"the size of the HA-NAS","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server":{"version":0,"block":{"attributes":{"boot_id":{"type":"number","description_kind":"plain","computed":true},"boot_script":{"type":"string","description_kind":"plain","computed":true},"commercial_range":{"type":"string","description":"dedicater server commercial range","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"dedicated datacenter localisation (bhs1,bhs2,...)","description_kind":"plain","computed":true},"display_name":{"type":"string","description_kind":"plain","computed":true},"enabled_public_vnis":{"type":["list","string"],"description":"List of enabled public VNI uuids","description_kind":"plain","computed":true},"enabled_vrack_aggregation_vnis":{"type":["list","string"],"description":"List of enabled vrack_aggregation VNI uuids","description_kind":"plain","computed":true},"enabled_vrack_vnis":{"type":["list","string"],"description":"List of enabled vrack VNI uuids","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"dedicated server ip (IPv4)","description_kind":"plain","computed":true},"ips":{"type":["list","string"],"description":"dedicated server ip blocks","description_kind":"plain","computed":true},"link_speed":{"type":"number","description_kind":"plain","computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"plain","computed":true},"name":{"type":"string","description":"dedicated server name","description_kind":"plain","computed":true},"os":{"type":"string","description":"Operating system","description_kind":"plain","computed":true},"professional_use":{"type":"bool","description":"Does this server have professional use option","description_kind":"plain","computed":true},"rack":{"type":"string","description_kind":"plain","computed":true},"rescue_mail":{"type":"string","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"dedicated server reverse","description_kind":"plain","computed":true},"root_device":{"type":"string","description_kind":"plain","computed":true},"server_id":{"type":"number","description":"your server id","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"state":{"type":"string","description":"error, hacked, hackedBlocked, ok","description_kind":"plain","computed":true},"support_level":{"type":"string","description":"Dedicated server support level (critical, fastpath, gs, pro)","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vnis":{"type":["list",["object",{"enabled":"bool","mode":"string","name":"string","nics":["list","string"],"server_name":"string","uuid":"string","vrack":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dedicated_server_boots":{"version":0,"block":{"attributes":{"boot_type":{"type":"string","description":"Filter the value of bootType property","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel":{"type":"string","description":"Filter the value of kernel property","description_kind":"plain","optional":true},"result":{"type":["list","number"],"description":"Server compatibles netboots ids","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_dedicated_server_specifications_hardware":{"version":0,"block":{"attributes":{"boot_mode":{"type":"string","description":"Server boot mode","description_kind":"markdown","computed":true},"cores_per_processor":{"type":"number","description":"number of cores per processor","description_kind":"markdown","computed":true},"default_hardware_raid_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Default hardware raid size for this server","description_kind":"markdown","computed":true},"default_hardware_raid_type":{"type":"string","description":"Default hardware raid type configured on this server","description_kind":"markdown","computed":true},"description":{"type":"string","description":"commercial name of this server","description_kind":"markdown","computed":true},"disk_groups":{"nested_type":{"attributes":{"default_hardware_raid_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"default hardware raid size for this disk group","description_kind":"markdown","computed":true},"default_hardware_raid_type":{"type":"string","description":"default hardware raid type for this disk group","description_kind":"markdown","computed":true},"description":{"type":"string","description":"human readable description of this disk group","description_kind":"markdown","computed":true},"disk_group_id":{"type":"number","description":"identifier of this disk group","description_kind":"markdown","computed":true},"disk_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"disk capacity","description_kind":"markdown","computed":true},"disk_type":{"type":"string","description":"type of the disk (SSD, SATA, SAS, ...)","description_kind":"markdown","computed":true},"number_of_disks":{"type":"number","description":"number of disks in this group","description_kind":"markdown","computed":true},"raid_controller":{"type":"string","description":"raid controller, if any, managing this group of disks","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"details about the groups of disks in the server","description_kind":"markdown","computed":true},"expansion_cards":{"nested_type":{"attributes":{"description":{"type":"string","description":"expansion card description","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Expansion card type enum","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"details about the server's expansion cards","description_kind":"markdown","computed":true},"form_factor":{"type":"string","description":"Server form factor","description_kind":"markdown","computed":true},"memory_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"ram capacity","description_kind":"markdown","computed":true},"motherboard":{"type":"string","description":"server motherboard","description_kind":"markdown","computed":true},"number_of_processors":{"type":"number","description":"number of processors in this dedicated server","description_kind":"markdown","computed":true},"processor_architecture":{"type":"string","description":"processor architecture bit","description_kind":"markdown","computed":true},"processor_name":{"type":"string","description":"processor name","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server","description_kind":"markdown","required":true},"threads_per_processor":{"type":"number","description":"number of threads per processor","description_kind":"markdown","computed":true},"usb_keys":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"list"},"description":"Capacity of the USB keys installed on your server, if any","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_dedicated_servers":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_domain_zone":{"version":0,"block":{"attributes":{"dnssec_supported":{"type":"bool","description_kind":"plain","computed":true},"has_dns_anycast":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"name_servers":{"type":["set","string"],"description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase":{"version":0,"block":{"attributes":{"cpu":{"type":"number","description":"Number of CPU on your private database","description_kind":"plain","computed":true},"datacenter":{"type":"string","description":"Datacenter where this private database is located","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Name displayed in customer panel for your private database","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Private database hostname","description_kind":"plain","computed":true},"hostname_ftp":{"type":"string","description":"Private database FTP hostname","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"infrastructure":{"type":"string","description":"Infrastructure where service was stored","description_kind":"plain","computed":true},"offer":{"type":"string","description":"Type of the private database offer","description_kind":"plain","computed":true},"port":{"type":"number","description":"Private database service port","description_kind":"plain","computed":true},"port_ftp":{"type":"number","description":"Private database FTP port","description_kind":"plain","computed":true},"quota_size":{"type":"number","description":"Space allowed (in MB) on your private database","description_kind":"plain","computed":true},"quota_used":{"type":"number","description":"Space used (in MB) on your private database","description_kind":"plain","computed":true},"ram":{"type":"number","description":"Amount of ram (in MB) on your private database","description_kind":"plain","computed":true},"server":{"type":"string","description":"Private database server name","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"state":{"type":"string","description":"Private database state","description_kind":"plain","computed":true},"type":{"type":"string","description":"Private database type","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"version":{"type":"string","description":"Private database available versions","description_kind":"plain","computed":true},"version_label":{"type":"string","description":"Private database version label","description_kind":"plain","computed":true},"version_number":{"type":"number","description":"Private database version number","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_database":{"version":0,"block":{"attributes":{"backup_time":{"type":"string","description":"Time of the next backup (every day)","description_kind":"plain","computed":true},"creation_date":{"type":"string","description":"Creation date of the database","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"quota_used":{"type":"number","description":"Space used by the database (in MB)","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"users":{"type":["set",["object",{"grant_type":"string","user_name":"string"}]],"description":"Users granted to this database","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of the user","description_kind":"plain","computed":true},"databases":{"type":["set",["object",{"database_name":"string","grant_type":"string"}]],"description":"Databases granted for this user","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect to your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_user_grant":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of the user","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"grant":{"type":"string","description":"Grant name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"user_name":{"type":"string","description":"User name used to connect to your databases","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_hosting_privatedatabase_whitelist":{"version":0,"block":{"attributes":{"creation_date":{"type":"string","description":"Creation date of this whitelist","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"The whitelisted IP in your instance","description_kind":"plain","optional":true},"last_update":{"type":"string","description":"The last update date of this whitelist","description_kind":"plain","computed":true},"name":{"type":"string","description":"Custom name for your Whitelisted IP","description_kind":"plain","computed":true},"service":{"type":"bool","description":"Authorize this IP to access service port","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your private database","description_kind":"plain","required":true},"sftp":{"type":"bool","description":"Authorize this IP to access SFTP port","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whitelist status","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_permissions_group":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_permissions_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urns":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policies":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policies":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_policy":{"version":0,"block":{"attributes":{"allow":{"type":["set","string"],"description_kind":"plain","optional":true},"created_at":{"type":"string","description_kind":"plain","computed":true},"deny":{"type":["set","string"],"description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"except":{"type":["set","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","required":true},"identities":{"type":["set","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"permissions_groups":{"type":["set","string"],"description_kind":"plain","optional":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_reference_actions":{"version":0,"block":{"attributes":{"actions":{"type":["set",["object",{"action":"string","categories":["set","string"],"description":"string","resource_type":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iam_reference_resource_type":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"types":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_group":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","required":true},"name":{"type":"string","description_kind":"plain","computed":true},"owner":{"type":"string","description_kind":"plain","computed":true},"read_only":{"type":"bool","description_kind":"plain","computed":true},"resources":{"type":["set","string"],"description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iam_resource_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"resource_groups":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_ip_service":{"version":0,"block":{"attributes":{"can_be_terminated":{"type":"bool","description_kind":"plain","computed":true},"country":{"type":"string","description_kind":"plain","computed":true},"description":{"type":"string","description":"Custom description on your ip","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description_kind":"plain","computed":true},"organisation_id":{"type":"string","description":"IP block organisation Id","description_kind":"plain","computed":true},"routed_to":{"type":["list",["object",{"service_name":"string"}]],"description":"Routage information","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"type":{"type":"string","description":"Possible values for ip type","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_iploadbalancing":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_loadbalancing":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":"string","description_kind":"plain","optional":true,"computed":true},"metrics_token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true},"offer":{"type":"string","description_kind":"plain","optional":true,"computed":true},"orderable_zone":{"type":["set",["object",{"name":"string","plan_code":"string"}]],"description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ssl_configuration":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vrack_eligibility":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"vrack_name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"zone":{"type":["set","string"],"description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_network":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your vrack network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"nat_ip":{"type":"string","description":"An IP block used as a pool of IPs by this Load Balancer to connect to the servers in this private network. The blck must be in the private network and reserved for the Load Balancer","description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your IPloadbalancer","description_kind":"plain","required":true},"subnet":{"type":"string","description":"IP block of the private network in the vRack","description_kind":"plain","computed":true},"vlan":{"type":"number","description":"VLAN of the private network in the vRack. 0 if the private network is not in a VLAN","description_kind":"plain","computed":true},"vrack_network_id":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_vrack_networks":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","number"],"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"The internal name of your iploadbalancer.","description_kind":"plain","required":true},"subnet":{"type":"string","description":"Filters on subnet","description_kind":"plain","optional":true},"vlan_id":{"type":"number","description":"Filters on vlan id","description_kind":"plain","optional":true}},"description_kind":"plain"}},"ovh_me":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"Address of nichandle","description_kind":"plain","computed":true},"area":{"type":"string","description":"Area of nichandle","description_kind":"plain","computed":true},"birth_city":{"type":"string","description":"City of birth","description_kind":"plain","computed":true},"birth_day":{"type":"string","description":"Birth date","description_kind":"plain","computed":true},"city":{"type":"string","description":"City of nichandle","description_kind":"plain","computed":true},"company_national_identification_number":{"type":"string","description":"Company National Identification Number","description_kind":"plain","computed":true},"corporation_type":{"type":"string","description":"Corporation type","description_kind":"plain","computed":true},"country":{"type":"string","description":"Customer country","description_kind":"plain","computed":true},"currency":{"type":["list",["object",{"code":"string","symbol":"string"}]],"description":"Customer currency","description_kind":"plain","computed":true},"customer_code":{"type":"string","description":"Your customer code (a numerical value used for identification when contacting support via phone call)","description_kind":"plain","computed":true},"email":{"type":"string","description":"Email address","description_kind":"plain","computed":true},"fax":{"type":"string","description":"Fax number","description_kind":"plain","computed":true},"firstname":{"type":"string","description":"First name","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"italian_sdi":{"type":"string","description":"Italian SDI","description_kind":"plain","computed":true},"language":{"type":"string","description":"Language","description_kind":"plain","computed":true},"legalform":{"type":"string","description":"Customer legal form","description_kind":"plain","computed":true},"name":{"type":"string","description":"Customer name","description_kind":"plain","computed":true},"national_identification_number":{"type":"string","description":"National Identification Number","description_kind":"plain","computed":true},"nichandle":{"type":"string","description":"Customer identifier","description_kind":"plain","computed":true},"organisation":{"type":"string","description":"Name of organisation","description_kind":"plain","computed":true},"ovh_company":{"type":"string","description":"OVH subsidiary","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiary","description_kind":"plain","computed":true},"phone":{"type":"string","description":"Phone number","description_kind":"plain","computed":true},"phone_country":{"type":"string","description":"Phone number's country code","description_kind":"plain","computed":true},"sex":{"type":"string","description":"Gender","description_kind":"plain","computed":true},"spare_email":{"type":"string","description":"Spare email","description_kind":"plain","computed":true},"state":{"type":"string","description":"Nichandle state","description_kind":"plain","computed":true},"urn":{"type":"string","description":"Identity URN of the account","description_kind":"plain","computed":true},"vat":{"type":"string","description":"VAT number","description_kind":"plain","computed":true},"zip":{"type":"string","description":"Zipcode","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_client":{"version":0,"block":{"attributes":{"callback_urls":{"type":["list","string"],"description":"Callback URLs of the applications using this oauth2 client. Required if using the AUTHORIZATION_CODE flow.","description_kind":"plain","computed":true},"client_id":{"type":"string","description":"Client ID for the oauth2 client, generated during the resource creation.","description_kind":"plain","required":true},"description":{"type":"string","description":"A description of your oauth2 client.","description_kind":"plain","computed":true},"flow":{"type":"string","description":"OAuth2 flow type implemented for this oauth2 client. Can be either AUTHORIZATION_CODE or CLIENT_CREDENTIALS","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"identity":{"type":"string","description":"URN that will allow you to associate this oauth2 client with an access policy.","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_api_oauth2_clients":{"version":0,"block":{"attributes":{"client_ids":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_identity_group":{"version":0,"block":{"attributes":{"creation":{"type":"string","description_kind":"plain","computed":true},"default_group":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","required":true},"role":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_identity_groups":{"version":0,"block":{"attributes":{"groups":{"type":["set","string"],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_me_identity_user":{"version":0,"block":{"attributes":{"creation":{"type":"string","description":"Creation date of this user","description_kind":"plain","computed":true},"description":{"type":"string","description":"User description","description_kind":"plain","computed":true},"email":{"type":"string","description":"User's email","description_kind":"plain","computed":true},"group":{"type":"string","description":"User's group","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_update":{"type":"string","description":"Last update of this user","description_kind":"plain","computed":true},"login":{"type":"string","description":"User's login suffix","description_kind":"plain","computed":true},"password_last_update":{"type":"string","description":"When the user changed his password for the last time","description_kind":"plain","computed":true},"status":{"type":"string","description":"Current user's status","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"user":{"type":"string","description":"User's login","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_identity_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"users":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_installation_template":{"version":0,"block":{"attributes":{"available_languages":{"type":["list","string"],"description":"List of all language available for this template","description_kind":"plain","computed":true},"beta":{"type":"bool","description":"This distribution is new and, although tested and functional, may still display odd behaviour","description_kind":"plain","computed":true},"bit_format":{"type":"number","description":"This template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation)","description_kind":"plain","computed":true},"customization":{"type":["list",["object",{"change_log":"string","custom_hostname":"string","post_installation_script_link":"string","post_installation_script_return":"string","rating":"number","ssh_key_name":"string","use_distribution_kernel":"bool"}]],"description_kind":"plain","computed":true},"default_language":{"type":"string","description":"The default language of this template","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"is this distribution deprecated","description_kind":"plain","computed":true},"description":{"type":"string","description":"information about this template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"the distribution this template is based on","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs)","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_modification":{"type":"string","description":"Date of last modification of the base image","description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"This distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"partition_scheme":{"type":["list",["object",{"hardware_raid":["list",["object",{"disks":["list","string"],"mode":"string","name":"string","step":"number"}]],"name":"string","partition":["list",["object",{"filesystem":"string","mountpoint":"string","order":"number","raid":"string","size":"number","type":"string","volume_name":"string"}]],"priority":"number"}]],"description_kind":"plain","computed":true},"supports_distribution_kernel":{"type":"bool","description":"This distribution supports installation using the distribution's native kernel instead of the recommended OVH kernel","description_kind":"plain","computed":true},"supports_rtm":{"type":"bool","description":"This distribution supports RTM software","description_kind":"plain","computed":true},"supports_sql_server":{"type":"bool","description":"This distribution supports the microsoft SQL server","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"This template name","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_installation_templates":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_me_paymentmean_bankaccount":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"description_regexp":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","optional":true,"computed":true},"use_default":{"type":"bool","description_kind":"plain","optional":true},"use_oldest":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain","deprecated":true}},"ovh_me_paymentmean_creditcard":{"version":0,"block":{"attributes":{"default":{"type":"bool","description_kind":"plain","computed":true},"description":{"type":"string","description_kind":"plain","computed":true},"description_regexp":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"states":{"type":["set","string"],"description_kind":"plain","optional":true},"use_default":{"type":"bool","description_kind":"plain","optional":true},"use_last_to_expire":{"type":"bool","description_kind":"plain","optional":true}},"description_kind":"plain","deprecated":true}},"ovh_me_ssh_key":{"version":0,"block":{"attributes":{"default":{"type":"bool","description":"True when this public Ssh key is used for rescue mode and reinstallations","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"ASCII encoded public Ssh key","description_kind":"plain","computed":true},"key_name":{"type":"string","description":"Name of this public Ssh key","description_kind":"plain","required":true}},"description_kind":"plain"}},"ovh_me_ssh_keys":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"names":{"type":["set","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart":{"version":0,"block":{"attributes":{"assign":{"type":"bool","description":"Assign a shopping cart to a logged in client","description_kind":"plain","optional":true},"cart_id":{"type":"string","description":"Cart identifier","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of your cart","description_kind":"plain","optional":true},"expire":{"type":"string","description":"Expiration time (format: 2006-01-02T15:04:05Z07:00)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"items":{"type":["list","number"],"description":"Items of your cart","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"Indicates if the cart has already been validated","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"result":{"type":["list",["object",{"plan_code":"string","prices":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"product_name":"string","product_type":"string"}]],"description":"List of representations of a generic product","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_options":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_code":{"type":"string","description":"Product offer identifier","description_kind":"plain","required":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"result":{"type":["list",["object",{"exclusive":"bool","family":"string","mandatory":"bool","plan_code":"string","prices":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"product_name":"string","product_type":"string"}]],"description":"List of representations of a generic product","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_options_plan":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"exclusive":{"type":"bool","description":"Define if options of this family are exclusive with each other","description_kind":"plain","computed":true},"family":{"type":"string","description":"Option family","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mandatory":{"type":"bool","description":"Define if an option of this family is mandatory","description_kind":"plain","computed":true},"options_plan_code":{"type":"string","description_kind":"plain","required":true},"plan_code":{"type":"string","description_kind":"plain","required":true},"price_capacity":{"type":"string","description":"Capacity of the pricing (type of pricing)","description_kind":"plain","required":true},"prices":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Prices of the product offer","description_kind":"plain","computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"product_name":{"type":"string","description":"Name of the product","description_kind":"plain","computed":true},"product_type":{"type":"string","description":"Product type","description_kind":"plain","computed":true},"selected_price":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Selected Price according to capacity","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_order_cart_product_plan":{"version":0,"block":{"attributes":{"cart_id":{"type":"string","description_kind":"plain","required":true},"catalog_name":{"type":"string","description":"Catalog name","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_code":{"type":"string","description_kind":"plain","required":true},"price_capacity":{"type":"string","description":"Capacity of the pricing (type of pricing)","description_kind":"plain","required":true},"prices":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Prices of the product offer","description_kind":"plain","computed":true},"product":{"type":"string","description":"Product","description_kind":"plain","required":true},"product_name":{"type":"string","description":"Name of the product","description_kind":"plain","computed":true},"product_type":{"type":"string","description":"Product type","description_kind":"plain","computed":true},"selected_price":{"type":["list",["object",{"capacities":["list","string"],"description":"string","duration":"string","interval":"number","maximum_quantity":"number","maximum_repeat":"number","minimum_quantity":"number","minimum_repeat":"number","price":["list",["object",{"currency_code":"string","text":"string","value":"number"}]],"price_in_ucents":"number","pricing_mode":"string","pricing_type":"string"}]],"description":"Selected Price according to capacity","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vps":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","computed":true},"datacenter":{"type":["map","string"],"description_kind":"plain","computed":true},"displayname":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["set","string"],"description_kind":"plain","computed":true},"keymap":{"type":"string","description_kind":"plain","computed":true},"memory":{"type":"number","description_kind":"plain","computed":true},"model":{"type":["map","string"],"description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","computed":true},"netbootmode":{"type":"string","description_kind":"plain","computed":true},"offertype":{"type":"string","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"slamonitoring":{"type":"bool","description_kind":"plain","computed":true},"state":{"type":"string","description_kind":"plain","computed":true},"type":{"type":"string","description_kind":"plain","computed":true},"urn":{"type":"string","description_kind":"plain","computed":true},"vcore":{"type":"number","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vpss":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_vracks":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"result":{"type":["list","string"],"description_kind":"plain","computed":true}},"description_kind":"plain"}}}}}} diff --git a/examples/gateway/gateway.yaml b/examples/gateway/gateway.yaml new file mode 100644 index 0000000..2a8fda8 --- /dev/null +++ b/examples/gateway/gateway.yaml @@ -0,0 +1,22 @@ +apiVersion: gateway.ovh.edixos.io/v1alpha1 +kind: ProjectGateway +metadata: + name: gateway-1 + labels: + managed-by: crossplane +spec: + providerConfigRef: + name: default + forProvider: + name: gateway-1 + model: s + region: DE1 + serviceName: 980cbcf06e6a4e6e8a91a7d125b26bba + # networkId is the openstackId but networkIdRef is referencing the externalName which is the ovh api id. + # TODO need to find out how to reference the correct openstackId instead. + # networkIdRef: + # name: gateway-sample-1 + networkId: d48274f7-aefe-4f11-9d24-79b7f4aefcd4 + subnetIdRef: + name: gateway-subnet-1 + diff --git a/examples/gateway/privatenetwork.yaml b/examples/gateway/privatenetwork.yaml new file mode 100644 index 0000000..d23ed34 --- /dev/null +++ b/examples/gateway/privatenetwork.yaml @@ -0,0 +1,14 @@ +apiVersion: network.ovh.edixos.io/v1alpha1 +kind: PrivateNetwork +metadata: + name: gateway-sample-1 + labels: + managed-by: crossplane +spec: + providerConfigRef: + name: default + forProvider: + name: gateway-sample-1 + serviceName: 980cbcf06e6a4e6e8a91a7d125b26bba + regions: + - DE1 diff --git a/examples/gateway/subnet.yaml b/examples/gateway/subnet.yaml new file mode 100644 index 0000000..ca334eb --- /dev/null +++ b/examples/gateway/subnet.yaml @@ -0,0 +1,19 @@ +apiVersion: network.ovh.edixos.io/v1alpha1 +kind: Subnet +metadata: + name: gateway-subnet-1 + labels: + managed-by: crossplane +spec: + providerConfigRef: + name: default + forProvider: + serviceName: 980cbcf06e6a4e6e8a91a7d125b26bba + networkIdRef: + name: gateway-sample-1 + region: DE1 + start: 192.168.168.100 + end: 192.168.168.200 + network: 192.168.168.0/24 + dhcp: true + noGateway: false \ No newline at end of file diff --git a/examples/providerconfig/secret.yaml.tmpl b/examples/providerconfig/secret.yaml.tmpl index 6dfa5c8..1bf1583 100644 --- a/examples/providerconfig/secret.yaml.tmpl +++ b/examples/providerconfig/secret.yaml.tmpl @@ -7,6 +7,8 @@ type: Opaque stringData: credentials: | { - "username": "admin", - "password": "t0ps3cr3t11" - } + "endpoint": "ovh-eu", + "application_key": "*****", + "application_secret": "*****", + "consumer_key": "****" + } \ No newline at end of file diff --git a/hack/fix.sh b/hack/fix.sh index 736551c..c39646c 100755 --- a/hack/fix.sh +++ b/hack/fix.sh @@ -1,7 +1,7 @@ #!/bin/bash # Directory containing the files -DIRECTORY="./.work/ovh/ovh/website/docs/d" +DIRECTORY="./.work/ovh/ovh/website/docs/r" # Iterate over each file in the directory for file in "$DIRECTORY"/* diff --git a/internal/controller/additionalip/move/zz_controller.go b/internal/controller/additionalip/move/zz_controller.go new file mode 100755 index 0000000..ff3227c --- /dev/null +++ b/internal/controller/additionalip/move/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package move + +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/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + "github.com/pkg/errors" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/additionalip/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Move managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Move_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.Move_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Move_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_ip_move"], 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.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + + // register webhooks for the kind v1alpha1.Move + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.Move{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.Move") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Move_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Move{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/gateway/projectgateway/zz_controller.go b/internal/controller/gateway/projectgateway/zz_controller.go new file mode 100755 index 0000000..1843825 --- /dev/null +++ b/internal/controller/gateway/projectgateway/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package projectgateway + +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/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + "github.com/pkg/errors" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/gateway/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectGateway managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectGateway_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.ProjectGateway_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectGateway_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_gateway"], 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.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + + // register webhooks for the kind v1alpha1.ProjectGateway + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.ProjectGateway{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.ProjectGateway") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProjectGateway_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectGateway{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index f2c0a56..0ff8b34 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -9,6 +9,7 @@ import ( "github.com/crossplane/upjet/pkg/controller" + move "github.com/edixos/provider-ovh/internal/controller/additionalip/move" projectfailoveripattach "github.com/edixos/provider-ovh/internal/controller/additionalip/projectfailoveripattach" reverse "github.com/edixos/provider-ovh/internal/controller/additionalip/reverse" service "github.com/edixos/provider-ovh/internal/controller/additionalip/service" @@ -44,6 +45,7 @@ import ( zone "github.com/edixos/provider-ovh/internal/controller/dns/zone" zonerecord "github.com/edixos/provider-ovh/internal/controller/dns/zonerecord" zoneredirection "github.com/edixos/provider-ovh/internal/controller/dns/zoneredirection" + projectgateway "github.com/edixos/provider-ovh/internal/controller/gateway/projectgateway" iampermissionsgroup "github.com/edixos/provider-ovh/internal/controller/iam/iampermissionsgroup" iampolicy "github.com/edixos/provider-ovh/internal/controller/iam/iampolicy" iamresourcegroup "github.com/edixos/provider-ovh/internal/controller/iam/iamresourcegroup" @@ -100,6 +102,7 @@ import ( // the supplied manager. func Setup(mgr ctrl.Manager, o controller.Options) error { for _, setup := range []func(ctrl.Manager, controller.Options) error{ + move.Setup, projectfailoveripattach.Setup, reverse.Setup, service.Setup, @@ -135,6 +138,7 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { zone.Setup, zonerecord.Setup, zoneredirection.Setup, + projectgateway.Setup, iampermissionsgroup.Setup, iampolicy.Setup, iamresourcegroup.Setup, diff --git a/package/crds/additionalip.ovh.edixos.io_moves.yaml b/package/crds/additionalip.ovh.edixos.io_moves.yaml new file mode 100644 index 0000000..8efc72f --- /dev/null +++ b/package/crds/additionalip.ovh.edixos.io_moves.yaml @@ -0,0 +1,382 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: moves.additionalip.ovh.edixos.io +spec: + group: additionalip.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Move + listKind: MoveList + plural: moves + singular: move + 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: Move is the Schema for the Moves 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: MoveSpec defines the desired state of Move + 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: + description: + description: Custom description on your ip + type: string + ip: + type: string + routedTo: + description: Routage information + items: + properties: + serviceName: + description: Service where ip is routed to + type: string + type: object + type: array + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + 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: + description: + description: Custom description on your ip + type: string + ip: + type: string + routedTo: + description: Routage information + items: + properties: + serviceName: + description: Service where ip is routed to + type: string + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + 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.ip is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ip) + || (has(self.initProvider) && has(self.initProvider.ip))' + - message: spec.forProvider.routedTo is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.routedTo) + || (has(self.initProvider) && has(self.initProvider.routedTo))' + status: + description: MoveStatus defines the observed state of Move. + properties: + atProvider: + properties: + canBeTerminated: + type: boolean + country: + type: string + description: + description: Custom description on your ip + type: string + id: + type: string + ip: + type: string + organisationId: + type: string + routedTo: + description: Routage information + items: + properties: + serviceName: + description: Service where ip is routed to + type: string + type: object + type: array + serviceName: + type: string + taskStartDate: + description: Starting date and time field of the current IP task + that is in charge of changing the service the IP is attached + to + type: string + taskStatus: + description: Status field of the current IP task that is in charge + of changing the service the IP is attached to + type: string + type: + description: Possible values for ip type + 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 + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/gateway.ovh.edixos.io_projectgateways.yaml b/package/crds/gateway.ovh.edixos.io_projectgateways.yaml new file mode 100644 index 0000000..74aba8c --- /dev/null +++ b/package/crds/gateway.ovh.edixos.io_projectgateways.yaml @@ -0,0 +1,673 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: projectgateways.gateway.ovh.edixos.io +spec: + group: gateway.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectGateway + listKind: ProjectGatewayList + plural: projectgateways + singular: projectgateway + 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: ProjectGateway is the Schema for the ProjectGateways 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: ProjectGatewaySpec defines the desired state of ProjectGateway + 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: + model: + type: string + name: + type: string + networkId: + type: string + networkIdRef: + description: Reference to a PrivateNetwork in network to populate + networkId. + 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 + networkIdSelector: + description: Selector for a PrivateNetwork in network to populate + networkId. + 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 + region: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + subnetId: + type: string + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + 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 + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + 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 + type: object + initProvider: + description: |- + THIS IS A BETA FIELD. It will be honored + unless the Management Policies feature flag is disabled. + 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: + model: + type: string + name: + type: string + networkId: + type: string + networkIdRef: + description: Reference to a PrivateNetwork in network to populate + networkId. + 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 + networkIdSelector: + description: Selector for a PrivateNetwork in network to populate + networkId. + 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 + region: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + subnetId: + type: string + subnetIdRef: + description: Reference to a Subnet in network to populate subnetId. + 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 + subnetIdSelector: + description: Selector for a Subnet in network to populate subnetId. + 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 + type: object + managementPolicies: + default: + - '*' + description: |- + THIS IS A BETA FIELD. It is on by default but can be opted out + through a Crossplane feature flag. + 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.model is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.model) + || (has(self.initProvider) && has(self.initProvider.model))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.region is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.region) + || (has(self.initProvider) && has(self.initProvider.region))' + - message: spec.forProvider.serviceName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceName) + || (has(self.initProvider) && has(self.initProvider.serviceName))' + status: + description: ProjectGatewayStatus defines the observed state of ProjectGateway. + properties: + atProvider: + properties: + id: + type: string + model: + type: string + name: + type: string + networkId: + type: string + region: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + status: + type: string + subnetId: + 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 + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {}