From d4292aeadc1558b252dfea0c3ccde834cb23add2 Mon Sep 17 00:00:00 2001 From: Ismail Kaboubi Date: Mon, 9 Dec 2024 15:24:11 +0100 Subject: [PATCH] add new resources and upgrade ovh provider to version v1.1.0 (#24) * add new resources and upgrade ovh provider to version v1.1.0 * fix network subnet v2 resource --- Makefile | 4 +- README.md | 3 + .../v1alpha1/zz_firewall_types.go | 2 +- .../v1alpha1/zz_firewallrule_types.go | 2 +- .../v1alpha1/zz_mitigation_types.go | 2 +- apis/additionalip/v1alpha1/zz_move_types.go | 2 +- .../zz_projectfailoveripattach_types.go | 2 +- .../additionalip/v1alpha1/zz_reverse_types.go | 2 +- .../additionalip/v1alpha1/zz_service_types.go | 8 +- .../v1alpha1/zz_generated.conversion_hubs.go | 3 - apis/cloud/v1alpha1/zz_generated.deepcopy.go | 254 - apis/cloud/v1alpha1/zz_generated.managed.go | 60 - .../v1alpha1/zz_generated.managedlist.go | 9 - apis/cloud/v1alpha1/zz_project_types.go | 8 +- apis/cloud/v1alpha1/zz_s3credentials_types.go | 2 +- apis/cloud/v1alpha1/zz_s3policy_types.go | 2 +- apis/cloud/v1alpha1/zz_user_types.go | 2 +- .../v1alpha1/zz_cephacl_types.go | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 10 + .../v1alpha1/zz_projectdatabase_types.go | 9 +- .../zz_projectdatabasedatabase_types.go | 2 +- .../zz_projectdatabaseintegration_types.go | 2 +- .../zz_projectdatabaseiprestriction_types.go | 2 +- .../zz_projectdatabasekafkaacl_types.go | 2 +- ...ectdatabasekafkaschemaregistryacl_types.go | 2 +- .../zz_projectdatabasekafkatopic_types.go | 2 +- .../zz_projectdatabasem3dbnamespace_types.go | 3 +- .../zz_projectdatabasem3dbuser_types.go | 2 +- .../zz_projectdatabasemongodbuser_types.go | 2 +- ..._projectdatabaseopensearchpattern_types.go | 2 +- .../zz_projectdatabaseopensearchuser_types.go | 2 +- ...tdatabasepostgresqlconnectionpool_types.go | 2 +- .../zz_projectdatabasepostgresqluser_types.go | 2 +- .../zz_projectdatabaseredisuser_types.go | 2 +- .../v1alpha1/zz_projectdatabaseuser_types.go | 2 +- .../v1alpha1/zz_installationtemplate_types.go | 2 +- ...stallationtemplatepartitionscheme_types.go | 2 +- ...mplatepartitionschemehardwareraid_types.go | 2 +- ...ntemplatepartitionschemepartition_types.go | 2 +- .../v1alpha1/zz_serverinstalltask_types.go | 2 +- .../v1alpha1/zz_servernetworking_types.go | 2 +- .../v1alpha1/zz_serverreboottask_types.go | 2 +- .../v1alpha1/zz_serverupdate_types.go | 2 +- apis/dns/v1alpha1/zz_zone_types.go | 8 +- apis/dns/v1alpha1/zz_zonednssec_types.go | 2 +- apis/dns/v1alpha1/zz_zonerecord_types.go | 2 +- apis/dns/v1alpha1/zz_zoneredirection_types.go | 2 +- .../v1alpha1/zz_projectgateway_types.go | 2 +- .../v1alpha1/zz_iampermissionsgroup_types.go | 2 +- apis/iam/v1alpha1/zz_iampolicy_types.go | 2 +- .../iam/v1alpha1/zz_iamresourcegroup_types.go | 2 +- apis/kube/v1alpha1/zz_cluster_types.go | 2 +- apis/kube/v1alpha1/zz_iprestriction_types.go | 2 +- apis/kube/v1alpha1/zz_nodepool_types.go | 2 +- .../v1alpha1/zz_oidcconfiguration_types.go | 2 +- .../v1alpha1/zz_generated.conversion_hubs.go | 12 + apis/lb/v1alpha1/zz_generated.deepcopy.go | 1083 ++++- apis/lb/v1alpha1/zz_generated.managed.go | 240 + apis/lb/v1alpha1/zz_generated.managedlist.go | 36 + apis/lb/v1alpha1/zz_httpfarm_types.go | 2 +- apis/lb/v1alpha1/zz_httpfarmserver_types.go | 2 +- apis/lb/v1alpha1/zz_httpfrontend_types.go | 2 +- apis/lb/v1alpha1/zz_httproute_types.go | 2 +- apis/lb/v1alpha1/zz_httprouterule_types.go | 2 +- apis/lb/v1alpha1/zz_iploadbalancing_types.go | 8 +- ...loadbalancerlogsubscription_terraformed.go | 0 ...regionloadbalancerlogsubscription_types.go | 2 +- apis/lb/v1alpha1/zz_refresh_types.go | 2 +- apis/lb/v1alpha1/zz_ssl_terraformed.go | 129 + apis/lb/v1alpha1/zz_ssl_types.go | 152 + apis/lb/v1alpha1/zz_tcpfarm_types.go | 2 +- apis/lb/v1alpha1/zz_tcpfarmserver_types.go | 2 +- apis/lb/v1alpha1/zz_tcpfrontend_types.go | 2 +- apis/lb/v1alpha1/zz_tcproute_types.go | 2 +- apis/lb/v1alpha1/zz_tcprouterule_types.go | 2 +- apis/lb/v1alpha1/zz_udpfarm_terraformed.go | 129 + apis/lb/v1alpha1/zz_udpfarm_types.go | 142 + .../v1alpha1/zz_udpfarmserver_terraformed.go | 129 + apis/lb/v1alpha1/zz_udpfarmserver_types.go | 156 + apis/lb/v1alpha1/zz_udpfrontend_types.go | 2 +- apis/lb/v1alpha1/zz_vracknetwork_types.go | 2 +- .../v1alpha1/zz_generated.conversion_hubs.go | 6 + apis/logs/v1alpha1/zz_generated.deepcopy.go | 559 +++ apis/logs/v1alpha1/zz_generated.managed.go | 120 + .../logs/v1alpha1/zz_generated.managedlist.go | 18 + apis/logs/v1alpha1/zz_logscluster_types.go | 2 +- apis/logs/v1alpha1/zz_logsinput_types.go | 2 +- ...z_logsoutputopensearchalias_terraformed.go | 129 + .../zz_logsoutputopensearchalias_types.go | 183 + ...z_logsoutputopensearchindex_terraformed.go | 129 + .../zz_logsoutputopensearchindex_types.go | 154 + apis/logs/v1alpha1/zz_logstoken_types.go | 2 +- apis/me/v1alpha1/zz_group_types.go | 2 +- apis/me/v1alpha1/zz_oauth2client_types.go | 2 +- apis/me/v1alpha1/zz_user_types.go | 2 +- apis/nas/v1alpha1/zz_nashapartition_types.go | 2 +- .../v1alpha1/zz_nashapartitionaccess_types.go | 2 +- .../zz_nashapartitionsnapshot_types.go | 2 +- .../v1alpha1/zz_generated.conversion_hubs.go | 3 + .../network/v1alpha1/zz_generated.deepcopy.go | 509 ++ apis/network/v1alpha1/zz_generated.managed.go | 60 + .../v1alpha1/zz_generated.managedlist.go | 9 + .../v1alpha1/zz_generated.resolvers.go | 42 + .../v1alpha1/zz_privatenetwork_types.go | 2 +- apis/network/v1alpha1/zz_subnet_types.go | 2 +- .../v1alpha1/zz_subnetv2_terraformed.go | 129 + apis/network/v1alpha1/zz_subnetv2_types.go | 260 + .../v1alpha1/zz_privatedatabase_types.go | 8 +- .../zz_privatedatabasedatabase_types.go | 2 +- .../v1alpha1/zz_privatedatabaseuser_types.go | 2 +- .../zz_privatedatabaseusergrant_types.go | 2 +- .../zz_privatedatabasewhitelist_types.go | 2 +- .../v1alpha1/zz_containerregistry_types.go | 2 +- ...rregistryiprestrictionsmanagement_types.go | 2 +- ...nerregistryiprestrictionsregistry_types.go | 2 +- .../zz_containerregistryoidc_types.go | 2 +- .../zz_containerregistryuser_types.go | 2 +- .../zz_projectregionstoragepresign_types.go | 34 +- .../zz_projectworkflowbackup_types.go | 2 +- apis/vrack/v1alpha1/zz_cloudproject_types.go | 2 +- .../v1alpha1/zz_dedicatedserver_types.go | 2 +- .../zz_dedicatedserverinterface_types.go | 2 +- apis/vrack/v1alpha1/zz_ip_types.go | 2 +- .../v1alpha1/zz_iploadbalancing_types.go | 2 +- apis/vrack/v1alpha1/zz_vrack_types.go | 8 +- config/external_name.go | 21 +- config/kms/config.go | 21 + config/lb/config.go | 11 +- config/logs/config.go | 7 +- config/provider-metadata.yaml | 4173 +++++++++++++---- config/provider.go | 3 + config/public_cloud_network/config.go | 7 + config/schema.json | 2 +- hack/fix.sh | 2 +- .../zz_controller.go | 2 +- internal/controller/lb/ssl/zz_controller.go | 74 + .../controller/lb/udpfarm/zz_controller.go | 74 + .../lb/udpfarmserver/zz_controller.go | 74 + .../zz_controller.go | 74 + .../zz_controller.go | 74 + .../network/subnetv2/zz_controller.go | 74 + internal/controller/zz_setup.go | 16 +- ...itionalip.ovh.edixos.io_firewallrules.yaml | 2 +- .../additionalip.ovh.edixos.io_firewalls.yaml | 2 +- ...dditionalip.ovh.edixos.io_mitigations.yaml | 2 +- .../additionalip.ovh.edixos.io_moves.yaml | 2 +- ...h.edixos.io_projectfailoveripattaches.yaml | 2 +- .../additionalip.ovh.edixos.io_reverses.yaml | 2 +- .../additionalip.ovh.edixos.io_services.yaml | 11 +- .../crds/cloud.ovh.edixos.io_projects.yaml | 11 +- .../cloud.ovh.edixos.io_s3credentials.yaml | 2 +- .../crds/cloud.ovh.edixos.io_s3policies.yaml | 2 +- package/crds/cloud.ovh.edixos.io_users.yaml | 2 +- ...clouddiskarray.ovh.edixos.io_cephacls.yaml | 2 +- ...vh.edixos.io_projectdatabasedatabases.yaml | 2 +- ...edixos.io_projectdatabaseintegrations.yaml | 2 +- ...ixos.io_projectdatabaseiprestrictions.yaml | 2 +- ...vh.edixos.io_projectdatabasekafkaacls.yaml | 2 +- ...rojectdatabasekafkaschemaregistryacls.yaml | 2 +- ....edixos.io_projectdatabasekafkatopics.yaml | 2 +- ...ixos.io_projectdatabasem3dbnamespaces.yaml | 6 +- ...vh.edixos.io_projectdatabasem3dbusers.yaml | 2 +- ...edixos.io_projectdatabasemongodbusers.yaml | 2 +- ....io_projectdatabaseopensearchpatterns.yaml | 2 +- ...xos.io_projectdatabaseopensearchusers.yaml | 2 +- ...jectdatabasepostgresqlconnectionpools.yaml | 2 +- ...xos.io_projectdatabasepostgresqlusers.yaml | 2 +- ...h.edixos.io_projectdatabaseredisusers.yaml | 2 +- ...abases.ovh.edixos.io_projectdatabases.yaml | 8 +- ...es.ovh.edixos.io_projectdatabaseusers.yaml | 2 +- ...ntemplatepartitionschemehardwareraids.yaml | 2 +- ...tiontemplatepartitionschemepartitions.yaml | 2 +- ..._installationtemplatepartitionschemes.yaml | 2 +- ...r.ovh.edixos.io_installationtemplates.yaml | 2 +- ...rver.ovh.edixos.io_serverinstalltasks.yaml | 2 +- ...erver.ovh.edixos.io_servernetworkings.yaml | 2 +- ...erver.ovh.edixos.io_serverreboottasks.yaml | 2 +- ...tedserver.ovh.edixos.io_serverupdates.yaml | 2 +- .../crds/dns.ovh.edixos.io_zonednssecs.yaml | 2 +- .../crds/dns.ovh.edixos.io_zonerecords.yaml | 2 +- .../dns.ovh.edixos.io_zoneredirections.yaml | 2 +- package/crds/dns.ovh.edixos.io_zones.yaml | 11 +- ...gateway.ovh.edixos.io_projectgateways.yaml | 2 +- ...am.ovh.edixos.io_iampermissionsgroups.yaml | 2 +- .../crds/iam.ovh.edixos.io_iampolicies.yaml | 2 +- .../iam.ovh.edixos.io_iamresourcegroups.yaml | 2 +- package/crds/kube.ovh.edixos.io_clusters.yaml | 2 +- .../kube.ovh.edixos.io_iprestrictions.yaml | 2 +- .../crds/kube.ovh.edixos.io_nodepools.yaml | 2 +- ...kube.ovh.edixos.io_oidcconfigurations.yaml | 2 +- package/crds/lb.ovh.edixos.io_httpfarms.yaml | 2 +- .../lb.ovh.edixos.io_httpfarmservers.yaml | 2 +- .../crds/lb.ovh.edixos.io_httpfrontends.yaml | 2 +- .../crds/lb.ovh.edixos.io_httprouterules.yaml | 2 +- package/crds/lb.ovh.edixos.io_httproutes.yaml | 2 +- .../lb.ovh.edixos.io_iploadbalancings.yaml | 11 +- ...ctregionloadbalancerlogsubscriptions.yaml} | 6 +- package/crds/lb.ovh.edixos.io_refreshes.yaml | 2 +- package/crds/lb.ovh.edixos.io_ssls.yaml | 402 ++ package/crds/lb.ovh.edixos.io_tcpfarms.yaml | 2 +- .../crds/lb.ovh.edixos.io_tcpfarmservers.yaml | 2 +- .../crds/lb.ovh.edixos.io_tcpfrontends.yaml | 2 +- .../crds/lb.ovh.edixos.io_tcprouterules.yaml | 2 +- package/crds/lb.ovh.edixos.io_tcproutes.yaml | 2 +- package/crds/lb.ovh.edixos.io_udpfarms.yaml | 384 ++ .../crds/lb.ovh.edixos.io_udpfarmservers.yaml | 394 ++ .../crds/lb.ovh.edixos.io_udpfrontends.yaml | 2 +- .../crds/lb.ovh.edixos.io_vracknetworks.yaml | 2 +- .../crds/logs.ovh.edixos.io_logsclusters.yaml | 2 +- .../crds/logs.ovh.edixos.io_logsinputs.yaml | 2 +- ...edixos.io_logsoutputopensearchaliases.yaml | 426 ++ ...edixos.io_logsoutputopensearchindices.yaml | 392 ++ .../crds/logs.ovh.edixos.io_logstokens.yaml | 2 +- package/crds/me.ovh.edixos.io_groups.yaml | 2 +- .../crds/me.ovh.edixos.io_oauth2clients.yaml | 2 +- package/crds/me.ovh.edixos.io_users.yaml | 2 +- ....ovh.edixos.io_nashapartitionaccesses.yaml | 2 +- .../nas.ovh.edixos.io_nashapartitions.yaml | 2 +- ...ovh.edixos.io_nashapartitionsnapshots.yaml | 2 +- ...network.ovh.edixos.io_privatenetworks.yaml | 2 +- .../crds/network.ovh.edixos.io_subnets.yaml | 2 +- .../crds/network.ovh.edixos.io_subnetv2s.yaml | 630 +++ ...vh.edixos.io_privatedatabasedatabases.yaml | 2 +- ...atesql.ovh.edixos.io_privatedatabases.yaml | 11 +- ...h.edixos.io_privatedatabaseusergrants.yaml | 2 +- ...ql.ovh.edixos.io_privatedatabaseusers.yaml | 2 +- ...h.edixos.io_privatedatabasewhitelists.yaml | 2 +- ...try.ovh.edixos.io_containerregistries.yaml | 2 +- ...inerregistryiprestrictionsmanagements.yaml | 2 +- ...ainerregistryiprestrictionsregistries.yaml | 2 +- ....ovh.edixos.io_containerregistryoidcs.yaml | 2 +- ....ovh.edixos.io_containerregistryusers.yaml | 2 +- ...dixos.io_projectregionstoragepresigns.yaml | 34 +- ....ovh.edixos.io_projectworkflowbackups.yaml | 2 +- .../vrack.ovh.edixos.io_cloudprojects.yaml | 2 +- ...h.edixos.io_dedicatedserverinterfaces.yaml | 2 +- .../vrack.ovh.edixos.io_dedicatedservers.yaml | 2 +- .../vrack.ovh.edixos.io_iploadbalancings.yaml | 2 +- package/crds/vrack.ovh.edixos.io_ips.yaml | 2 +- package/crds/vrack.ovh.edixos.io_vracks.yaml | 11 +- 240 files changed, 11163 insertions(+), 1579 deletions(-) rename apis/{cloud => lb}/v1alpha1/zz_projectregionloadbalancerlogsubscription_terraformed.go (100%) rename apis/{cloud => lb}/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go (99%) create mode 100755 apis/lb/v1alpha1/zz_ssl_terraformed.go create mode 100755 apis/lb/v1alpha1/zz_ssl_types.go create mode 100755 apis/lb/v1alpha1/zz_udpfarm_terraformed.go create mode 100755 apis/lb/v1alpha1/zz_udpfarm_types.go create mode 100755 apis/lb/v1alpha1/zz_udpfarmserver_terraformed.go create mode 100755 apis/lb/v1alpha1/zz_udpfarmserver_types.go create mode 100755 apis/logs/v1alpha1/zz_logsoutputopensearchalias_terraformed.go create mode 100755 apis/logs/v1alpha1/zz_logsoutputopensearchalias_types.go create mode 100755 apis/logs/v1alpha1/zz_logsoutputopensearchindex_terraformed.go create mode 100755 apis/logs/v1alpha1/zz_logsoutputopensearchindex_types.go create mode 100755 apis/network/v1alpha1/zz_subnetv2_terraformed.go create mode 100755 apis/network/v1alpha1/zz_subnetv2_types.go create mode 100644 config/kms/config.go rename internal/controller/{cloud => lb}/projectregionloadbalancerlogsubscription/zz_controller.go (98%) create mode 100755 internal/controller/lb/ssl/zz_controller.go create mode 100755 internal/controller/lb/udpfarm/zz_controller.go create mode 100755 internal/controller/lb/udpfarmserver/zz_controller.go create mode 100755 internal/controller/logs/logsoutputopensearchalias/zz_controller.go create mode 100755 internal/controller/logs/logsoutputopensearchindex/zz_controller.go create mode 100755 internal/controller/network/subnetv2/zz_controller.go rename package/crds/{cloud.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml => lb.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml} (99%) create mode 100644 package/crds/lb.ovh.edixos.io_ssls.yaml create mode 100644 package/crds/lb.ovh.edixos.io_udpfarms.yaml create mode 100644 package/crds/lb.ovh.edixos.io_udpfarmservers.yaml create mode 100644 package/crds/logs.ovh.edixos.io_logsoutputopensearchaliases.yaml create mode 100644 package/crds/logs.ovh.edixos.io_logsoutputopensearchindices.yaml create mode 100644 package/crds/network.ovh.edixos.io_subnetv2s.yaml diff --git a/Makefile b/Makefile index f79bdfc..6f20d8f 100644 --- a/Makefile +++ b/Makefile @@ -8,10 +8,10 @@ export TERRAFORM_VERSION ?= 1.8.1 export TERRAFORM_PROVIDER_SOURCE ?= ovh/ovh export TERRAFORM_PROVIDER_REPO ?= https://github.com/ovh/terraform-provider-ovh -export TERRAFORM_PROVIDER_VERSION ?= 0.49.0 +export TERRAFORM_PROVIDER_VERSION ?= 1.1.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.49.0 +export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-ovh_v1.1.0 export TERRAFORM_DOCS_PATH ?= website/docs diff --git a/README.md b/README.md index 0d20c9e..0d8d4a1 100644 --- a/README.md +++ b/README.md @@ -67,3 +67,6 @@ make build For filing bugs, suggesting improvements, or requesting new features, please open an [issue](https://github.com/edixos/provider-ovh/issues). + + + diff --git a/apis/additionalip/v1alpha1/zz_firewall_types.go b/apis/additionalip/v1alpha1/zz_firewall_types.go index 1098cef..bd61579 100755 --- a/apis/additionalip/v1alpha1/zz_firewall_types.go +++ b/apis/additionalip/v1alpha1/zz_firewall_types.go @@ -84,7 +84,7 @@ type FirewallStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Firewall struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_firewallrule_types.go b/apis/additionalip/v1alpha1/zz_firewallrule_types.go index e56bca1..c634e13 100755 --- a/apis/additionalip/v1alpha1/zz_firewallrule_types.go +++ b/apis/additionalip/v1alpha1/zz_firewallrule_types.go @@ -172,7 +172,7 @@ type FirewallRuleStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type FirewallRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_mitigation_types.go b/apis/additionalip/v1alpha1/zz_mitigation_types.go index c24b656..66c6fdf 100755 --- a/apis/additionalip/v1alpha1/zz_mitigation_types.go +++ b/apis/additionalip/v1alpha1/zz_mitigation_types.go @@ -92,7 +92,7 @@ type MitigationStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Mitigation struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_move_types.go b/apis/additionalip/v1alpha1/zz_move_types.go index 2ea1703..6d49f98 100755 --- a/apis/additionalip/v1alpha1/zz_move_types.go +++ b/apis/additionalip/v1alpha1/zz_move_types.go @@ -118,7 +118,7 @@ type MoveStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Move struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go b/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go index e9c4f03..238e9c0 100755 --- a/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go +++ b/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go @@ -125,7 +125,7 @@ type ProjectFailoverIPAttachStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectFailoverIPAttach struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_reverse_types.go b/apis/additionalip/v1alpha1/zz_reverse_types.go index 93fd855..f848890 100755 --- a/apis/additionalip/v1alpha1/zz_reverse_types.go +++ b/apis/additionalip/v1alpha1/zz_reverse_types.go @@ -75,7 +75,7 @@ type ReverseStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Reverse struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/additionalip/v1alpha1/zz_service_types.go b/apis/additionalip/v1alpha1/zz_service_types.go index 81d364b..07ded6a 100755 --- a/apis/additionalip/v1alpha1/zz_service_types.go +++ b/apis/additionalip/v1alpha1/zz_service_types.go @@ -354,14 +354,12 @@ type ServiceStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Service 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec ServiceSpec `json:"spec"` - Status ServiceStatus `json:"status,omitempty"` + Spec ServiceSpec `json:"spec"` + Status ServiceStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/cloud/v1alpha1/zz_generated.conversion_hubs.go b/apis/cloud/v1alpha1/zz_generated.conversion_hubs.go index 0a130ee..9cb8b65 100755 --- a/apis/cloud/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/cloud/v1alpha1/zz_generated.conversion_hubs.go @@ -9,9 +9,6 @@ package v1alpha1 // Hub marks this type as a conversion hub. func (tr *Project) Hub() {} -// Hub marks this type as a conversion hub. -func (tr *ProjectRegionLoadbalancerLogSubscription) Hub() {} - // Hub marks this type as a conversion hub. func (tr *User) Hub() {} diff --git a/apis/cloud/v1alpha1/zz_generated.deepcopy.go b/apis/cloud/v1alpha1/zz_generated.deepcopy.go index e5e168f..344ef9d 100644 --- a/apis/cloud/v1alpha1/zz_generated.deepcopy.go +++ b/apis/cloud/v1alpha1/zz_generated.deepcopy.go @@ -785,260 +785,6 @@ func (in *ProjectParameters) DeepCopy() *ProjectParameters { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRegionLoadbalancerLogSubscription) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscription) { - *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 ProjectRegionLoadbalancerLogSubscription. -func (in *ProjectRegionLoadbalancerLogSubscription) DeepCopy() *ProjectRegionLoadbalancerLogSubscription { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscription) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProjectRegionLoadbalancerLogSubscription) 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 *ProjectRegionLoadbalancerLogSubscriptionInitParameters) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionInitParameters) { - *out = *in - if in.Kind != nil { - in, out := &in.Kind, &out.Kind - *out = new(string) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.RegionName != nil { - in, out := &in.RegionName, &out.RegionName - *out = new(string) - **out = **in - } - if in.ServiceName != nil { - in, out := &in.ServiceName, &out.ServiceName - *out = new(string) - **out = **in - } - if in.StreamID != nil { - in, out := &in.StreamID, &out.StreamID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionInitParameters. -func (in *ProjectRegionLoadbalancerLogSubscriptionInitParameters) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionInitParameters { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRegionLoadbalancerLogSubscriptionList) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ProjectRegionLoadbalancerLogSubscription, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionList. -func (in *ProjectRegionLoadbalancerLogSubscriptionList) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionList { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ProjectRegionLoadbalancerLogSubscriptionList) 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 *ProjectRegionLoadbalancerLogSubscriptionObservation) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionObservation) { - *out = *in - if in.CreatedAt != nil { - in, out := &in.CreatedAt, &out.CreatedAt - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Kind != nil { - in, out := &in.Kind, &out.Kind - *out = new(string) - **out = **in - } - if in.LdpServiceName != nil { - in, out := &in.LdpServiceName, &out.LdpServiceName - *out = new(string) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.OperationID != nil { - in, out := &in.OperationID, &out.OperationID - *out = new(string) - **out = **in - } - if in.RegionName != nil { - in, out := &in.RegionName, &out.RegionName - *out = new(string) - **out = **in - } - if in.ResourceName != nil { - in, out := &in.ResourceName, &out.ResourceName - *out = new(string) - **out = **in - } - if in.ResourceType != nil { - in, out := &in.ResourceType, &out.ResourceType - *out = new(string) - **out = **in - } - if in.ServiceName != nil { - in, out := &in.ServiceName, &out.ServiceName - *out = new(string) - **out = **in - } - if in.StreamID != nil { - in, out := &in.StreamID, &out.StreamID - *out = new(string) - **out = **in - } - if in.SubscriptionID != nil { - in, out := &in.SubscriptionID, &out.SubscriptionID - *out = new(string) - **out = **in - } - if in.UpdatedAt != nil { - in, out := &in.UpdatedAt, &out.UpdatedAt - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionObservation. -func (in *ProjectRegionLoadbalancerLogSubscriptionObservation) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionObservation { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRegionLoadbalancerLogSubscriptionParameters) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionParameters) { - *out = *in - if in.Kind != nil { - in, out := &in.Kind, &out.Kind - *out = new(string) - **out = **in - } - if in.LoadbalancerID != nil { - in, out := &in.LoadbalancerID, &out.LoadbalancerID - *out = new(string) - **out = **in - } - if in.RegionName != nil { - in, out := &in.RegionName, &out.RegionName - *out = new(string) - **out = **in - } - if in.ServiceName != nil { - in, out := &in.ServiceName, &out.ServiceName - *out = new(string) - **out = **in - } - if in.StreamID != nil { - in, out := &in.StreamID, &out.StreamID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionParameters. -func (in *ProjectRegionLoadbalancerLogSubscriptionParameters) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionParameters { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRegionLoadbalancerLogSubscriptionSpec) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionSpec) { - *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 ProjectRegionLoadbalancerLogSubscriptionSpec. -func (in *ProjectRegionLoadbalancerLogSubscriptionSpec) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionSpec { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProjectRegionLoadbalancerLogSubscriptionStatus) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionStatus) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionStatus. -func (in *ProjectRegionLoadbalancerLogSubscriptionStatus) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionStatus { - if in == nil { - return nil - } - out := new(ProjectRegionLoadbalancerLogSubscriptionStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { *out = *in diff --git a/apis/cloud/v1alpha1/zz_generated.managed.go b/apis/cloud/v1alpha1/zz_generated.managed.go index 1162e9d..55003eb 100644 --- a/apis/cloud/v1alpha1/zz_generated.managed.go +++ b/apis/cloud/v1alpha1/zz_generated.managed.go @@ -67,66 +67,6 @@ func (mg *Project) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this ProjectRegionLoadbalancerLogSubscription. -func (mg *ProjectRegionLoadbalancerLogSubscription) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this S3Credentials. func (mg *S3Credentials) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/cloud/v1alpha1/zz_generated.managedlist.go b/apis/cloud/v1alpha1/zz_generated.managedlist.go index 0219014..ea78936 100644 --- a/apis/cloud/v1alpha1/zz_generated.managedlist.go +++ b/apis/cloud/v1alpha1/zz_generated.managedlist.go @@ -16,15 +16,6 @@ func (l *ProjectList) GetItems() []resource.Managed { return items } -// GetItems of this ProjectRegionLoadbalancerLogSubscriptionList. -func (l *ProjectRegionLoadbalancerLogSubscriptionList) 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 S3CredentialsList. func (l *S3CredentialsList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/cloud/v1alpha1/zz_project_types.go b/apis/cloud/v1alpha1/zz_project_types.go index 4945650..9da5283 100755 --- a/apis/cloud/v1alpha1/zz_project_types.go +++ b/apis/cloud/v1alpha1/zz_project_types.go @@ -334,14 +334,12 @@ type ProjectStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Project 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec ProjectSpec `json:"spec"` - Status ProjectStatus `json:"status,omitempty"` + Spec ProjectSpec `json:"spec"` + Status ProjectStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/cloud/v1alpha1/zz_s3credentials_types.go b/apis/cloud/v1alpha1/zz_s3credentials_types.go index 0150ad6..39530d8 100755 --- a/apis/cloud/v1alpha1/zz_s3credentials_types.go +++ b/apis/cloud/v1alpha1/zz_s3credentials_types.go @@ -97,7 +97,7 @@ type S3CredentialsStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type S3Credentials struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/cloud/v1alpha1/zz_s3policy_types.go b/apis/cloud/v1alpha1/zz_s3policy_types.go index 78c3fca..3d19f60 100755 --- a/apis/cloud/v1alpha1/zz_s3policy_types.go +++ b/apis/cloud/v1alpha1/zz_s3policy_types.go @@ -103,7 +103,7 @@ type S3PolicyStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type S3Policy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/cloud/v1alpha1/zz_user_types.go b/apis/cloud/v1alpha1/zz_user_types.go index 27282e1..0b261ac 100755 --- a/apis/cloud/v1alpha1/zz_user_types.go +++ b/apis/cloud/v1alpha1/zz_user_types.go @@ -120,7 +120,7 @@ type UserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type User struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/clouddiskarray/v1alpha1/zz_cephacl_types.go b/apis/clouddiskarray/v1alpha1/zz_cephacl_types.go index a2f17db..6a37eef 100755 --- a/apis/clouddiskarray/v1alpha1/zz_cephacl_types.go +++ b/apis/clouddiskarray/v1alpha1/zz_cephacl_types.go @@ -77,7 +77,7 @@ type CephACLStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type CephACL struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_generated.deepcopy.go b/apis/databases/v1alpha1/zz_generated.deepcopy.go index b938f69..e560b60 100644 --- a/apis/databases/v1alpha1/zz_generated.deepcopy.go +++ b/apis/databases/v1alpha1/zz_generated.deepcopy.go @@ -915,6 +915,11 @@ func (in *ProjectDatabaseInitParameters) DeepCopyInto(out *ProjectDatabaseInitPa *out = new(bool) **out = **in } + if in.MaintenanceTime != nil { + in, out := &in.MaintenanceTime, &out.MaintenanceTime + *out = new(string) + **out = **in + } if in.Nodes != nil { in, out := &in.Nodes, &out.Nodes *out = make([]NodesInitParameters, len(*in)) @@ -3604,6 +3609,11 @@ func (in *ProjectDatabaseParameters) DeepCopyInto(out *ProjectDatabaseParameters *out = new(bool) **out = **in } + if in.MaintenanceTime != nil { + in, out := &in.MaintenanceTime, &out.MaintenanceTime + *out = new(string) + **out = **in + } if in.Nodes != nil { in, out := &in.Nodes, &out.Nodes *out = make([]NodesParameters, len(*in)) diff --git a/apis/databases/v1alpha1/zz_projectdatabase_types.go b/apis/databases/v1alpha1/zz_projectdatabase_types.go index e7f4f1d..fae6f36 100755 --- a/apis/databases/v1alpha1/zz_projectdatabase_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabase_types.go @@ -141,6 +141,9 @@ type ProjectDatabaseInitParameters struct { // Defines whether the schema registry is enabled on a Kafka cluster KafkaSchemaRegistry *bool `json:"kafkaSchemaRegistry,omitempty" tf:"kafka_schema_registry,omitempty"` + // Time on which maintenances can start every day + MaintenanceTime *string `json:"maintenanceTime,omitempty" tf:"maintenance_time,omitempty"` + // List of nodes composing the service Nodes []NodesInitParameters `json:"nodes,omitempty" tf:"nodes,omitempty"` @@ -267,6 +270,10 @@ type ProjectDatabaseParameters struct { // +kubebuilder:validation:Optional KafkaSchemaRegistry *bool `json:"kafkaSchemaRegistry,omitempty" tf:"kafka_schema_registry,omitempty"` + // Time on which maintenances can start every day + // +kubebuilder:validation:Optional + MaintenanceTime *string `json:"maintenanceTime,omitempty" tf:"maintenance_time,omitempty"` + // List of nodes composing the service // +kubebuilder:validation:Optional Nodes []NodesParameters `json:"nodes,omitempty" tf:"nodes,omitempty"` @@ -319,7 +326,7 @@ type ProjectDatabaseStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabase struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasedatabase_types.go b/apis/databases/v1alpha1/zz_projectdatabasedatabase_types.go index 0151b2b..f57a332 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasedatabase_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasedatabase_types.go @@ -114,7 +114,7 @@ type ProjectDatabaseDatabaseStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseDatabase struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseintegration_types.go b/apis/databases/v1alpha1/zz_projectdatabaseintegration_types.go index 5d409d2..aa90178 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseintegration_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseintegration_types.go @@ -147,7 +147,7 @@ type ProjectDatabaseIntegrationStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseIntegration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseiprestriction_types.go b/apis/databases/v1alpha1/zz_projectdatabaseiprestriction_types.go index 4682272..5e6a2e6 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseiprestriction_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseiprestriction_types.go @@ -124,7 +124,7 @@ type ProjectDatabaseIPRestrictionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseIPRestriction struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasekafkaacl_types.go b/apis/databases/v1alpha1/zz_projectdatabasekafkaacl_types.go index 4c71e88..37bd4b3 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasekafkaacl_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasekafkaacl_types.go @@ -121,7 +121,7 @@ type ProjectDatabaseKafkaACLStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseKafkaACL struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasekafkaschemaregistryacl_types.go b/apis/databases/v1alpha1/zz_projectdatabasekafkaschemaregistryacl_types.go index 125f5fe..e51206f 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasekafkaschemaregistryacl_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasekafkaschemaregistryacl_types.go @@ -121,7 +121,7 @@ type ProjectDatabaseKafkaSchemaregistryaclStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseKafkaSchemaregistryacl struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasekafkatopic_types.go b/apis/databases/v1alpha1/zz_projectdatabasekafkatopic_types.go index 34166e2..88a99c8 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasekafkatopic_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasekafkatopic_types.go @@ -151,7 +151,7 @@ type ProjectDatabaseKafkaTopicStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseKafkaTopic struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasem3dbnamespace_types.go b/apis/databases/v1alpha1/zz_projectdatabasem3dbnamespace_types.go index 83b9556..08036a3 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasem3dbnamespace_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasem3dbnamespace_types.go @@ -184,13 +184,12 @@ type ProjectDatabaseM3DbNamespaceStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseM3DbNamespace 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.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.resolution) || (has(self.initProvider) && has(self.initProvider.resolution))",message="spec.forProvider.resolution is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.retentionPeriodDuration) || (has(self.initProvider) && has(self.initProvider.retentionPeriodDuration))",message="spec.forProvider.retentionPeriodDuration 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 ProjectDatabaseM3DbNamespaceSpec `json:"spec"` Status ProjectDatabaseM3DbNamespaceStatus `json:"status,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasem3dbuser_types.go b/apis/databases/v1alpha1/zz_projectdatabasem3dbuser_types.go index a0a106c..3022e9d 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasem3dbuser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasem3dbuser_types.go @@ -127,7 +127,7 @@ type ProjectDatabaseM3DbUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseM3DbUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasemongodbuser_types.go b/apis/databases/v1alpha1/zz_projectdatabasemongodbuser_types.go index 151de80..3cdc9cd 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasemongodbuser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasemongodbuser_types.go @@ -130,7 +130,7 @@ type ProjectDatabaseMongodbUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseMongodbUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseopensearchpattern_types.go b/apis/databases/v1alpha1/zz_projectdatabaseopensearchpattern_types.go index 90aa830..db402ee 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseopensearchpattern_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseopensearchpattern_types.go @@ -111,7 +111,7 @@ type ProjectDatabaseOpensearchPatternStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseOpensearchPattern struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseopensearchuser_types.go b/apis/databases/v1alpha1/zz_projectdatabaseopensearchuser_types.go index f2fd612..1e873e9 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseopensearchuser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseopensearchuser_types.go @@ -156,7 +156,7 @@ type ProjectDatabaseOpensearchUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseOpensearchUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasepostgresqlconnectionpool_types.go b/apis/databases/v1alpha1/zz_projectdatabasepostgresqlconnectionpool_types.go index ab83a27..a08a45e 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasepostgresqlconnectionpool_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasepostgresqlconnectionpool_types.go @@ -150,7 +150,7 @@ type ProjectDatabasePostgresqlConnectionPoolStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabasePostgresqlConnectionPool struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabasepostgresqluser_types.go b/apis/databases/v1alpha1/zz_projectdatabasepostgresqluser_types.go index e559958..8eb2453 100755 --- a/apis/databases/v1alpha1/zz_projectdatabasepostgresqluser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabasepostgresqluser_types.go @@ -130,7 +130,7 @@ type ProjectDatabasePostgresqlUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabasePostgresqlUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseredisuser_types.go b/apis/databases/v1alpha1/zz_projectdatabaseredisuser_types.go index 107c34c..92f70b5 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseredisuser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseredisuser_types.go @@ -169,7 +169,7 @@ type ProjectDatabaseRedisUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseRedisUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/databases/v1alpha1/zz_projectdatabaseuser_types.go b/apis/databases/v1alpha1/zz_projectdatabaseuser_types.go index 6971b24..ee47aa2 100755 --- a/apis/databases/v1alpha1/zz_projectdatabaseuser_types.go +++ b/apis/databases/v1alpha1/zz_projectdatabaseuser_types.go @@ -127,7 +127,7 @@ type ProjectDatabaseUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectDatabaseUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go index ab60f08..dfb6c17 100755 --- a/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go @@ -170,7 +170,7 @@ type InstallationTemplateStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type InstallationTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go index dcd7c2e..74d2ce9 100755 --- a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go @@ -85,7 +85,7 @@ type InstallationTemplatePartitionSchemeStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type InstallationTemplatePartitionScheme struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go index 98a16fd..dbac0be 100755 --- a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go @@ -116,7 +116,7 @@ type InstallationTemplatePartitionSchemeHardwareRaidStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type InstallationTemplatePartitionSchemeHardwareRaid struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go index e4eeeaa..edbf5ce 100755 --- a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go @@ -146,7 +146,7 @@ type InstallationTemplatePartitionSchemePartitionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type InstallationTemplatePartitionSchemePartition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go b/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go index b5618d7..17c2b06 100755 --- a/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go @@ -197,7 +197,7 @@ type ServerInstallTaskStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ServerInstallTask struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go b/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go index 539224a..6ffd999 100755 --- a/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go @@ -114,7 +114,7 @@ type ServerNetworkingStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ServerNetworking struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go b/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go index bf92c2c..cff542b 100755 --- a/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go @@ -94,7 +94,7 @@ type ServerRebootTaskStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ServerRebootTask struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go b/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go index 3ba8dae..23304d9 100755 --- a/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go +++ b/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go @@ -116,7 +116,7 @@ type ServerUpdateStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ServerUpdate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dns/v1alpha1/zz_zone_types.go b/apis/dns/v1alpha1/zz_zone_types.go index 1343549..807fc92 100755 --- a/apis/dns/v1alpha1/zz_zone_types.go +++ b/apis/dns/v1alpha1/zz_zone_types.go @@ -336,14 +336,12 @@ type ZoneStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Zone 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec ZoneSpec `json:"spec"` - Status ZoneStatus `json:"status,omitempty"` + Spec ZoneSpec `json:"spec"` + Status ZoneStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/dns/v1alpha1/zz_zonednssec_types.go b/apis/dns/v1alpha1/zz_zonednssec_types.go index 4d0c8d4..790a30d 100755 --- a/apis/dns/v1alpha1/zz_zonednssec_types.go +++ b/apis/dns/v1alpha1/zz_zonednssec_types.go @@ -68,7 +68,7 @@ type ZoneDNSSECStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ZoneDNSSEC struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dns/v1alpha1/zz_zonerecord_types.go b/apis/dns/v1alpha1/zz_zonerecord_types.go index 2792bde..f5b25c4 100755 --- a/apis/dns/v1alpha1/zz_zonerecord_types.go +++ b/apis/dns/v1alpha1/zz_zonerecord_types.go @@ -89,7 +89,7 @@ type ZoneRecordStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ZoneRecord struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/dns/v1alpha1/zz_zoneredirection_types.go b/apis/dns/v1alpha1/zz_zoneredirection_types.go index 6f32add..2617c37 100755 --- a/apis/dns/v1alpha1/zz_zoneredirection_types.go +++ b/apis/dns/v1alpha1/zz_zoneredirection_types.go @@ -103,7 +103,7 @@ type ZoneRedirectionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ZoneRedirection struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/gateway/v1alpha1/zz_projectgateway_types.go b/apis/gateway/v1alpha1/zz_projectgateway_types.go index 66d9f15..0952eb1 100755 --- a/apis/gateway/v1alpha1/zz_projectgateway_types.go +++ b/apis/gateway/v1alpha1/zz_projectgateway_types.go @@ -184,7 +184,7 @@ type ProjectGatewayStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectGateway struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/iam/v1alpha1/zz_iampermissionsgroup_types.go b/apis/iam/v1alpha1/zz_iampermissionsgroup_types.go index f4ea295..3c63808 100755 --- a/apis/iam/v1alpha1/zz_iampermissionsgroup_types.go +++ b/apis/iam/v1alpha1/zz_iampermissionsgroup_types.go @@ -113,7 +113,7 @@ type IAMPermissionsGroupStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type IAMPermissionsGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/iam/v1alpha1/zz_iampolicy_types.go b/apis/iam/v1alpha1/zz_iampolicy_types.go index 8aefb74..2dd4e87 100755 --- a/apis/iam/v1alpha1/zz_iampolicy_types.go +++ b/apis/iam/v1alpha1/zz_iampolicy_types.go @@ -138,7 +138,7 @@ type IAMPolicyStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type IAMPolicy struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/iam/v1alpha1/zz_iamresourcegroup_types.go b/apis/iam/v1alpha1/zz_iamresourcegroup_types.go index a5deb80..9a777fc 100755 --- a/apis/iam/v1alpha1/zz_iamresourcegroup_types.go +++ b/apis/iam/v1alpha1/zz_iamresourcegroup_types.go @@ -81,7 +81,7 @@ type IAMResourceGroupStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type IAMResourceGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/kube/v1alpha1/zz_cluster_types.go b/apis/kube/v1alpha1/zz_cluster_types.go index 95bb334..f727ccf 100755 --- a/apis/kube/v1alpha1/zz_cluster_types.go +++ b/apis/kube/v1alpha1/zz_cluster_types.go @@ -396,7 +396,7 @@ type ClusterStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Cluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/kube/v1alpha1/zz_iprestriction_types.go b/apis/kube/v1alpha1/zz_iprestriction_types.go index d7d10e5..7b91cde 100755 --- a/apis/kube/v1alpha1/zz_iprestriction_types.go +++ b/apis/kube/v1alpha1/zz_iprestriction_types.go @@ -106,7 +106,7 @@ type IpRestrictionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type IpRestriction struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/kube/v1alpha1/zz_nodepool_types.go b/apis/kube/v1alpha1/zz_nodepool_types.go index ba9fbc5..f8be7bd 100755 --- a/apis/kube/v1alpha1/zz_nodepool_types.go +++ b/apis/kube/v1alpha1/zz_nodepool_types.go @@ -344,7 +344,7 @@ type NodePoolStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type NodePool struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/kube/v1alpha1/zz_oidcconfiguration_types.go b/apis/kube/v1alpha1/zz_oidcconfiguration_types.go index d470a5e..6769943 100755 --- a/apis/kube/v1alpha1/zz_oidcconfiguration_types.go +++ b/apis/kube/v1alpha1/zz_oidcconfiguration_types.go @@ -149,7 +149,7 @@ type OIDCConfigurationStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type OIDCConfiguration struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_generated.conversion_hubs.go b/apis/lb/v1alpha1/zz_generated.conversion_hubs.go index e840399..bb45ca0 100755 --- a/apis/lb/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/lb/v1alpha1/zz_generated.conversion_hubs.go @@ -6,6 +6,9 @@ Copyright 2022 Upbound Inc. package v1alpha1 +// Hub marks this type as a conversion hub. +func (tr *ProjectRegionLoadbalancerLogSubscription) Hub() {} + // Hub marks this type as a conversion hub. func (tr *Iploadbalancing) Hub() {} @@ -27,6 +30,9 @@ func (tr *HTTPRouteRule) Hub() {} // Hub marks this type as a conversion hub. func (tr *Refresh) Hub() {} +// Hub marks this type as a conversion hub. +func (tr *SSL) Hub() {} + // Hub marks this type as a conversion hub. func (tr *TCPFarm) Hub() {} @@ -42,6 +48,12 @@ func (tr *TCPRoute) Hub() {} // Hub marks this type as a conversion hub. func (tr *TCPRouteRule) Hub() {} +// Hub marks this type as a conversion hub. +func (tr *UDPFarm) Hub() {} + +// Hub marks this type as a conversion hub. +func (tr *UDPFarmServer) Hub() {} + // Hub marks this type as a conversion hub. func (tr *UDPFrontend) Hub() {} diff --git a/apis/lb/v1alpha1/zz_generated.deepcopy.go b/apis/lb/v1alpha1/zz_generated.deepcopy.go index c1d33ea..a33be91 100644 --- a/apis/lb/v1alpha1/zz_generated.deepcopy.go +++ b/apis/lb/v1alpha1/zz_generated.deepcopy.go @@ -2705,6 +2705,260 @@ func (in *ProbeParameters) DeepCopy() *ProbeParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionLoadbalancerLogSubscription) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscription) { + *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 ProjectRegionLoadbalancerLogSubscription. +func (in *ProjectRegionLoadbalancerLogSubscription) DeepCopy() *ProjectRegionLoadbalancerLogSubscription { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscription) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectRegionLoadbalancerLogSubscription) 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 *ProjectRegionLoadbalancerLogSubscriptionInitParameters) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionInitParameters) { + *out = *in + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.StreamID != nil { + in, out := &in.StreamID, &out.StreamID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionInitParameters. +func (in *ProjectRegionLoadbalancerLogSubscriptionInitParameters) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionInitParameters { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionLoadbalancerLogSubscriptionList) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectRegionLoadbalancerLogSubscription, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionList. +func (in *ProjectRegionLoadbalancerLogSubscriptionList) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionList { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectRegionLoadbalancerLogSubscriptionList) 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 *ProjectRegionLoadbalancerLogSubscriptionObservation) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionObservation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } + if in.LdpServiceName != nil { + in, out := &in.LdpServiceName, &out.LdpServiceName + *out = new(string) + **out = **in + } + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID + *out = new(string) + **out = **in + } + if in.OperationID != nil { + in, out := &in.OperationID, &out.OperationID + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ResourceName != nil { + in, out := &in.ResourceName, &out.ResourceName + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.StreamID != nil { + in, out := &in.StreamID, &out.StreamID + *out = new(string) + **out = **in + } + if in.SubscriptionID != nil { + in, out := &in.SubscriptionID, &out.SubscriptionID + *out = new(string) + **out = **in + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionObservation. +func (in *ProjectRegionLoadbalancerLogSubscriptionObservation) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionObservation { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionLoadbalancerLogSubscriptionParameters) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionParameters) { + *out = *in + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } + if in.LoadbalancerID != nil { + in, out := &in.LoadbalancerID, &out.LoadbalancerID + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.StreamID != nil { + in, out := &in.StreamID, &out.StreamID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionParameters. +func (in *ProjectRegionLoadbalancerLogSubscriptionParameters) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionParameters { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionLoadbalancerLogSubscriptionSpec) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionSpec) { + *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 ProjectRegionLoadbalancerLogSubscriptionSpec. +func (in *ProjectRegionLoadbalancerLogSubscriptionSpec) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionSpec { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionLoadbalancerLogSubscriptionStatus) DeepCopyInto(out *ProjectRegionLoadbalancerLogSubscriptionStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionLoadbalancerLogSubscriptionStatus. +func (in *ProjectRegionLoadbalancerLogSubscriptionStatus) DeepCopy() *ProjectRegionLoadbalancerLogSubscriptionStatus { + if in == nil { + return nil + } + out := new(ProjectRegionLoadbalancerLogSubscriptionStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Refresh) DeepCopyInto(out *Refresh) { *out = *in @@ -2973,7 +3227,7 @@ func (in *RulesParameters) DeepCopy() *RulesParameters { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TCPFarm) DeepCopyInto(out *TCPFarm) { +func (in *SSL) DeepCopyInto(out *SSL) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) @@ -2981,18 +3235,18 @@ func (in *TCPFarm) DeepCopyInto(out *TCPFarm) { in.Status.DeepCopyInto(&out.Status) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPFarm. -func (in *TCPFarm) DeepCopy() *TCPFarm { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSL. +func (in *SSL) DeepCopy() *SSL { if in == nil { return nil } - out := new(TCPFarm) + out := new(SSL) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *TCPFarm) DeepCopyObject() runtime.Object { +func (in *SSL) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -3000,88 +3254,66 @@ func (in *TCPFarm) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TCPFarmInitParameters) DeepCopyInto(out *TCPFarmInitParameters) { +func (in *SSLInitParameters) DeepCopyInto(out *SSLInitParameters) { *out = *in - if in.Balance != nil { - in, out := &in.Balance, &out.Balance + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate *out = new(string) **out = **in } - if in.DisplayName != nil { - in, out := &in.DisplayName, &out.DisplayName + if in.Chain != nil { + in, out := &in.Chain, &out.Chain *out = new(string) **out = **in } - if in.Port != nil { - in, out := &in.Port, &out.Port - *out = new(float64) + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) **out = **in } - if in.Probe != nil { - in, out := &in.Probe, &out.Probe - *out = make([]TCPFarmProbeInitParameters, 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.Stickiness != nil { - in, out := &in.Stickiness, &out.Stickiness - *out = new(string) - **out = **in - } - if in.VrackNetworkID != nil { - in, out := &in.VrackNetworkID, &out.VrackNetworkID - *out = new(float64) - **out = **in - } - if in.Zone != nil { - in, out := &in.Zone, &out.Zone - *out = new(string) - **out = **in - } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPFarmInitParameters. -func (in *TCPFarmInitParameters) DeepCopy() *TCPFarmInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLInitParameters. +func (in *SSLInitParameters) DeepCopy() *SSLInitParameters { if in == nil { return nil } - out := new(TCPFarmInitParameters) + out := new(SSLInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TCPFarmList) DeepCopyInto(out *TCPFarmList) { +func (in *SSLList) DeepCopyInto(out *SSLList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]TCPFarm, len(*in)) + *out = make([]SSL, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPFarmList. -func (in *TCPFarmList) DeepCopy() *TCPFarmList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLList. +func (in *SSLList) DeepCopy() *SSLList { if in == nil { return nil } - out := new(TCPFarmList) + out := new(SSLList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *TCPFarmList) DeepCopyObject() runtime.Object { +func (in *SSLList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -3089,10 +3321,15 @@ func (in *TCPFarmList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *TCPFarmObservation) DeepCopyInto(out *TCPFarmObservation) { +func (in *SSLObservation) DeepCopyInto(out *SSLObservation) { *out = *in - if in.Balance != nil { - in, out := &in.Balance, &out.Balance + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(string) + **out = **in + } + if in.Chain != nil { + in, out := &in.Chain, &out.Chain *out = new(string) **out = **in } @@ -3101,24 +3338,282 @@ func (in *TCPFarmObservation) DeepCopyInto(out *TCPFarmObservation) { *out = new(string) **out = **in } - if in.ID != nil { - in, out := &in.ID, &out.ID + if in.ExpireDate != nil { + in, out := &in.ExpireDate, &out.ExpireDate *out = new(string) **out = **in } - if in.Port != nil { - in, out := &in.Port, &out.Port - *out = new(float64) + if in.Fingerprint != nil { + in, out := &in.Fingerprint, &out.Fingerprint + *out = new(string) **out = **in } - if in.Probe != nil { - in, out := &in.Probe, &out.Probe - *out = make([]TCPFarmProbeObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ServiceName != nil { + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.San != nil { + in, out := &in.San, &out.San + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Serial != nil { + in, out := &in.Serial, &out.Serial + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Subject != nil { + in, out := &in.Subject, &out.Subject + *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 SSLObservation. +func (in *SSLObservation) DeepCopy() *SSLObservation { + if in == nil { + return nil + } + out := new(SSLObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSLParameters) DeepCopyInto(out *SSLParameters) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(string) + **out = **in + } + if in.Chain != nil { + in, out := &in.Chain, &out.Chain + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + out.KeySecretRef = in.KeySecretRef + 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 SSLParameters. +func (in *SSLParameters) DeepCopy() *SSLParameters { + if in == nil { + return nil + } + out := new(SSLParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSLSpec) DeepCopyInto(out *SSLSpec) { + *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 SSLSpec. +func (in *SSLSpec) DeepCopy() *SSLSpec { + if in == nil { + return nil + } + out := new(SSLSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSLStatus) DeepCopyInto(out *SSLStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSLStatus. +func (in *SSLStatus) DeepCopy() *SSLStatus { + if in == nil { + return nil + } + out := new(SSLStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TCPFarm) DeepCopyInto(out *TCPFarm) { + *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 TCPFarm. +func (in *TCPFarm) DeepCopy() *TCPFarm { + if in == nil { + return nil + } + out := new(TCPFarm) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TCPFarm) 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 *TCPFarmInitParameters) DeepCopyInto(out *TCPFarmInitParameters) { + *out = *in + if in.Balance != nil { + in, out := &in.Balance, &out.Balance + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Probe != nil { + in, out := &in.Probe, &out.Probe + *out = make([]TCPFarmProbeInitParameters, 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.Stickiness != nil { + in, out := &in.Stickiness, &out.Stickiness + *out = new(string) + **out = **in + } + if in.VrackNetworkID != nil { + in, out := &in.VrackNetworkID, &out.VrackNetworkID + *out = new(float64) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPFarmInitParameters. +func (in *TCPFarmInitParameters) DeepCopy() *TCPFarmInitParameters { + if in == nil { + return nil + } + out := new(TCPFarmInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TCPFarmList) DeepCopyInto(out *TCPFarmList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TCPFarm, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPFarmList. +func (in *TCPFarmList) DeepCopy() *TCPFarmList { + if in == nil { + return nil + } + out := new(TCPFarmList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TCPFarmList) 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 *TCPFarmObservation) DeepCopyInto(out *TCPFarmObservation) { + *out = *in + if in.Balance != nil { + in, out := &in.Balance, &out.Balance + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Probe != nil { + in, out := &in.Probe, &out.Probe + *out = make([]TCPFarmProbeObservation, 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 @@ -4775,6 +5270,474 @@ func (in *TCPRouteStatus) DeepCopy() *TCPRouteStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarm) DeepCopyInto(out *UDPFarm) { + *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 UDPFarm. +func (in *UDPFarm) DeepCopy() *UDPFarm { + if in == nil { + return nil + } + out := new(UDPFarm) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UDPFarm) 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 *UDPFarmInitParameters) DeepCopyInto(out *UDPFarmInitParameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.VrackNetworkID != nil { + in, out := &in.VrackNetworkID, &out.VrackNetworkID + *out = new(float64) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmInitParameters. +func (in *UDPFarmInitParameters) DeepCopy() *UDPFarmInitParameters { + if in == nil { + return nil + } + out := new(UDPFarmInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmList) DeepCopyInto(out *UDPFarmList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UDPFarm, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmList. +func (in *UDPFarmList) DeepCopy() *UDPFarmList { + if in == nil { + return nil + } + out := new(UDPFarmList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UDPFarmList) 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 *UDPFarmObservation) DeepCopyInto(out *UDPFarmObservation) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.FarmID != nil { + in, out := &in.FarmID, &out.FarmID + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.VrackNetworkID != nil { + in, out := &in.VrackNetworkID, &out.VrackNetworkID + *out = new(float64) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmObservation. +func (in *UDPFarmObservation) DeepCopy() *UDPFarmObservation { + if in == nil { + return nil + } + out := new(UDPFarmObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmParameters) DeepCopyInto(out *UDPFarmParameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.VrackNetworkID != nil { + in, out := &in.VrackNetworkID, &out.VrackNetworkID + *out = new(float64) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmParameters. +func (in *UDPFarmParameters) DeepCopy() *UDPFarmParameters { + if in == nil { + return nil + } + out := new(UDPFarmParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmServer) DeepCopyInto(out *UDPFarmServer) { + *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 UDPFarmServer. +func (in *UDPFarmServer) DeepCopy() *UDPFarmServer { + if in == nil { + return nil + } + out := new(UDPFarmServer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UDPFarmServer) 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 *UDPFarmServerInitParameters) DeepCopyInto(out *UDPFarmServerInitParameters) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.FarmID != nil { + in, out := &in.FarmID, &out.FarmID + *out = new(float64) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmServerInitParameters. +func (in *UDPFarmServerInitParameters) DeepCopy() *UDPFarmServerInitParameters { + if in == nil { + return nil + } + out := new(UDPFarmServerInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmServerList) DeepCopyInto(out *UDPFarmServerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UDPFarmServer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmServerList. +func (in *UDPFarmServerList) DeepCopy() *UDPFarmServerList { + if in == nil { + return nil + } + out := new(UDPFarmServerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UDPFarmServerList) 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 *UDPFarmServerObservation) DeepCopyInto(out *UDPFarmServerObservation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.BackendID != nil { + in, out := &in.BackendID, &out.BackendID + *out = new(float64) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.FarmID != nil { + in, out := &in.FarmID, &out.FarmID + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *out = new(float64) + **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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmServerObservation. +func (in *UDPFarmServerObservation) DeepCopy() *UDPFarmServerObservation { + if in == nil { + return nil + } + out := new(UDPFarmServerObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmServerParameters) DeepCopyInto(out *UDPFarmServerParameters) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.FarmID != nil { + in, out := &in.FarmID, &out.FarmID + *out = new(float64) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmServerParameters. +func (in *UDPFarmServerParameters) DeepCopy() *UDPFarmServerParameters { + if in == nil { + return nil + } + out := new(UDPFarmServerParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmServerSpec) DeepCopyInto(out *UDPFarmServerSpec) { + *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 UDPFarmServerSpec. +func (in *UDPFarmServerSpec) DeepCopy() *UDPFarmServerSpec { + if in == nil { + return nil + } + out := new(UDPFarmServerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmServerStatus) DeepCopyInto(out *UDPFarmServerStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmServerStatus. +func (in *UDPFarmServerStatus) DeepCopy() *UDPFarmServerStatus { + if in == nil { + return nil + } + out := new(UDPFarmServerStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmSpec) DeepCopyInto(out *UDPFarmSpec) { + *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 UDPFarmSpec. +func (in *UDPFarmSpec) DeepCopy() *UDPFarmSpec { + if in == nil { + return nil + } + out := new(UDPFarmSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UDPFarmStatus) DeepCopyInto(out *UDPFarmStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UDPFarmStatus. +func (in *UDPFarmStatus) DeepCopy() *UDPFarmStatus { + if in == nil { + return nil + } + out := new(UDPFarmStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UDPFrontend) DeepCopyInto(out *UDPFrontend) { *out = *in diff --git a/apis/lb/v1alpha1/zz_generated.managed.go b/apis/lb/v1alpha1/zz_generated.managed.go index f678d1d..104e952 100644 --- a/apis/lb/v1alpha1/zz_generated.managed.go +++ b/apis/lb/v1alpha1/zz_generated.managed.go @@ -367,6 +367,66 @@ func (mg *Iploadbalancing) SetWriteConnectionSecretToReference(r *xpv1.SecretRef mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectRegionLoadbalancerLogSubscription. +func (mg *ProjectRegionLoadbalancerLogSubscription) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this Refresh. func (mg *Refresh) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -427,6 +487,66 @@ func (mg *Refresh) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this SSL. +func (mg *SSL) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SSL. +func (mg *SSL) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SSL. +func (mg *SSL) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SSL. +func (mg *SSL) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SSL. +func (mg *SSL) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SSL. +func (mg *SSL) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SSL. +func (mg *SSL) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SSL. +func (mg *SSL) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SSL. +func (mg *SSL) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SSL. +func (mg *SSL) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SSL. +func (mg *SSL) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SSL. +func (mg *SSL) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this TCPFarm. func (mg *TCPFarm) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) @@ -727,6 +847,126 @@ func (mg *TCPRouteRule) SetWriteConnectionSecretToReference(r *xpv1.SecretRefere mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this UDPFarm. +func (mg *UDPFarm) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UDPFarm. +func (mg *UDPFarm) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UDPFarm. +func (mg *UDPFarm) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UDPFarm. +func (mg *UDPFarm) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UDPFarm. +func (mg *UDPFarm) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UDPFarm. +func (mg *UDPFarm) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UDPFarm. +func (mg *UDPFarm) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UDPFarm. +func (mg *UDPFarm) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UDPFarm. +func (mg *UDPFarm) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UDPFarm. +func (mg *UDPFarm) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UDPFarm. +func (mg *UDPFarm) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UDPFarm. +func (mg *UDPFarm) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this UDPFarmServer. +func (mg *UDPFarmServer) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UDPFarmServer. +func (mg *UDPFarmServer) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UDPFarmServer. +func (mg *UDPFarmServer) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UDPFarmServer. +func (mg *UDPFarmServer) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UDPFarmServer. +func (mg *UDPFarmServer) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UDPFarmServer. +func (mg *UDPFarmServer) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UDPFarmServer. +func (mg *UDPFarmServer) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UDPFarmServer. +func (mg *UDPFarmServer) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UDPFarmServer. +func (mg *UDPFarmServer) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UDPFarmServer. +func (mg *UDPFarmServer) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UDPFarmServer. +func (mg *UDPFarmServer) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UDPFarmServer. +func (mg *UDPFarmServer) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this UDPFrontend. func (mg *UDPFrontend) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/lb/v1alpha1/zz_generated.managedlist.go b/apis/lb/v1alpha1/zz_generated.managedlist.go index a278091..4944392 100644 --- a/apis/lb/v1alpha1/zz_generated.managedlist.go +++ b/apis/lb/v1alpha1/zz_generated.managedlist.go @@ -61,6 +61,15 @@ func (l *IploadbalancingList) GetItems() []resource.Managed { return items } +// GetItems of this ProjectRegionLoadbalancerLogSubscriptionList. +func (l *ProjectRegionLoadbalancerLogSubscriptionList) 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 RefreshList. func (l *RefreshList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -70,6 +79,15 @@ func (l *RefreshList) GetItems() []resource.Managed { return items } +// GetItems of this SSLList. +func (l *SSLList) 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 TCPFarmList. func (l *TCPFarmList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) @@ -115,6 +133,24 @@ func (l *TCPRouteRuleList) GetItems() []resource.Managed { return items } +// GetItems of this UDPFarmList. +func (l *UDPFarmList) 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 UDPFarmServerList. +func (l *UDPFarmServerList) 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 UDPFrontendList. func (l *UDPFrontendList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/lb/v1alpha1/zz_httpfarm_types.go b/apis/lb/v1alpha1/zz_httpfarm_types.go index eb4a2cd..17f79dc 100755 --- a/apis/lb/v1alpha1/zz_httpfarm_types.go +++ b/apis/lb/v1alpha1/zz_httpfarm_types.go @@ -180,7 +180,7 @@ type HTTPFarmStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type HTTPFarm struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_httpfarmserver_types.go b/apis/lb/v1alpha1/zz_httpfarmserver_types.go index 26c7c2d..424fb72 100755 --- a/apis/lb/v1alpha1/zz_httpfarmserver_types.go +++ b/apis/lb/v1alpha1/zz_httpfarmserver_types.go @@ -147,7 +147,7 @@ type HTTPFarmServerStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type HTTPFarmServer struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_httpfrontend_types.go b/apis/lb/v1alpha1/zz_httpfrontend_types.go index eb9e440..659d041 100755 --- a/apis/lb/v1alpha1/zz_httpfrontend_types.go +++ b/apis/lb/v1alpha1/zz_httpfrontend_types.go @@ -153,7 +153,7 @@ type HTTPFrontendStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type HTTPFrontend struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_httproute_types.go b/apis/lb/v1alpha1/zz_httproute_types.go index e993e6d..a517257 100755 --- a/apis/lb/v1alpha1/zz_httproute_types.go +++ b/apis/lb/v1alpha1/zz_httproute_types.go @@ -171,7 +171,7 @@ type HTTPRouteStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type HTTPRoute struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_httprouterule_types.go b/apis/lb/v1alpha1/zz_httprouterule_types.go index ebdd6e0..7244664 100755 --- a/apis/lb/v1alpha1/zz_httprouterule_types.go +++ b/apis/lb/v1alpha1/zz_httprouterule_types.go @@ -110,7 +110,7 @@ type HTTPRouteRuleStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type HTTPRouteRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_iploadbalancing_types.go b/apis/lb/v1alpha1/zz_iploadbalancing_types.go index de78bd4..978377f 100755 --- a/apis/lb/v1alpha1/zz_iploadbalancing_types.go +++ b/apis/lb/v1alpha1/zz_iploadbalancing_types.go @@ -383,14 +383,12 @@ type IploadbalancingStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Iploadbalancing 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec IploadbalancingSpec `json:"spec"` - Status IploadbalancingStatus `json:"status,omitempty"` + Spec IploadbalancingSpec `json:"spec"` + Status IploadbalancingStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/cloud/v1alpha1/zz_projectregionloadbalancerlogsubscription_terraformed.go b/apis/lb/v1alpha1/zz_projectregionloadbalancerlogsubscription_terraformed.go similarity index 100% rename from apis/cloud/v1alpha1/zz_projectregionloadbalancerlogsubscription_terraformed.go rename to apis/lb/v1alpha1/zz_projectregionloadbalancerlogsubscription_terraformed.go diff --git a/apis/cloud/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go b/apis/lb/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go similarity index 99% rename from apis/cloud/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go rename to apis/lb/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go index 38e8378..84b91b0 100755 --- a/apis/cloud/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go +++ b/apis/lb/v1alpha1/zz_projectregionloadbalancerlogsubscription_types.go @@ -127,7 +127,7 @@ type ProjectRegionLoadbalancerLogSubscriptionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectRegionLoadbalancerLogSubscription struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_refresh_types.go b/apis/lb/v1alpha1/zz_refresh_types.go index 88ee3b6..4d08686 100755 --- a/apis/lb/v1alpha1/zz_refresh_types.go +++ b/apis/lb/v1alpha1/zz_refresh_types.go @@ -68,7 +68,7 @@ type RefreshStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Refresh struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_ssl_terraformed.go b/apis/lb/v1alpha1/zz_ssl_terraformed.go new file mode 100755 index 0000000..93b134f --- /dev/null +++ b/apis/lb/v1alpha1/zz_ssl_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 SSL +func (mg *SSL) GetTerraformResourceType() string { + return "ovh_iploadbalancing_ssl" +} + +// GetConnectionDetailsMapping for this SSL +func (tr *SSL) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"key": "spec.forProvider.keySecretRef"} +} + +// GetObservation of this SSL +func (tr *SSL) 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 SSL +func (tr *SSL) 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 SSL +func (tr *SSL) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SSL +func (tr *SSL) 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 SSL +func (tr *SSL) 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 SSL +func (tr *SSL) 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 SSL +func (tr *SSL) 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 SSL using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SSL) LateInitialize(attrs []byte) (bool, error) { + params := &SSLParameters{} + 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 *SSL) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/lb/v1alpha1/zz_ssl_types.go b/apis/lb/v1alpha1/zz_ssl_types.go new file mode 100755 index 0000000..ef15e95 --- /dev/null +++ b/apis/lb/v1alpha1/zz_ssl_types.go @@ -0,0 +1,152 @@ +/* +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 SSLInitParameters struct { + + // Certificate + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + // Certificate chain + Chain *string `json:"chain,omitempty" tf:"chain,omitempty"` + + // Human readable name for your ssl certificate, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type SSLObservation struct { + + // Certificate + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + // Certificate chain + Chain *string `json:"chain,omitempty" tf:"chain,omitempty"` + + // Human readable name for your ssl certificate, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Expire date of your SSL certificate + ExpireDate *string `json:"expireDate,omitempty" tf:"expire_date,omitempty"` + + // Fingerprint of your SSL certificate + Fingerprint *string `json:"fingerprint,omitempty" tf:"fingerprint,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Subject Alternative Name of your SSL certificate + San []*string `json:"san,omitempty" tf:"san,omitempty"` + + // Serial of your SSL certificate (Deprecated, use fingerprint instead!) + Serial *string `json:"serial,omitempty" tf:"serial,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Subject of your SSL certificate + Subject *string `json:"subject,omitempty" tf:"subject,omitempty"` + + // Type of your SSL certificate. + // 'built' for SSL certificates managed by the IP Load Balancing. 'custom' for user manager certificates. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type SSLParameters struct { + + // Certificate + // +kubebuilder:validation:Optional + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + // Certificate chain + // +kubebuilder:validation:Optional + Chain *string `json:"chain,omitempty" tf:"chain,omitempty"` + + // Human readable name for your ssl certificate, this field is for you + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Certificate key + // +kubebuilder:validation:Optional + KeySecretRef v1.SecretKeySelector `json:"keySecretRef" tf:"-"` + + // The internal name of your IP load balancing + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// SSLSpec defines the desired state of SSL +type SSLSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SSLParameters `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 SSLInitParameters `json:"initProvider,omitempty"` +} + +// SSLStatus defines the observed state of SSL. +type SSLStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider SSLObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// SSL is the Schema for the SSLs 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 SSL 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.certificate) || (has(self.initProvider) && has(self.initProvider.certificate))",message="spec.forProvider.certificate is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.keySecretRef)",message="spec.forProvider.keySecretRef 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 SSLSpec `json:"spec"` + Status SSLStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SSLList contains a list of SSLs +type SSLList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SSL `json:"items"` +} + +// Repository type metadata. +var ( + SSL_Kind = "SSL" + SSL_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SSL_Kind}.String() + SSL_KindAPIVersion = SSL_Kind + "." + CRDGroupVersion.String() + SSL_GroupVersionKind = CRDGroupVersion.WithKind(SSL_Kind) +) + +func init() { + SchemeBuilder.Register(&SSL{}, &SSLList{}) +} diff --git a/apis/lb/v1alpha1/zz_tcpfarm_types.go b/apis/lb/v1alpha1/zz_tcpfarm_types.go index 743753b..a1fb3d9 100755 --- a/apis/lb/v1alpha1/zz_tcpfarm_types.go +++ b/apis/lb/v1alpha1/zz_tcpfarm_types.go @@ -180,7 +180,7 @@ type TCPFarmStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type TCPFarm struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_tcpfarmserver_types.go b/apis/lb/v1alpha1/zz_tcpfarmserver_types.go index 1ea1882..351399f 100755 --- a/apis/lb/v1alpha1/zz_tcpfarmserver_types.go +++ b/apis/lb/v1alpha1/zz_tcpfarmserver_types.go @@ -145,7 +145,7 @@ type TCPFarmServerStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type TCPFarmServer struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_tcpfrontend_types.go b/apis/lb/v1alpha1/zz_tcpfrontend_types.go index fe1636b..d82d980 100755 --- a/apis/lb/v1alpha1/zz_tcpfrontend_types.go +++ b/apis/lb/v1alpha1/zz_tcpfrontend_types.go @@ -142,7 +142,7 @@ type TCPFrontendStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type TCPFrontend struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_tcproute_types.go b/apis/lb/v1alpha1/zz_tcproute_types.go index f8d3640..32cb121 100755 --- a/apis/lb/v1alpha1/zz_tcproute_types.go +++ b/apis/lb/v1alpha1/zz_tcproute_types.go @@ -161,7 +161,7 @@ type TCPRouteStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type TCPRoute struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_tcprouterule_types.go b/apis/lb/v1alpha1/zz_tcprouterule_types.go index ff81751..5a11b81 100755 --- a/apis/lb/v1alpha1/zz_tcprouterule_types.go +++ b/apis/lb/v1alpha1/zz_tcprouterule_types.go @@ -110,7 +110,7 @@ type TCPRouteRuleStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type TCPRouteRule struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_udpfarm_terraformed.go b/apis/lb/v1alpha1/zz_udpfarm_terraformed.go new file mode 100755 index 0000000..9016362 --- /dev/null +++ b/apis/lb/v1alpha1/zz_udpfarm_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 UDPFarm +func (mg *UDPFarm) GetTerraformResourceType() string { + return "ovh_iploadbalancing_udp_farm" +} + +// GetConnectionDetailsMapping for this UDPFarm +func (tr *UDPFarm) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this UDPFarm +func (tr *UDPFarm) 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 UDPFarm +func (tr *UDPFarm) 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 UDPFarm +func (tr *UDPFarm) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UDPFarm +func (tr *UDPFarm) 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 UDPFarm +func (tr *UDPFarm) 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 UDPFarm +func (tr *UDPFarm) 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 UDPFarm +func (tr *UDPFarm) 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 UDPFarm using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UDPFarm) LateInitialize(attrs []byte) (bool, error) { + params := &UDPFarmParameters{} + 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 *UDPFarm) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/lb/v1alpha1/zz_udpfarm_types.go b/apis/lb/v1alpha1/zz_udpfarm_types.go new file mode 100755 index 0000000..571ecd6 --- /dev/null +++ b/apis/lb/v1alpha1/zz_udpfarm_types.go @@ -0,0 +1,142 @@ +/* +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 UDPFarmInitParameters struct { + + // Human readable name for your backend, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Port attached to your farm ([1..49151]). Inherited from frontend if null + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack + VrackNetworkID *float64 `json:"vrackNetworkId,omitempty" tf:"vrack_network_id,omitempty"` + + // Zone of your farm + Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` +} + +type UDPFarmObservation struct { + + // Human readable name for your backend, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Id of your farm + FarmID *float64 `json:"farmId,omitempty" tf:"farm_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Port attached to your farm ([1..49151]). Inherited from frontend if null + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack + VrackNetworkID *float64 `json:"vrackNetworkId,omitempty" tf:"vrack_network_id,omitempty"` + + // Zone of your farm + Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` +} + +type UDPFarmParameters struct { + + // Human readable name for your backend, this field is for you + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Port attached to your farm ([1..49151]). Inherited from frontend if null + // +kubebuilder:validation:Optional + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The internal name of your IP load balancing + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack + // +kubebuilder:validation:Optional + VrackNetworkID *float64 `json:"vrackNetworkId,omitempty" tf:"vrack_network_id,omitempty"` + + // Zone of your farm + // +kubebuilder:validation:Optional + Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` +} + +// UDPFarmSpec defines the desired state of UDPFarm +type UDPFarmSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UDPFarmParameters `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 UDPFarmInitParameters `json:"initProvider,omitempty"` +} + +// UDPFarmStatus defines the observed state of UDPFarm. +type UDPFarmStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider UDPFarmObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// UDPFarm is the Schema for the UDPFarms 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 UDPFarm 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.port) || (has(self.initProvider) && has(self.initProvider.port))",message="spec.forProvider.port 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.zone) || (has(self.initProvider) && has(self.initProvider.zone))",message="spec.forProvider.zone is a required parameter" + Spec UDPFarmSpec `json:"spec"` + Status UDPFarmStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UDPFarmList contains a list of UDPFarms +type UDPFarmList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UDPFarm `json:"items"` +} + +// Repository type metadata. +var ( + UDPFarm_Kind = "UDPFarm" + UDPFarm_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UDPFarm_Kind}.String() + UDPFarm_KindAPIVersion = UDPFarm_Kind + "." + CRDGroupVersion.String() + UDPFarm_GroupVersionKind = CRDGroupVersion.WithKind(UDPFarm_Kind) +) + +func init() { + SchemeBuilder.Register(&UDPFarm{}, &UDPFarmList{}) +} diff --git a/apis/lb/v1alpha1/zz_udpfarmserver_terraformed.go b/apis/lb/v1alpha1/zz_udpfarmserver_terraformed.go new file mode 100755 index 0000000..45d2ec5 --- /dev/null +++ b/apis/lb/v1alpha1/zz_udpfarmserver_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 UDPFarmServer +func (mg *UDPFarmServer) GetTerraformResourceType() string { + return "ovh_iploadbalancing_udp_farm_server" +} + +// GetConnectionDetailsMapping for this UDPFarmServer +func (tr *UDPFarmServer) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer +func (tr *UDPFarmServer) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer +func (tr *UDPFarmServer) 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 UDPFarmServer using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UDPFarmServer) LateInitialize(attrs []byte) (bool, error) { + params := &UDPFarmServerParameters{} + 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 *UDPFarmServer) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/lb/v1alpha1/zz_udpfarmserver_types.go b/apis/lb/v1alpha1/zz_udpfarmserver_types.go new file mode 100755 index 0000000..161afd7 --- /dev/null +++ b/apis/lb/v1alpha1/zz_udpfarmserver_types.go @@ -0,0 +1,156 @@ +/* +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 UDPFarmServerInitParameters struct { + + // IPv4 address (e.g., 192.0.2.0) + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Human readable name for your server, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Id of your farm + FarmID *float64 `json:"farmId,omitempty" tf:"farm_id,omitempty"` + + // Port attached to your server ([1..49151]). Inherited from farm if null + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Possible values for server status + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type UDPFarmServerObservation struct { + + // IPv4 address (e.g., 192.0.2.0) + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Synonym for farm_id + BackendID *float64 `json:"backendId,omitempty" tf:"backend_id,omitempty"` + + // Human readable name for your server, this field is for you + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Id of your farm + FarmID *float64 `json:"farmId,omitempty" tf:"farm_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Port attached to your server ([1..49151]). Inherited from farm if null + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Id of your server + ServerID *float64 `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // The internal name of your IP load balancing + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Possible values for server status + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type UDPFarmServerParameters struct { + + // IPv4 address (e.g., 192.0.2.0) + // +kubebuilder:validation:Optional + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Human readable name for your server, this field is for you + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Id of your farm + // +kubebuilder:validation:Optional + FarmID *float64 `json:"farmId,omitempty" tf:"farm_id,omitempty"` + + // Port attached to your server ([1..49151]). Inherited from farm if null + // +kubebuilder:validation:Optional + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The internal name of your IP load balancing + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Possible values for server status + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +// UDPFarmServerSpec defines the desired state of UDPFarmServer +type UDPFarmServerSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UDPFarmServerParameters `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 UDPFarmServerInitParameters `json:"initProvider,omitempty"` +} + +// UDPFarmServerStatus defines the observed state of UDPFarmServer. +type UDPFarmServerStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider UDPFarmServerObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// UDPFarmServer is the Schema for the UDPFarmServers 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 UDPFarmServer 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.address) || (has(self.initProvider) && has(self.initProvider.address))",message="spec.forProvider.address is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.farmId) || (has(self.initProvider) && has(self.initProvider.farmId))",message="spec.forProvider.farmId 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.status) || (has(self.initProvider) && has(self.initProvider.status))",message="spec.forProvider.status is a required parameter" + Spec UDPFarmServerSpec `json:"spec"` + Status UDPFarmServerStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UDPFarmServerList contains a list of UDPFarmServers +type UDPFarmServerList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UDPFarmServer `json:"items"` +} + +// Repository type metadata. +var ( + UDPFarmServer_Kind = "UDPFarmServer" + UDPFarmServer_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UDPFarmServer_Kind}.String() + UDPFarmServer_KindAPIVersion = UDPFarmServer_Kind + "." + CRDGroupVersion.String() + UDPFarmServer_GroupVersionKind = CRDGroupVersion.WithKind(UDPFarmServer_Kind) +) + +func init() { + SchemeBuilder.Register(&UDPFarmServer{}, &UDPFarmServerList{}) +} diff --git a/apis/lb/v1alpha1/zz_udpfrontend_types.go b/apis/lb/v1alpha1/zz_udpfrontend_types.go index da02b57..61f63de 100755 --- a/apis/lb/v1alpha1/zz_udpfrontend_types.go +++ b/apis/lb/v1alpha1/zz_udpfrontend_types.go @@ -129,7 +129,7 @@ type UDPFrontendStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type UDPFrontend struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/lb/v1alpha1/zz_vracknetwork_types.go b/apis/lb/v1alpha1/zz_vracknetwork_types.go index 40d5c7a..a9fc3b4 100755 --- a/apis/lb/v1alpha1/zz_vracknetwork_types.go +++ b/apis/lb/v1alpha1/zz_vracknetwork_types.go @@ -119,7 +119,7 @@ type VrackNetworkStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type VrackNetwork struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/logs/v1alpha1/zz_generated.conversion_hubs.go b/apis/logs/v1alpha1/zz_generated.conversion_hubs.go index 45f4103..0ff72da 100755 --- a/apis/logs/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/logs/v1alpha1/zz_generated.conversion_hubs.go @@ -12,5 +12,11 @@ func (tr *LogsCluster) Hub() {} // Hub marks this type as a conversion hub. func (tr *LogsInput) Hub() {} +// Hub marks this type as a conversion hub. +func (tr *LogsOutputOpensearchAlias) Hub() {} + +// Hub marks this type as a conversion hub. +func (tr *LogsOutputOpensearchIndex) Hub() {} + // Hub marks this type as a conversion hub. func (tr *LogsToken) Hub() {} diff --git a/apis/logs/v1alpha1/zz_generated.deepcopy.go b/apis/logs/v1alpha1/zz_generated.deepcopy.go index 120b965..55fb25a 100644 --- a/apis/logs/v1alpha1/zz_generated.deepcopy.go +++ b/apis/logs/v1alpha1/zz_generated.deepcopy.go @@ -860,6 +860,565 @@ func (in *LogsInputStatus) DeepCopy() *LogsInputStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchAlias) DeepCopyInto(out *LogsOutputOpensearchAlias) { + *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 LogsOutputOpensearchAlias. +func (in *LogsOutputOpensearchAlias) DeepCopy() *LogsOutputOpensearchAlias { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAlias) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LogsOutputOpensearchAlias) 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 *LogsOutputOpensearchAliasInitParameters) DeepCopyInto(out *LogsOutputOpensearchAliasInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Indexes != nil { + in, out := &in.Indexes, &out.Indexes + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.NbIndex != nil { + in, out := &in.NbIndex, &out.NbIndex + *out = new(float64) + **out = **in + } + if in.NbStream != nil { + in, out := &in.NbStream, &out.NbStream + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Streams != nil { + in, out := &in.Streams, &out.Streams + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchAliasInitParameters. +func (in *LogsOutputOpensearchAliasInitParameters) DeepCopy() *LogsOutputOpensearchAliasInitParameters { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchAliasList) DeepCopyInto(out *LogsOutputOpensearchAliasList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]LogsOutputOpensearchAlias, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchAliasList. +func (in *LogsOutputOpensearchAliasList) DeepCopy() *LogsOutputOpensearchAliasList { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LogsOutputOpensearchAliasList) 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 *LogsOutputOpensearchAliasObservation) DeepCopyInto(out *LogsOutputOpensearchAliasObservation) { + *out = *in + if in.AliasID != nil { + in, out := &in.AliasID, &out.AliasID + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CurrentSize != nil { + in, out := &in.CurrentSize, &out.CurrentSize + *out = new(float64) + **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.Indexes != nil { + in, out := &in.Indexes, &out.Indexes + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.IsEditable != nil { + in, out := &in.IsEditable, &out.IsEditable + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NbIndex != nil { + in, out := &in.NbIndex, &out.NbIndex + *out = new(float64) + **out = **in + } + if in.NbStream != nil { + in, out := &in.NbStream, &out.NbStream + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Streams != nil { + in, out := &in.Streams, &out.Streams + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchAliasObservation. +func (in *LogsOutputOpensearchAliasObservation) DeepCopy() *LogsOutputOpensearchAliasObservation { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchAliasParameters) DeepCopyInto(out *LogsOutputOpensearchAliasParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Indexes != nil { + in, out := &in.Indexes, &out.Indexes + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.NbIndex != nil { + in, out := &in.NbIndex, &out.NbIndex + *out = new(float64) + **out = **in + } + if in.NbStream != nil { + in, out := &in.NbStream, &out.NbStream + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Streams != nil { + in, out := &in.Streams, &out.Streams + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchAliasParameters. +func (in *LogsOutputOpensearchAliasParameters) DeepCopy() *LogsOutputOpensearchAliasParameters { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchAliasSpec) DeepCopyInto(out *LogsOutputOpensearchAliasSpec) { + *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 LogsOutputOpensearchAliasSpec. +func (in *LogsOutputOpensearchAliasSpec) DeepCopy() *LogsOutputOpensearchAliasSpec { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchAliasStatus) DeepCopyInto(out *LogsOutputOpensearchAliasStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchAliasStatus. +func (in *LogsOutputOpensearchAliasStatus) DeepCopy() *LogsOutputOpensearchAliasStatus { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchAliasStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchIndex) DeepCopyInto(out *LogsOutputOpensearchIndex) { + *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 LogsOutputOpensearchIndex. +func (in *LogsOutputOpensearchIndex) DeepCopy() *LogsOutputOpensearchIndex { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndex) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LogsOutputOpensearchIndex) 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 *LogsOutputOpensearchIndexInitParameters) DeepCopyInto(out *LogsOutputOpensearchIndexInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.NbShard != nil { + in, out := &in.NbShard, &out.NbShard + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchIndexInitParameters. +func (in *LogsOutputOpensearchIndexInitParameters) DeepCopy() *LogsOutputOpensearchIndexInitParameters { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchIndexList) DeepCopyInto(out *LogsOutputOpensearchIndexList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]LogsOutputOpensearchIndex, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchIndexList. +func (in *LogsOutputOpensearchIndexList) DeepCopy() *LogsOutputOpensearchIndexList { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LogsOutputOpensearchIndexList) 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 *LogsOutputOpensearchIndexObservation) DeepCopyInto(out *LogsOutputOpensearchIndexObservation) { + *out = *in + if in.AlertNotifyEnabled != nil { + in, out := &in.AlertNotifyEnabled, &out.AlertNotifyEnabled + *out = new(bool) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CurrentSize != nil { + in, out := &in.CurrentSize, &out.CurrentSize + *out = new(float64) + **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.IndexID != nil { + in, out := &in.IndexID, &out.IndexID + *out = new(string) + **out = **in + } + if in.IsEditable != nil { + in, out := &in.IsEditable, &out.IsEditable + *out = new(bool) + **out = **in + } + if in.MaxSize != nil { + in, out := &in.MaxSize, &out.MaxSize + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NbShard != nil { + in, out := &in.NbShard, &out.NbShard + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchIndexObservation. +func (in *LogsOutputOpensearchIndexObservation) DeepCopy() *LogsOutputOpensearchIndexObservation { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchIndexParameters) DeepCopyInto(out *LogsOutputOpensearchIndexParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.NbShard != nil { + in, out := &in.NbShard, &out.NbShard + *out = new(float64) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Suffix != nil { + in, out := &in.Suffix, &out.Suffix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchIndexParameters. +func (in *LogsOutputOpensearchIndexParameters) DeepCopy() *LogsOutputOpensearchIndexParameters { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchIndexSpec) DeepCopyInto(out *LogsOutputOpensearchIndexSpec) { + *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 LogsOutputOpensearchIndexSpec. +func (in *LogsOutputOpensearchIndexSpec) DeepCopy() *LogsOutputOpensearchIndexSpec { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LogsOutputOpensearchIndexStatus) DeepCopyInto(out *LogsOutputOpensearchIndexStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LogsOutputOpensearchIndexStatus. +func (in *LogsOutputOpensearchIndexStatus) DeepCopy() *LogsOutputOpensearchIndexStatus { + if in == nil { + return nil + } + out := new(LogsOutputOpensearchIndexStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LogsToken) DeepCopyInto(out *LogsToken) { *out = *in diff --git a/apis/logs/v1alpha1/zz_generated.managed.go b/apis/logs/v1alpha1/zz_generated.managed.go index 93cafaf..07a24ea 100644 --- a/apis/logs/v1alpha1/zz_generated.managed.go +++ b/apis/logs/v1alpha1/zz_generated.managed.go @@ -127,6 +127,126 @@ func (mg *LogsInput) SetWriteConnectionSecretToReference(r *xpv1.SecretReference mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this LogsOutputOpensearchAlias. +func (mg *LogsOutputOpensearchAlias) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this LogsOutputOpensearchIndex. +func (mg *LogsOutputOpensearchIndex) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this LogsToken. func (mg *LogsToken) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/logs/v1alpha1/zz_generated.managedlist.go b/apis/logs/v1alpha1/zz_generated.managedlist.go index 476008b..b99df7e 100644 --- a/apis/logs/v1alpha1/zz_generated.managedlist.go +++ b/apis/logs/v1alpha1/zz_generated.managedlist.go @@ -25,6 +25,24 @@ func (l *LogsInputList) GetItems() []resource.Managed { return items } +// GetItems of this LogsOutputOpensearchAliasList. +func (l *LogsOutputOpensearchAliasList) 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 LogsOutputOpensearchIndexList. +func (l *LogsOutputOpensearchIndexList) 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 LogsTokenList. func (l *LogsTokenList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/logs/v1alpha1/zz_logscluster_types.go b/apis/logs/v1alpha1/zz_logscluster_types.go index 91c3046..7ec444a 100755 --- a/apis/logs/v1alpha1/zz_logscluster_types.go +++ b/apis/logs/v1alpha1/zz_logscluster_types.go @@ -124,7 +124,7 @@ type LogsClusterStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type LogsCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/logs/v1alpha1/zz_logsinput_types.go b/apis/logs/v1alpha1/zz_logsinput_types.go index 5cfc1bd..528215a 100755 --- a/apis/logs/v1alpha1/zz_logsinput_types.go +++ b/apis/logs/v1alpha1/zz_logsinput_types.go @@ -294,7 +294,7 @@ type LogsInputStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type LogsInput struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/logs/v1alpha1/zz_logsoutputopensearchalias_terraformed.go b/apis/logs/v1alpha1/zz_logsoutputopensearchalias_terraformed.go new file mode 100755 index 0000000..e72ef74 --- /dev/null +++ b/apis/logs/v1alpha1/zz_logsoutputopensearchalias_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 LogsOutputOpensearchAlias +func (mg *LogsOutputOpensearchAlias) GetTerraformResourceType() string { + return "ovh_dbaas_logs_output_opensearch_alias" +} + +// GetConnectionDetailsMapping for this LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias +func (tr *LogsOutputOpensearchAlias) 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 LogsOutputOpensearchAlias using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *LogsOutputOpensearchAlias) LateInitialize(attrs []byte) (bool, error) { + params := &LogsOutputOpensearchAliasParameters{} + 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 *LogsOutputOpensearchAlias) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/logs/v1alpha1/zz_logsoutputopensearchalias_types.go b/apis/logs/v1alpha1/zz_logsoutputopensearchalias_types.go new file mode 100755 index 0000000..53924f6 --- /dev/null +++ b/apis/logs/v1alpha1/zz_logsoutputopensearchalias_types.go @@ -0,0 +1,183 @@ +/* +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 LogsOutputOpensearchAliasInitParameters struct { + + // Alias description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Indexes attached to alias + // +listType=set + Indexes []*string `json:"indexes,omitempty" tf:"indexes,omitempty"` + + // Number of index + NbIndex *float64 `json:"nbIndex,omitempty" tf:"nb_index,omitempty"` + + // Number of shard + NbStream *float64 `json:"nbStream,omitempty" tf:"nb_stream,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Streams attached to alias + // +listType=set + Streams []*string `json:"streams,omitempty" tf:"streams,omitempty"` + + // Alias suffix + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` +} + +type LogsOutputOpensearchAliasObservation struct { + + // Alias used + AliasID *string `json:"aliasId,omitempty" tf:"alias_id,omitempty"` + + // Operation creation + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Current alias size (in bytes) + CurrentSize *float64 `json:"currentSize,omitempty" tf:"current_size,omitempty"` + + // Alias description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indexes attached to alias + // +listType=set + Indexes []*string `json:"indexes,omitempty" tf:"indexes,omitempty"` + + // Indicates if you are allowed to edit entry + IsEditable *bool `json:"isEditable,omitempty" tf:"is_editable,omitempty"` + + // Alias name + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Number of index + NbIndex *float64 `json:"nbIndex,omitempty" tf:"nb_index,omitempty"` + + // Number of shard + NbStream *float64 `json:"nbStream,omitempty" tf:"nb_stream,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Streams attached to alias + // +listType=set + Streams []*string `json:"streams,omitempty" tf:"streams,omitempty"` + + // Alias suffix + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` + + // Operation last update + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type LogsOutputOpensearchAliasParameters struct { + + // Alias description + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Indexes attached to alias + // +kubebuilder:validation:Optional + // +listType=set + Indexes []*string `json:"indexes,omitempty" tf:"indexes,omitempty"` + + // Number of index + // +kubebuilder:validation:Optional + NbIndex *float64 `json:"nbIndex,omitempty" tf:"nb_index,omitempty"` + + // Number of shard + // +kubebuilder:validation:Optional + NbStream *float64 `json:"nbStream,omitempty" tf:"nb_stream,omitempty"` + + // The service name + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Streams attached to alias + // +kubebuilder:validation:Optional + // +listType=set + Streams []*string `json:"streams,omitempty" tf:"streams,omitempty"` + + // Alias suffix + // +kubebuilder:validation:Optional + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` +} + +// LogsOutputOpensearchAliasSpec defines the desired state of LogsOutputOpensearchAlias +type LogsOutputOpensearchAliasSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider LogsOutputOpensearchAliasParameters `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 LogsOutputOpensearchAliasInitParameters `json:"initProvider,omitempty"` +} + +// LogsOutputOpensearchAliasStatus defines the observed state of LogsOutputOpensearchAlias. +type LogsOutputOpensearchAliasStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider LogsOutputOpensearchAliasObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// LogsOutputOpensearchAlias is the Schema for the LogsOutputOpensearchAliass 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 LogsOutputOpensearchAlias 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.description) || (has(self.initProvider) && has(self.initProvider.description))",message="spec.forProvider.description 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.suffix) || (has(self.initProvider) && has(self.initProvider.suffix))",message="spec.forProvider.suffix is a required parameter" + Spec LogsOutputOpensearchAliasSpec `json:"spec"` + Status LogsOutputOpensearchAliasStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// LogsOutputOpensearchAliasList contains a list of LogsOutputOpensearchAliass +type LogsOutputOpensearchAliasList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []LogsOutputOpensearchAlias `json:"items"` +} + +// Repository type metadata. +var ( + LogsOutputOpensearchAlias_Kind = "LogsOutputOpensearchAlias" + LogsOutputOpensearchAlias_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LogsOutputOpensearchAlias_Kind}.String() + LogsOutputOpensearchAlias_KindAPIVersion = LogsOutputOpensearchAlias_Kind + "." + CRDGroupVersion.String() + LogsOutputOpensearchAlias_GroupVersionKind = CRDGroupVersion.WithKind(LogsOutputOpensearchAlias_Kind) +) + +func init() { + SchemeBuilder.Register(&LogsOutputOpensearchAlias{}, &LogsOutputOpensearchAliasList{}) +} diff --git a/apis/logs/v1alpha1/zz_logsoutputopensearchindex_terraformed.go b/apis/logs/v1alpha1/zz_logsoutputopensearchindex_terraformed.go new file mode 100755 index 0000000..38d7ea2 --- /dev/null +++ b/apis/logs/v1alpha1/zz_logsoutputopensearchindex_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 LogsOutputOpensearchIndex +func (mg *LogsOutputOpensearchIndex) GetTerraformResourceType() string { + return "ovh_dbaas_logs_output_opensearch_index" +} + +// GetConnectionDetailsMapping for this LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex +func (tr *LogsOutputOpensearchIndex) 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 LogsOutputOpensearchIndex using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *LogsOutputOpensearchIndex) LateInitialize(attrs []byte) (bool, error) { + params := &LogsOutputOpensearchIndexParameters{} + 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 *LogsOutputOpensearchIndex) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/logs/v1alpha1/zz_logsoutputopensearchindex_types.go b/apis/logs/v1alpha1/zz_logsoutputopensearchindex_types.go new file mode 100755 index 0000000..2656425 --- /dev/null +++ b/apis/logs/v1alpha1/zz_logsoutputopensearchindex_types.go @@ -0,0 +1,154 @@ +/* +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 LogsOutputOpensearchIndexInitParameters struct { + + // Index description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Number of shard + NbShard *float64 `json:"nbShard,omitempty" tf:"nb_shard,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Index suffix + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` +} + +type LogsOutputOpensearchIndexObservation struct { + + // If set, notify when size is near 80, 90 or 100 % of its maximum capacity + AlertNotifyEnabled *bool `json:"alertNotifyEnabled,omitempty" tf:"alert_notify_enabled,omitempty"` + + // Operation creation + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Current Index size (in bytes) + CurrentSize *float64 `json:"currentSize,omitempty" tf:"current_size,omitempty"` + + // Index description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Index ID + IndexID *string `json:"indexId,omitempty" tf:"index_id,omitempty"` + + // Indicates if you are allowed to edit entry + IsEditable *bool `json:"isEditable,omitempty" tf:"is_editable,omitempty"` + + // Maximum index size (in bytes) + MaxSize *float64 `json:"maxSize,omitempty" tf:"max_size,omitempty"` + + // Index name + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Number of shard + NbShard *float64 `json:"nbShard,omitempty" tf:"nb_shard,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Index suffix + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` + + // Operation last update + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type LogsOutputOpensearchIndexParameters struct { + + // Index description + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Number of shard + // +kubebuilder:validation:Optional + NbShard *float64 `json:"nbShard,omitempty" tf:"nb_shard,omitempty"` + + // The service name + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Index suffix + // +kubebuilder:validation:Optional + Suffix *string `json:"suffix,omitempty" tf:"suffix,omitempty"` +} + +// LogsOutputOpensearchIndexSpec defines the desired state of LogsOutputOpensearchIndex +type LogsOutputOpensearchIndexSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider LogsOutputOpensearchIndexParameters `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 LogsOutputOpensearchIndexInitParameters `json:"initProvider,omitempty"` +} + +// LogsOutputOpensearchIndexStatus defines the observed state of LogsOutputOpensearchIndex. +type LogsOutputOpensearchIndexStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider LogsOutputOpensearchIndexObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// LogsOutputOpensearchIndex is the Schema for the LogsOutputOpensearchIndexs 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 LogsOutputOpensearchIndex 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.description) || (has(self.initProvider) && has(self.initProvider.description))",message="spec.forProvider.description is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nbShard) || (has(self.initProvider) && has(self.initProvider.nbShard))",message="spec.forProvider.nbShard 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.suffix) || (has(self.initProvider) && has(self.initProvider.suffix))",message="spec.forProvider.suffix is a required parameter" + Spec LogsOutputOpensearchIndexSpec `json:"spec"` + Status LogsOutputOpensearchIndexStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// LogsOutputOpensearchIndexList contains a list of LogsOutputOpensearchIndexs +type LogsOutputOpensearchIndexList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []LogsOutputOpensearchIndex `json:"items"` +} + +// Repository type metadata. +var ( + LogsOutputOpensearchIndex_Kind = "LogsOutputOpensearchIndex" + LogsOutputOpensearchIndex_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LogsOutputOpensearchIndex_Kind}.String() + LogsOutputOpensearchIndex_KindAPIVersion = LogsOutputOpensearchIndex_Kind + "." + CRDGroupVersion.String() + LogsOutputOpensearchIndex_GroupVersionKind = CRDGroupVersion.WithKind(LogsOutputOpensearchIndex_Kind) +) + +func init() { + SchemeBuilder.Register(&LogsOutputOpensearchIndex{}, &LogsOutputOpensearchIndexList{}) +} diff --git a/apis/logs/v1alpha1/zz_logstoken_types.go b/apis/logs/v1alpha1/zz_logstoken_types.go index f09223c..f574ba8 100755 --- a/apis/logs/v1alpha1/zz_logstoken_types.go +++ b/apis/logs/v1alpha1/zz_logstoken_types.go @@ -95,7 +95,7 @@ type LogsTokenStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type LogsToken struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/me/v1alpha1/zz_group_types.go b/apis/me/v1alpha1/zz_group_types.go index cb96d2d..a0b8ba9 100755 --- a/apis/me/v1alpha1/zz_group_types.go +++ b/apis/me/v1alpha1/zz_group_types.go @@ -83,7 +83,7 @@ type GroupStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Group struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/me/v1alpha1/zz_oauth2client_types.go b/apis/me/v1alpha1/zz_oauth2client_types.go index 0994450..d85cab9 100755 --- a/apis/me/v1alpha1/zz_oauth2client_types.go +++ b/apis/me/v1alpha1/zz_oauth2client_types.go @@ -99,7 +99,7 @@ type Oauth2ClientStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Oauth2Client struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/me/v1alpha1/zz_user_types.go b/apis/me/v1alpha1/zz_user_types.go index abc87ef..04a8e87 100755 --- a/apis/me/v1alpha1/zz_user_types.go +++ b/apis/me/v1alpha1/zz_user_types.go @@ -132,7 +132,7 @@ type UserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type User struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/nas/v1alpha1/zz_nashapartition_types.go b/apis/nas/v1alpha1/zz_nashapartition_types.go index 094c442..fc5885c 100755 --- a/apis/nas/v1alpha1/zz_nashapartition_types.go +++ b/apis/nas/v1alpha1/zz_nashapartition_types.go @@ -93,7 +93,7 @@ type NashaPartitionStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type NashaPartition struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/nas/v1alpha1/zz_nashapartitionaccess_types.go b/apis/nas/v1alpha1/zz_nashapartitionaccess_types.go index 68a60f1..7a5d4db 100755 --- a/apis/nas/v1alpha1/zz_nashapartitionaccess_types.go +++ b/apis/nas/v1alpha1/zz_nashapartitionaccess_types.go @@ -94,7 +94,7 @@ type NashaPartitionAccessStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type NashaPartitionAccess struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/nas/v1alpha1/zz_nashapartitionsnapshot_types.go b/apis/nas/v1alpha1/zz_nashapartitionsnapshot_types.go index c95c2ec..56aa658 100755 --- a/apis/nas/v1alpha1/zz_nashapartitionsnapshot_types.go +++ b/apis/nas/v1alpha1/zz_nashapartitionsnapshot_types.go @@ -75,7 +75,7 @@ type NashaPartitionSnapshotStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type NashaPartitionSnapshot struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_generated.conversion_hubs.go b/apis/network/v1alpha1/zz_generated.conversion_hubs.go index d94b4ef..bf68d3e 100755 --- a/apis/network/v1alpha1/zz_generated.conversion_hubs.go +++ b/apis/network/v1alpha1/zz_generated.conversion_hubs.go @@ -11,3 +11,6 @@ func (tr *PrivateNetwork) Hub() {} // Hub marks this type as a conversion hub. func (tr *Subnet) Hub() {} + +// Hub marks this type as a conversion hub. +func (tr *SubnetV2) Hub() {} diff --git a/apis/network/v1alpha1/zz_generated.deepcopy.go b/apis/network/v1alpha1/zz_generated.deepcopy.go index 2777ebf..07db27f 100644 --- a/apis/network/v1alpha1/zz_generated.deepcopy.go +++ b/apis/network/v1alpha1/zz_generated.deepcopy.go @@ -13,6 +13,156 @@ import ( 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 *AllocationPoolInitParameters) DeepCopyInto(out *AllocationPoolInitParameters) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolInitParameters. +func (in *AllocationPoolInitParameters) DeepCopy() *AllocationPoolInitParameters { + if in == nil { + return nil + } + out := new(AllocationPoolInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllocationPoolObservation) DeepCopyInto(out *AllocationPoolObservation) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolObservation. +func (in *AllocationPoolObservation) DeepCopy() *AllocationPoolObservation { + if in == nil { + return nil + } + out := new(AllocationPoolObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllocationPoolParameters) DeepCopyInto(out *AllocationPoolParameters) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolParameters. +func (in *AllocationPoolParameters) DeepCopy() *AllocationPoolParameters { + if in == nil { + return nil + } + out := new(AllocationPoolParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRouteInitParameters) DeepCopyInto(out *HostRouteInitParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRouteInitParameters. +func (in *HostRouteInitParameters) DeepCopy() *HostRouteInitParameters { + if in == nil { + return nil + } + out := new(HostRouteInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRouteObservation) DeepCopyInto(out *HostRouteObservation) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRouteObservation. +func (in *HostRouteObservation) DeepCopy() *HostRouteObservation { + if in == nil { + return nil + } + out := new(HostRouteObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRouteParameters) DeepCopyInto(out *HostRouteParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRouteParameters. +func (in *HostRouteParameters) DeepCopy() *HostRouteParameters { + if in == nil { + return nil + } + out := new(HostRouteParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IPPoolsInitParameters) DeepCopyInto(out *IPPoolsInitParameters) { *out = *in @@ -744,3 +894,362 @@ func (in *SubnetStatus) DeepCopy() *SubnetStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2) DeepCopyInto(out *SubnetV2) { + *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 SubnetV2. +func (in *SubnetV2) DeepCopy() *SubnetV2 { + if in == nil { + return nil + } + out := new(SubnetV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV2) 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 *SubnetV2InitParameters) DeepCopyInto(out *SubnetV2InitParameters) { + *out = *in + if in.AllocationPool != nil { + in, out := &in.AllocationPool, &out.AllocationPool + *out = make([]AllocationPoolInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DHCP != nil { + in, out := &in.DHCP, &out.DHCP + *out = new(bool) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.EnableGatewayIP != nil { + in, out := &in.EnableGatewayIP, &out.EnableGatewayIP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoute != nil { + in, out := &in.HostRoute, &out.HostRoute + *out = make([]HostRouteInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2InitParameters. +func (in *SubnetV2InitParameters) DeepCopy() *SubnetV2InitParameters { + if in == nil { + return nil + } + out := new(SubnetV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2List) DeepCopyInto(out *SubnetV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SubnetV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2List. +func (in *SubnetV2List) DeepCopy() *SubnetV2List { + if in == nil { + return nil + } + out := new(SubnetV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV2List) 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 *SubnetV2Observation) DeepCopyInto(out *SubnetV2Observation) { + *out = *in + if in.AllocationPool != nil { + in, out := &in.AllocationPool, &out.AllocationPool + *out = make([]AllocationPoolObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DHCP != nil { + in, out := &in.DHCP, &out.DHCP + *out = new(bool) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.EnableGatewayIP != nil { + in, out := &in.EnableGatewayIP, &out.EnableGatewayIP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoute != nil { + in, out := &in.HostRoute, &out.HostRoute + *out = make([]HostRouteObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2Observation. +func (in *SubnetV2Observation) DeepCopy() *SubnetV2Observation { + if in == nil { + return nil + } + out := new(SubnetV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Parameters) DeepCopyInto(out *SubnetV2Parameters) { + *out = *in + if in.AllocationPool != nil { + in, out := &in.AllocationPool, &out.AllocationPool + *out = make([]AllocationPoolParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DHCP != nil { + in, out := &in.DHCP, &out.DHCP + *out = new(bool) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.EnableGatewayIP != nil { + in, out := &in.EnableGatewayIP, &out.EnableGatewayIP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoute != nil { + in, out := &in.HostRoute, &out.HostRoute + *out = make([]HostRouteParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2Parameters. +func (in *SubnetV2Parameters) DeepCopy() *SubnetV2Parameters { + if in == nil { + return nil + } + out := new(SubnetV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Spec) DeepCopyInto(out *SubnetV2Spec) { + *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 SubnetV2Spec. +func (in *SubnetV2Spec) DeepCopy() *SubnetV2Spec { + if in == nil { + return nil + } + out := new(SubnetV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Status) DeepCopyInto(out *SubnetV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2Status. +func (in *SubnetV2Status) DeepCopy() *SubnetV2Status { + if in == nil { + return nil + } + out := new(SubnetV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/network/v1alpha1/zz_generated.managed.go b/apis/network/v1alpha1/zz_generated.managed.go index 2c0c7e1..b64b917 100644 --- a/apis/network/v1alpha1/zz_generated.managed.go +++ b/apis/network/v1alpha1/zz_generated.managed.go @@ -126,3 +126,63 @@ func (mg *Subnet) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetails func (mg *Subnet) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } + +// GetCondition of this SubnetV2. +func (mg *SubnetV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SubnetV2. +func (mg *SubnetV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SubnetV2. +func (mg *SubnetV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SubnetV2. +func (mg *SubnetV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SubnetV2. +func (mg *SubnetV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SubnetV2. +func (mg *SubnetV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SubnetV2. +func (mg *SubnetV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SubnetV2. +func (mg *SubnetV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SubnetV2. +func (mg *SubnetV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SubnetV2. +func (mg *SubnetV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SubnetV2. +func (mg *SubnetV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SubnetV2. +func (mg *SubnetV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/network/v1alpha1/zz_generated.managedlist.go b/apis/network/v1alpha1/zz_generated.managedlist.go index af166d2..932dacd 100644 --- a/apis/network/v1alpha1/zz_generated.managedlist.go +++ b/apis/network/v1alpha1/zz_generated.managedlist.go @@ -24,3 +24,12 @@ func (l *SubnetList) GetItems() []resource.Managed { } return items } + +// GetItems of this SubnetV2List. +func (l *SubnetV2List) 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/network/v1alpha1/zz_generated.resolvers.go b/apis/network/v1alpha1/zz_generated.resolvers.go index cdd527e..916f984 100644 --- a/apis/network/v1alpha1/zz_generated.resolvers.go +++ b/apis/network/v1alpha1/zz_generated.resolvers.go @@ -53,3 +53,45 @@ func (mg *Subnet) ResolveReferences(ctx context.Context, c client.Reader) error return nil } + +// ResolveReferences of this SubnetV2. +func (mg *SubnetV2) 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: &PrivateNetworkList{}, + Managed: &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.InitProvider.NetworkID), + Extract: reference.ExternalName(), + Reference: mg.Spec.InitProvider.NetworkIDRef, + Selector: mg.Spec.InitProvider.NetworkIDSelector, + To: reference.To{ + List: &PrivateNetworkList{}, + Managed: &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 + + return nil +} diff --git a/apis/network/v1alpha1/zz_privatenetwork_types.go b/apis/network/v1alpha1/zz_privatenetwork_types.go index 6ce280b..368a391 100755 --- a/apis/network/v1alpha1/zz_privatenetwork_types.go +++ b/apis/network/v1alpha1/zz_privatenetwork_types.go @@ -122,7 +122,7 @@ type PrivateNetworkStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type PrivateNetwork struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_subnet_types.go b/apis/network/v1alpha1/zz_subnet_types.go index cb38e07..944b8e1 100755 --- a/apis/network/v1alpha1/zz_subnet_types.go +++ b/apis/network/v1alpha1/zz_subnet_types.go @@ -155,7 +155,7 @@ type SubnetStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Subnet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_subnetv2_terraformed.go b/apis/network/v1alpha1/zz_subnetv2_terraformed.go new file mode 100755 index 0000000..21ca89f --- /dev/null +++ b/apis/network/v1alpha1/zz_subnetv2_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 SubnetV2 +func (mg *SubnetV2) GetTerraformResourceType() string { + return "ovh_cloud_project_network_private_subnet_v2" +} + +// GetConnectionDetailsMapping for this SubnetV2 +func (tr *SubnetV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SubnetV2) LateInitialize(attrs []byte) (bool, error) { + params := &SubnetV2Parameters{} + 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 *SubnetV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/network/v1alpha1/zz_subnetv2_types.go b/apis/network/v1alpha1/zz_subnetv2_types.go new file mode 100755 index 0000000..2b20c68 --- /dev/null +++ b/apis/network/v1alpha1/zz_subnetv2_types.go @@ -0,0 +1,260 @@ +/* +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 AllocationPoolInitParameters struct { + End *string `json:"end,omitempty" tf:"end,omitempty"` + + Start *string `json:"start,omitempty" tf:"start,omitempty"` +} + +type AllocationPoolObservation struct { + End *string `json:"end,omitempty" tf:"end,omitempty"` + + Start *string `json:"start,omitempty" tf:"start,omitempty"` +} + +type AllocationPoolParameters struct { + + // +kubebuilder:validation:Optional + End *string `json:"end" tf:"end,omitempty"` + + // +kubebuilder:validation:Optional + Start *string `json:"start" tf:"start,omitempty"` +} + +type HostRouteInitParameters struct { + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` +} + +type HostRouteObservation struct { + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` +} + +type HostRouteParameters struct { + + // +kubebuilder:validation:Optional + Destination *string `json:"destination" tf:"destination,omitempty"` + + // +kubebuilder:validation:Optional + Nexthop *string `json:"nexthop" tf:"nexthop,omitempty"` +} + +type SubnetV2InitParameters struct { + + // DHCP allocation pools of subnet + AllocationPool []AllocationPoolInitParameters `json:"allocationPool,omitempty" tf:"allocation_pool,omitempty"` + + // CIDR of subnet + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Enable DHCP in subnet + DHCP *bool `json:"dhcp,omitempty" tf:"dhcp,omitempty"` + + // List of DNS nameservers, default: 213.186.33.99 + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // Enable gateway IP in subnet + EnableGatewayIP *bool `json:"enableGatewayIp,omitempty" tf:"enable_gateway_ip,omitempty"` + + // Gateway IP of subnet + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // Static host routes of subnet + HostRoute []HostRouteInitParameters `json:"hostRoute,omitempty" tf:"host_route,omitempty"` + + // Name of subnet + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Network ID of subnet + // +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 of network/subnet + 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"` +} + +type SubnetV2Observation struct { + + // DHCP allocation pools of subnet + AllocationPool []AllocationPoolObservation `json:"allocationPool,omitempty" tf:"allocation_pool,omitempty"` + + // CIDR of subnet + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Enable DHCP in subnet + DHCP *bool `json:"dhcp,omitempty" tf:"dhcp,omitempty"` + + // List of DNS nameservers, default: 213.186.33.99 + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // Enable gateway IP in subnet + EnableGatewayIP *bool `json:"enableGatewayIp,omitempty" tf:"enable_gateway_ip,omitempty"` + + // Gateway IP of subnet + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // Static host routes of subnet + HostRoute []HostRouteObservation `json:"hostRoute,omitempty" tf:"host_route,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of subnet + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Network ID of subnet + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Region of network/subnet + 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"` +} + +type SubnetV2Parameters struct { + + // DHCP allocation pools of subnet + // +kubebuilder:validation:Optional + AllocationPool []AllocationPoolParameters `json:"allocationPool,omitempty" tf:"allocation_pool,omitempty"` + + // CIDR of subnet + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Enable DHCP in subnet + // +kubebuilder:validation:Optional + DHCP *bool `json:"dhcp,omitempty" tf:"dhcp,omitempty"` + + // List of DNS nameservers, default: 213.186.33.99 + // +kubebuilder:validation:Optional + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // Enable gateway IP in subnet + // +kubebuilder:validation:Optional + EnableGatewayIP *bool `json:"enableGatewayIp,omitempty" tf:"enable_gateway_ip,omitempty"` + + // Gateway IP of subnet + // +kubebuilder:validation:Optional + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // Static host routes of subnet + // +kubebuilder:validation:Optional + HostRoute []HostRouteParameters `json:"hostRoute,omitempty" tf:"host_route,omitempty"` + + // Name of subnet + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Network ID of subnet + // +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:"-"` + + // Region of network/subnet + // +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"` +} + +// SubnetV2Spec defines the desired state of SubnetV2 +type SubnetV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SubnetV2Parameters `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 SubnetV2InitParameters `json:"initProvider,omitempty"` +} + +// SubnetV2Status defines the observed state of SubnetV2. +type SubnetV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SubnetV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion + +// SubnetV2 is the Schema for the SubnetV2s 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 SubnetV2 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.cidr) || (has(self.initProvider) && has(self.initProvider.cidr))",message="spec.forProvider.cidr 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 SubnetV2Spec `json:"spec"` + Status SubnetV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubnetV2List contains a list of SubnetV2s +type SubnetV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SubnetV2 `json:"items"` +} + +// Repository type metadata. +var ( + SubnetV2_Kind = "SubnetV2" + SubnetV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SubnetV2_Kind}.String() + SubnetV2_KindAPIVersion = SubnetV2_Kind + "." + CRDGroupVersion.String() + SubnetV2_GroupVersionKind = CRDGroupVersion.WithKind(SubnetV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SubnetV2{}, &SubnetV2List{}) +} diff --git a/apis/privatesql/v1alpha1/zz_privatedatabase_types.go b/apis/privatesql/v1alpha1/zz_privatedatabase_types.go index 35bbd04..b036e83 100755 --- a/apis/privatesql/v1alpha1/zz_privatedatabase_types.go +++ b/apis/privatesql/v1alpha1/zz_privatedatabase_types.go @@ -389,14 +389,12 @@ type PrivatedatabaseStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Privatedatabase 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec PrivatedatabaseSpec `json:"spec"` - Status PrivatedatabaseStatus `json:"status,omitempty"` + Spec PrivatedatabaseSpec `json:"spec"` + Status PrivatedatabaseStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go b/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go index 9ba2992..32ebc11 100755 --- a/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go +++ b/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go @@ -76,7 +76,7 @@ type PrivatedatabaseDatabaseStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type PrivatedatabaseDatabase struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go b/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go index 2c23a37..ad2c232 100755 --- a/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go +++ b/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go @@ -79,7 +79,7 @@ type PrivatedatabaseUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type PrivatedatabaseUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go b/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go index 3f4ba1a..b2dc926 100755 --- a/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go +++ b/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go @@ -96,7 +96,7 @@ type PrivatedatabaseUserGrantStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type PrivatedatabaseUserGrant struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go b/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go index e4f838d..edbb671 100755 --- a/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go +++ b/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go @@ -105,7 +105,7 @@ type PrivatedatabaseWhitelistStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type PrivatedatabaseWhitelist struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/registry/v1alpha1/zz_containerregistry_types.go b/apis/registry/v1alpha1/zz_containerregistry_types.go index f918079..e6c5957 100755 --- a/apis/registry/v1alpha1/zz_containerregistry_types.go +++ b/apis/registry/v1alpha1/zz_containerregistry_types.go @@ -161,7 +161,7 @@ type ContainerRegistryStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ContainerRegistry struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/registry/v1alpha1/zz_containerregistryiprestrictionsmanagement_types.go b/apis/registry/v1alpha1/zz_containerregistryiprestrictionsmanagement_types.go index 6744e5e..14a755e 100755 --- a/apis/registry/v1alpha1/zz_containerregistryiprestrictionsmanagement_types.go +++ b/apis/registry/v1alpha1/zz_containerregistryiprestrictionsmanagement_types.go @@ -103,7 +103,7 @@ type ContainerRegistryIPRestrictionsManagementStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ContainerRegistryIPRestrictionsManagement struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/registry/v1alpha1/zz_containerregistryiprestrictionsregistry_types.go b/apis/registry/v1alpha1/zz_containerregistryiprestrictionsregistry_types.go index 058b4b4..605ed81 100755 --- a/apis/registry/v1alpha1/zz_containerregistryiprestrictionsregistry_types.go +++ b/apis/registry/v1alpha1/zz_containerregistryiprestrictionsregistry_types.go @@ -103,7 +103,7 @@ type ContainerRegistryIPRestrictionsRegistryStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ContainerRegistryIPRestrictionsRegistry struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/registry/v1alpha1/zz_containerregistryoidc_types.go b/apis/registry/v1alpha1/zz_containerregistryoidc_types.go index 5386321..ae26684 100755 --- a/apis/registry/v1alpha1/zz_containerregistryoidc_types.go +++ b/apis/registry/v1alpha1/zz_containerregistryoidc_types.go @@ -159,7 +159,7 @@ type ContainerRegistryOIDCStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ContainerRegistryOIDC struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/registry/v1alpha1/zz_containerregistryuser_types.go b/apis/registry/v1alpha1/zz_containerregistryuser_types.go index 65e95ac..dbcf61a 100755 --- a/apis/registry/v1alpha1/zz_containerregistryuser_types.go +++ b/apis/registry/v1alpha1/zz_containerregistryuser_types.go @@ -117,7 +117,7 @@ type ContainerRegistryUserStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ContainerRegistryUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/storage/v1alpha1/zz_projectregionstoragepresign_types.go b/apis/storage/v1alpha1/zz_projectregionstoragepresign_types.go index 78def80..a7bb6d0 100755 --- a/apis/storage/v1alpha1/zz_projectregionstoragepresign_types.go +++ b/apis/storage/v1alpha1/zz_projectregionstoragepresign_types.go @@ -15,71 +15,71 @@ import ( type ProjectRegionStoragePresignInitParameters struct { - // How long (in seconds) the URL will be valid. + // How long (in seconds) the URL will be valid Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` Method *string `json:"method,omitempty" tf:"method,omitempty"` - // The S3 storage container's name. + // The S3 storage container's name Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Name of the object to download or upload. + // Name of the object to download or upload Object *string `json:"object,omitempty" tf:"object,omitempty"` - // Region name. + // Region name RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` - // Service name of the resource representing the ID of the cloud project. + // Service name of the resource representing the ID of the cloud project ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` } type ProjectRegionStoragePresignObservation struct { - // How long (in seconds) the URL will be valid. + // How long (in seconds) the URL will be valid Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` Method *string `json:"method,omitempty" tf:"method,omitempty"` - // The S3 storage container's name. + // The S3 storage container's name Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Name of the object to download or upload. + // Name of the object to download or upload Object *string `json:"object,omitempty" tf:"object,omitempty"` - // Region name. + // Region name RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` - // Service name of the resource representing the ID of the cloud project. + // Service name of the resource representing the ID of the cloud project ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` - // Presigned URL. + // Presigned URL URL *string `json:"url,omitempty" tf:"url,omitempty"` } type ProjectRegionStoragePresignParameters struct { - // How long (in seconds) the URL will be valid. + // How long (in seconds) the URL will be valid // +kubebuilder:validation:Optional Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` // +kubebuilder:validation:Optional Method *string `json:"method,omitempty" tf:"method,omitempty"` - // The S3 storage container's name. + // The S3 storage container's name // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Name of the object to download or upload. + // Name of the object to download or upload // +kubebuilder:validation:Optional Object *string `json:"object,omitempty" tf:"object,omitempty"` - // Region name. + // Region name // +kubebuilder:validation:Optional RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` - // Service name of the resource representing the ID of the cloud project. + // Service name of the resource representing the ID of the cloud project // +kubebuilder:validation:Optional ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` } @@ -116,7 +116,7 @@ type ProjectRegionStoragePresignStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectRegionStoragePresign struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go b/apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go index 53cddc4..3da66d6 100755 --- a/apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go +++ b/apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go @@ -108,7 +108,7 @@ type ProjectWorkflowBackupStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type ProjectWorkflowBackup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_cloudproject_types.go b/apis/vrack/v1alpha1/zz_cloudproject_types.go index 37b9cb2..ce1f4b3 100755 --- a/apis/vrack/v1alpha1/zz_cloudproject_types.go +++ b/apis/vrack/v1alpha1/zz_cloudproject_types.go @@ -71,7 +71,7 @@ type CloudprojectStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Cloudproject struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_dedicatedserver_types.go b/apis/vrack/v1alpha1/zz_dedicatedserver_types.go index c7b0380..368a61b 100755 --- a/apis/vrack/v1alpha1/zz_dedicatedserver_types.go +++ b/apis/vrack/v1alpha1/zz_dedicatedserver_types.go @@ -71,7 +71,7 @@ type DedicatedServerStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type DedicatedServer struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go b/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go index bc73492..e7eb65f 100755 --- a/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go +++ b/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go @@ -71,7 +71,7 @@ type DedicatedServerInterfaceStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type DedicatedServerInterface struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_ip_types.go b/apis/vrack/v1alpha1/zz_ip_types.go index dc7aff4..b5c10b2 100755 --- a/apis/vrack/v1alpha1/zz_ip_types.go +++ b/apis/vrack/v1alpha1/zz_ip_types.go @@ -85,7 +85,7 @@ type IPStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type IP struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_iploadbalancing_types.go b/apis/vrack/v1alpha1/zz_iploadbalancing_types.go index 6aa3501..3cf8f97 100755 --- a/apis/vrack/v1alpha1/zz_iploadbalancing_types.go +++ b/apis/vrack/v1alpha1/zz_iploadbalancing_types.go @@ -75,7 +75,7 @@ type IploadbalancingStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Iploadbalancing struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/vrack/v1alpha1/zz_vrack_types.go b/apis/vrack/v1alpha1/zz_vrack_types.go index a2c79ea..e03de13 100755 --- a/apis/vrack/v1alpha1/zz_vrack_types.go +++ b/apis/vrack/v1alpha1/zz_vrack_types.go @@ -344,14 +344,12 @@ type VrackStatus struct { // +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,lb} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} type Vrack 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.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" - Spec VrackSpec `json:"spec"` - Status VrackStatus `json:"status,omitempty"` + Spec VrackSpec `json:"spec"` + Status VrackStatus `json:"status,omitempty"` } // +kubebuilder:object:root=true diff --git a/config/external_name.go b/config/external_name.go index 35ff0c0..82de126 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -72,10 +72,12 @@ var kubeIdentifierFromProvider = config.ExternalName{ // provider. var ExternalNameConfigs = map[string]config.ExternalName{ // Import requires using a randomly generated ID from provider: nl-2e21sda - "ovh_cloud_project_network_private": config.IdentifierFromProvider, - "ovh_cloud_project_network_private_subnet": config.IdentifierFromProvider, - "ovh_cloud_project_workflow_backup": config.NameAsIdentifier, - "ovh_cloud_project": config.IdentifierFromProvider, + "ovh_cloud_project_network_private": config.IdentifierFromProvider, + "ovh_cloud_project_network_private_subnet": config.IdentifierFromProvider, + "ovh_cloud_project_network_private_subnet_v2": config.IdentifierFromProvider, + + "ovh_cloud_project_workflow_backup": config.NameAsIdentifier, + "ovh_cloud_project": config.IdentifierFromProvider, // The ovh_cloud_project_alerting resource uses a nested type which is not supported yet in upjet. // there is an open issue in upjet regarding this issue: https://github.com/crossplane/upjet/issues/372 // "ovh_cloud_project_alerting": config.IdentifierFromProvider, @@ -124,10 +126,15 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_iploadbalancing_tcp_route": config.IdentifierFromProvider, "ovh_iploadbalancing_tcp_route_rule": config.IdentifierFromProvider, "ovh_iploadbalancing_vrack_network": config.IdentifierFromProvider, + "ovh_iploadbalancing_udp_farm_server": config.IdentifierFromProvider, + "ovh_iploadbalancing_udp_farm": config.IdentifierFromProvider, + "ovh_iploadbalancing_ssl": config.IdentifierFromProvider, "ovh_dbaas_logs_cluster": config.IdentifierFromProvider, "ovh_dbaas_logs_graylog_output_stream": config.IdentifierFromProvider, "ovh_dbaas_logs_input": config.IdentifierFromProvider, "ovh_dbaas_logs_token": config.IdentifierFromProvider, + "ovh_dbaas_logs_output_opensearch_alias": config.IdentifierFromProvider, + "ovh_dbaas_logs_output_opensearch_index": config.IdentifierFromProvider, "ovh_cloud_project_database": config.IdentifierFromProvider, "ovh_cloud_project_database_database": config.IdentifierFromProvider, "ovh_cloud_project_database_integration": config.IdentifierFromProvider, @@ -171,6 +178,12 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_vrack_iploadbalancing": config.IdentifierFromProvider, // "ovh_vps": config.IdentifierFromProvider, "ovh_cloud_project_gateway": config.IdentifierFromProvider, + // ovh_okms, ovh_okms_credential, ovh_okms_service_key are not supported yet in upjet. because they uses nested types. + // this is an open issue in upjet regarding this issue: + // https://github.com/crossplane/upjet/issues/372 + //"ovh_okms": config.IdentifierFromProvider, + //"ovh_okms_credential": config.IdentifierFromProvider, + //"ovh_okms_service_key": config.IdentifierFromProvider, } // ExternalNameConfigurations applies all external name configs listed in the diff --git a/config/kms/config.go b/config/kms/config.go new file mode 100644 index 0000000..4aa8db6 --- /dev/null +++ b/config/kms/config.go @@ -0,0 +1,21 @@ +package kms + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "kms" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_okms", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_okms_service_key", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_okms_credential", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + +} diff --git a/config/lb/config.go b/config/lb/config.go index f9e6e5e..ab95dfe 100644 --- a/config/lb/config.go +++ b/config/lb/config.go @@ -51,6 +51,15 @@ func Configure(p *config.Provider) { r.ShortGroup = shortGroup }) p.AddResourceConfigurator("ovh_cloud_project_region_loadbalancer_log_subscription", func(r *config.Resource) { - p.ShortName = shortGroup + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_iploadbalancing_ssl", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_iploadbalancing_udp_farm", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_iploadbalancing_udp_farm_server", func(r *config.Resource) { + r.ShortGroup = shortGroup }) } diff --git a/config/logs/config.go b/config/logs/config.go index c129f79..0ffbb7b 100644 --- a/config/logs/config.go +++ b/config/logs/config.go @@ -20,5 +20,10 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("ovh_dbaas_logs_token", func(r *config.Resource) { r.ShortGroup = shortGroup }) - + p.AddResourceConfigurator("ovh_dbaas_logs_output_opensearch_index", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_dbaas_logs_output_opensearch_alias", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) } diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 887044c..2c7e7b6 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -76,975 +76,3390 @@ resources: soyoustart-ca: for So you Start Canada API soyoustart-eu: for So you Start Europe API importStatements: [] - cloud_project.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project.html Resource - terraform-provider-ovh - title: cloud_project.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_alerting.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_alerting.html Resource - terraform-provider-ovh - title: cloud_project_alerting.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_capabilities_containerregistry.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_capabilities_containerregistry.html Resource - terraform-provider-ovh - title: cloud_project_capabilities_containerregistry.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_capabilities_containerregistry_filter.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_capabilities_containerregistry_filter.html Resource - terraform-provider-ovh - title: cloud_project_capabilities_containerregistry_filter.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistries.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistries.html Resource - terraform-provider-ovh - title: cloud_project_containerregistries.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry_ip_restrictions_management.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry_ip_restrictions_management.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry_ip_restrictions_management.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry_ip_restrictions_registry.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry_ip_restrictions_registry.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry_ip_restrictions_registry.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry_oidc.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry_oidc.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry_oidc.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry_user.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_containerregistry_users.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_containerregistry_users.html Resource - terraform-provider-ovh - title: cloud_project_containerregistry_users.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database.html Resource - terraform-provider-ovh - title: cloud_project_database.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_capabilities.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_capabilities.html Resource - terraform-provider-ovh - title: cloud_project_database_capabilities.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_certificates.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_certificates.html Resource - terraform-provider-ovh - title: cloud_project_database_certificates.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_database.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_database.html Resource - terraform-provider-ovh - title: cloud_project_database_database.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_databases.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_databases.html Resource - terraform-provider-ovh - title: cloud_project_database_databases.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_integration.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_integration.html Resource - terraform-provider-ovh - title: cloud_project_database_integration.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_integrations.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_integrations.html Resource - terraform-provider-ovh - title: cloud_project_database_integrations.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_ip_restriction.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_ip_restriction.html Resource - terraform-provider-ovh - title: cloud_project_database_ip_restriction.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_ip_restrictions.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_ip_restrictions.html Resource - terraform-provider-ovh - title: cloud_project_database_ip_restrictions.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_acl.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_acl.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_acl.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_acls.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_acls.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_acls.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_schemaregistryacl.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_schemaregistryacl.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_schemaregistryacl.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_schemaregistryacls.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_schemaregistryacls.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_schemaregistryacls.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_topic.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_topic.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_topic.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_topics.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_topics.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_topics.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_kafka_user_access.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_kafka_user_access.html Resource - terraform-provider-ovh - title: cloud_project_database_kafka_user_access.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_log_subscription.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_log_subscription.html Resource - terraform-provider-ovh - title: cloud_project_database_log_subscription.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_log_subscriptions.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_log_subscriptions.html Resource - terraform-provider-ovh - title: cloud_project_database_log_subscriptions.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_m3db_namespace.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_m3db_namespace.html Resource - terraform-provider-ovh - title: cloud_project_database_m3db_namespace.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_m3db_namespaces.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_m3db_namespaces.html Resource - terraform-provider-ovh - title: cloud_project_database_m3db_namespaces.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_m3db_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_m3db_user.html Resource - terraform-provider-ovh - title: cloud_project_database_m3db_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_mongodb_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_mongodb_user.html Resource - terraform-provider-ovh - title: cloud_project_database_mongodb_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_opensearch_pattern.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_opensearch_pattern.html Resource - terraform-provider-ovh - title: cloud_project_database_opensearch_pattern.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_opensearch_patterns.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_opensearch_patterns.html Resource - terraform-provider-ovh - title: cloud_project_database_opensearch_patterns.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_opensearch_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_opensearch_user.html Resource - terraform-provider-ovh - title: cloud_project_database_opensearch_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_postgresql_connection_pool.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_postgresql_connection_pool.html Resource - terraform-provider-ovh - title: cloud_project_database_postgresql_connection_pool.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_postgresql_connection_pools.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_postgresql_connection_pools.html Resource - terraform-provider-ovh - title: cloud_project_database_postgresql_connection_pools.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_postgresql_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_postgresql_user.html Resource - terraform-provider-ovh - title: cloud_project_database_postgresql_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_redis_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_redis_user.html Resource - terraform-provider-ovh - title: cloud_project_database_redis_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_user.html Resource - terraform-provider-ovh - title: cloud_project_database_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_database_users.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_database_users.html Resource - terraform-provider-ovh - title: cloud_project_database_users.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_databases.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_databases.html Resource - terraform-provider-ovh - title: cloud_project_databases.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_failover_ip_attach.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_failover_ip_attach.html Resource - terraform-provider-ovh - title: cloud_project_failover_ip_attach.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_gateway.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_gateway.html Resource - terraform-provider-ovh - title: cloud_project_gateway.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_gateway_interface.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_gateway_interface.html Resource - terraform-provider-ovh - title: cloud_project_gateway_interface.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube.html Resource - terraform-provider-ovh - title: cloud_project_kube.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube_iprestrictions.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube_iprestrictions.html Resource - terraform-provider-ovh - title: cloud_project_kube_iprestrictions.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube_nodepool.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube_nodepool.html Resource - terraform-provider-ovh - title: cloud_project_kube_nodepool.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube_nodepool_nodes.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube_nodepool_nodes.html Resource - terraform-provider-ovh - title: cloud_project_kube_nodepool_nodes.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube_nodes.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube_nodes.html Resource - terraform-provider-ovh - title: cloud_project_kube_nodes.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_kube_oidc.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_kube_oidc.html Resource - terraform-provider-ovh - title: cloud_project_kube_oidc.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_loadbalancer.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_loadbalancer.html Resource - terraform-provider-ovh - title: cloud_project_loadbalancer.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_loadbalancers.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_loadbalancers.html Resource - terraform-provider-ovh - title: cloud_project_loadbalancers.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_network_private.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_network_private.html Resource - terraform-provider-ovh - title: cloud_project_network_private.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_network_private_subnet.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_network_private_subnet.html Resource - terraform-provider-ovh - title: cloud_project_network_private_subnet.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_region.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_region.html Resource - terraform-provider-ovh - title: cloud_project_region.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_region_loadbalancer_log_subscription Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_region_loadbalancer_log_subscription Resource - terraform-provider-ovh - title: cloud_project_region_loadbalancer_log_subscription Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_region_loadbalancer_log_subscriptions Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_region_loadbalancer_log_subscriptions Resource - terraform-provider-ovh - title: cloud_project_region_loadbalancer_log_subscriptions Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_region_storage_presign.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_region_storage_presign.html Resource - terraform-provider-ovh - title: cloud_project_region_storage_presign.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_regions.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_regions.html Resource - terraform-provider-ovh - title: cloud_project_regions.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_user.html Resource - terraform-provider-ovh - title: cloud_project_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_user_s3_credential.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_user_s3_credential.html Resource - terraform-provider-ovh - title: cloud_project_user_s3_credential.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_user_s3_credentials.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_user_s3_credentials.html Resource - terraform-provider-ovh - title: cloud_project_user_s3_credentials.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_user_s3_policy.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_user_s3_policy.html Resource - terraform-provider-ovh - title: cloud_project_user_s3_policy.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_users.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_users.html Resource - terraform-provider-ovh - title: cloud_project_users.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_vrack.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_vrack.html Resource - terraform-provider-ovh - title: cloud_project_vrack.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_project_workflow_backup.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_project_workflow_backup.html Resource - terraform-provider-ovh - title: cloud_project_workflow_backup.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - cloud_projects.html Resource - terraform-provider-ovh: - subCategory: "" - name: cloud_projects.html Resource - terraform-provider-ovh - title: cloud_projects.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_cluster.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_cluster.html Resource - terraform-provider-ovh - title: dbaas_logs_cluster.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_cluster_retention.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_cluster_retention.html Resource - terraform-provider-ovh - title: dbaas_logs_cluster_retention.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_clusters.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_clusters.html Resource - terraform-provider-ovh - title: dbaas_logs_clusters.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_input.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_input.html Resource - terraform-provider-ovh - title: dbaas_logs_input.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_input_engine.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_input_engine.html Resource - terraform-provider-ovh - title: dbaas_logs_input_engine.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_output_graylog_stream.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_output_graylog_stream.html Resource - terraform-provider-ovh - title: dbaas_logs_output_graylog_stream.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dbaas_logs_token.html Resource - terraform-provider-ovh: - subCategory: "" - name: dbaas_logs_token.html Resource - terraform-provider-ovh - title: dbaas_logs_token.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_ceph.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_ceph.html Resource - terraform-provider-ovh - title: dedicated_ceph.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_ceph_acl Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_ceph_acl Resource - terraform-provider-ovh - title: dedicated_ceph_acl Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_installation_template.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_installation_template.html Resource - terraform-provider-ovh - title: dedicated_installation_template.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_installation_templates.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_installation_templates.html Resource - terraform-provider-ovh - title: dedicated_installation_templates.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_nasha.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_nasha.html Resource - terraform-provider-ovh - title: dedicated_nasha.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_nasha_partition Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_nasha_partition Resource - terraform-provider-ovh - title: dedicated_nasha_partition Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_nasha_partition_access Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_nasha_partition_access Resource - terraform-provider-ovh - title: dedicated_nasha_partition_access Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_nasha_partition_snapshot Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_nasha_partition_snapshot Resource - terraform-provider-ovh - title: dedicated_nasha_partition_snapshot Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server.html Resource - terraform-provider-ovh - title: dedicated_server.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_boots.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_boots.html Resource - terraform-provider-ovh - title: dedicated_server_boots.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_install_task.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_install_task.html Resource - terraform-provider-ovh - title: dedicated_server_install_task.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_reboot_task.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_reboot_task.html Resource - terraform-provider-ovh - title: dedicated_server_reboot_task.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_specifications_hardware.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_specifications_hardware.html Resource - terraform-provider-ovh - title: dedicated_server_specifications_hardware.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_specifications_network.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_specifications_network.html Resource - terraform-provider-ovh - title: dedicated_server_specifications_network.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_server_update.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_server_update.html Resource - terraform-provider-ovh - title: dedicated_server_update.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - dedicated_servers.html Resource - terraform-provider-ovh: - subCategory: "" - name: dedicated_servers.html Resource - terraform-provider-ovh - title: dedicated_servers.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - domain_zone.html Resource - terraform-provider-ovh: - subCategory: "" - name: domain_zone.html Resource - terraform-provider-ovh - title: domain_zone.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - domain_zone_dnssec.html Resource - terraform-provider-ovh: - subCategory: "" - name: domain_zone_dnssec.html Resource - terraform-provider-ovh - title: domain_zone_dnssec.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - hosting_privatedatabase.html Resource - terraform-provider-ovh: - subCategory: "" - name: hosting_privatedatabase.html Resource - terraform-provider-ovh - title: hosting_privatedatabase.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - hosting_privatedatabase_database.html Resource - terraform-provider-ovh: - subCategory: "" - name: hosting_privatedatabase_database.html Resource - terraform-provider-ovh - title: hosting_privatedatabase_database.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - hosting_privatedatabase_user.html Resource - terraform-provider-ovh: - subCategory: "" - name: hosting_privatedatabase_user.html Resource - terraform-provider-ovh - title: hosting_privatedatabase_user.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - hosting_privatedatabase_user_grant.html Resource - terraform-provider-ovh: - subCategory: "" - name: hosting_privatedatabase_user_grant.html Resource - terraform-provider-ovh - title: hosting_privatedatabase_user_grant.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - hosting_privatedatabase_whitelist.html Resource - terraform-provider-ovh: - subCategory: "" - name: hosting_privatedatabase_whitelist.html Resource - terraform-provider-ovh - title: hosting_privatedatabase_whitelist.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_permissions_group.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_permissions_group.html Resource - terraform-provider-ovh - title: iam_permissions_group.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_permissions_groups Resource - terraform-provider-ovh: - subCategory: "" - name: iam_permissions_groups Resource - terraform-provider-ovh - title: iam_permissions_groups Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_policies.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_policies.html Resource - terraform-provider-ovh - title: iam_policies.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_policy.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_policy.html Resource - terraform-provider-ovh - title: iam_policy.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_reference_actions.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_reference_actions.html Resource - terraform-provider-ovh - title: iam_reference_actions.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_reference_resource_type Resource - terraform-provider-ovh: - subCategory: "" - name: iam_reference_resource_type Resource - terraform-provider-ovh - title: iam_reference_resource_type Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_resource_group.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_resource_group.html Resource - terraform-provider-ovh - title: iam_resource_group.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iam_resource_groups.html Resource - terraform-provider-ovh: - subCategory: "" - name: iam_resource_groups.html Resource - terraform-provider-ovh - title: iam_resource_groups.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_firewall.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_firewall.html Resource - terraform-provider-ovh - title: ip_firewall.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_firewall_rule.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_firewall_rule.html Resource - terraform-provider-ovh - title: ip_firewall_rule.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_mitigation.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_mitigation.html Resource - terraform-provider-ovh - title: ip_mitigation.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_move.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_move.html Resource - terraform-provider-ovh - title: ip_move.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_reverse.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_reverse.html Resource - terraform-provider-ovh - title: ip_reverse.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - ip_service.html Resource - terraform-provider-ovh: - subCategory: "" - name: ip_service.html Resource - terraform-provider-ovh - title: ip_service.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iploadbalancing.html Resource - terraform-provider-ovh: - subCategory: "" - name: iploadbalancing.html Resource - terraform-provider-ovh - title: iploadbalancing.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iploadbalancing_http_farm.html Resource - terraform-provider-ovh: - subCategory: "" - name: iploadbalancing_http_farm.html Resource - terraform-provider-ovh - title: iploadbalancing_http_farm.html Resource - terraform-provider-ovh - argumentDocs: {} - importStatements: [] - iploadbalancing_http_farm_server.html Resource - terraform-provider-ovh: - subCategory: "" - name: iploadbalancing_http_farm_server.html Resource - terraform-provider-ovh - title: iploadbalancing_http_farm_server.html Resource - terraform-provider-ovh - argumentDocs: {} + cloud_project.html.markdown: + subCategory: Cloud Project + description: 'cloud_project.html.markdownsubcategory: "Cloud Project"' + name: cloud_project.html.markdown + title: cloud_project.html.markdown + argumentDocs: + access: '- project access right for the identity that trigger the terraform script.' + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + date: '- date' + description: '- A description associated with the user.' + details: '- Information about a Bill entry' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + label: '- (Required) Identifier of the resource' + order: '- Details about the order that was used to create the public cloud project' + order_detail_id: '- order detail id' + order_id: '- order id, the same as the id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code. This value must be adapted depending on your OVH_ENDPOINT value. It''s project.2018 for ovh-{eu,ca} and project when using ovh-us.' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + project_id: '- openstack project id' + project_name: '- openstack project name' + quantity: '- quantity' + status: '- project status' + urn: '- The URN of the cloud project' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + cloud_project_alerting.html.markdown: + subCategory: "" + description: 'cloud_project_alerting.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_alerting.html.markdown + title: cloud_project_alerting.html.markdown + argumentDocs: + creationDate: '- Alerting creation date' + currency_code: '- Currency of the monthly threshold' + delay: '- Delay between two alerts in seconds' + email: '- Email to contact' + formatted_monthly_threshold: '- Formatted monthly threshold for this alerting' + id: '- Alert ID' + monthly_threshold: '- Monthly threshold for this alerting in currency' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + text: ': Text representation of the monthly threshold' + value: ': Value of the monthly threshold' + importStatements: [] + cloud_project_capabilities_containerregistry.html.markdown: + subCategory: "" + description: 'cloud_project_capabilities_containerregistry.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_capabilities_containerregistry.html.markdown + title: cloud_project_capabilities_containerregistry.html.markdown + argumentDocs: + code: '- Plan code from the catalog' + created_at: '- Plan creation date' + features: '- Features of the plan' + id: '- Plan ID' + image_storage: '- Docker image storage limits in bytes' + name: '- Plan name' + parallel_request: '- Parallel requests on Docker image API (/v2 Docker registry API)' + plans: '- Available plans in the region' + region_name: '- The region name' + registry_limits: '- Container registry limits' + result: '- List of container registry capability for a single region' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + updated_at: '- Plan last update date' + vulnerability: '- Vulnerability scanning' + importStatements: [] + cloud_project_capabilities_containerregistry_filter.html.markdown: + subCategory: "" + description: 'cloud_project_capabilities_containerregistry_filter.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_capabilities_containerregistry_filter.html.markdown + title: cloud_project_capabilities_containerregistry_filter.html.markdown + argumentDocs: + code: '- Plan code from the catalog' + created_at: '- Plan creation date' + features: '- Features of the plan' + id: '- Plan ID' + image_storage: '- Docker image storage limits in bytes' + name: '- Plan name' + parallel_request: '- Parallel requests on Docker image API (/v2 Docker registry API)' + plan_name: '- The plan name. It can be ''SMALL'', ''MEDIUM'' or ''LARGE''.' + region: '- The region name' + registry_limits: '- Container registry limits' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + updated_at: '- Plan last update date' + vulnerability: '- Vulnerability scanning' + importStatements: [] + cloud_project_containerregistries.html.markdown: + subCategory: "" + description: 'cloud_project_containerregistries.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistries.html.markdown + title: cloud_project_containerregistries.html.markdown + argumentDocs: + created_at: '- Registry creation date' + id: '- Registry ID' + name: '- Registry name' + project_id: '- Project ID of your registry' + region: '- Region of the registry' + result: '- The list of container registries associated with the project.' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + size: '- Current size of the registry (bytes)' + status: '- Registry status' + updated_at: '- Registry last update date' + url: '- Access url of the registry' + version: '- Version of your registry' + importStatements: [] + cloud_project_containerregistry.html.markdown: + subCategory: "" + description: 'cloud_project_containerregistry.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry.html.markdown + title: cloud_project_containerregistry.html.markdown + argumentDocs: + code: '- Plan code from the catalog' + created_at: '- Registry creation date' + features: '- Features of the plan' + id: '- Registry ID' + image_storage: '- Docker image storage limits in bytes' + name: '- Registry name' + parallel_request: '- Parallel requests on Docker image API (/v2 Docker registry API)' + plan: '- Plan of the registry' + plan_id: '- Plan ID of the registry' + project_id: '- Project ID of your registry' + region: '- Region of the registry' + registry_limits: '- Container registry limits' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + size: '- Current size of the registry (bytes)' + status: '- Registry status' + updated_at: '- Plan last update date' + url: '- Access url of the registry' + version: '- Version of your registry' + vulnerability: '- Vulnerability scanning' + importStatements: [] + cloud_project_containerregistry_ip_restrictions_management.html.markdown: + subCategory: "" + description: 'cloud_project_containerregistry_ip_restrictions_management.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry_ip_restrictions_management.html.markdown + title: cloud_project_containerregistry_ip_restrictions_management.html.markdown + argumentDocs: + description: '- The Description of Whitelisted IpBlock.' + ip_block: '- Whitelisted IpBlock (CIDR format).' + ip_restrictions: '- IP restrictions applied on Harbor UI and API.' + registry_id: '- The id of the Managed Private Registry.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' importStatements: [] - iploadbalancing_http_frontend.html Resource - terraform-provider-ovh: + cloud_project_containerregistry_ip_restrictions_registry.html.markdown: subCategory: "" - name: iploadbalancing_http_frontend.html Resource - terraform-provider-ovh - title: iploadbalancing_http_frontend.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_containerregistry_ip_restrictions_registry.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry_ip_restrictions_registry.html.markdown + title: cloud_project_containerregistry_ip_restrictions_registry.html.markdown + argumentDocs: + description: '- The Description of Whitelisted IpBlock.' + ip_block: '- Whitelisted IpBlock (CIDR format).' + ip_restrictions: '- IP restrictions applied on artifact manager component.' + registry_id: '- The id of the Managed Private Registry.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' importStatements: [] - iploadbalancing_http_route.html Resource - terraform-provider-ovh: + cloud_project_containerregistry_oidc.html.markdown: subCategory: "" - name: iploadbalancing_http_route.html Resource - terraform-provider-ovh - title: iploadbalancing_http_route.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_containerregistry_oidc.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry_oidc.html.markdown + title: cloud_project_containerregistry_oidc.html.markdown + argumentDocs: + create: '- (Default 10m)' + delete: '- (Default 10m)' + delete_users: '- Delete existing users from Harbor. OIDC can''t be enabled if there is at least one user already created. This parameter is only used at OIDC configuration creation. Changing this value recreates the resource.' + oidc_admin_group: '- Specify an OIDC admin group name. All OIDC users in this group will have harbor admin privilege. Keep it blank if you do not want to.' + oidc_auto_onboard: '- Skip the onboarding screen, so user cannot change its username. Username is provided from ID Token.' + oidc_client_id: '- The client ID with which Harbor is registered as client application with the OIDC provider.' + oidc_client_secret: '- The secret for the Harbor client application.' + oidc_endpoint: '- The URL of an OIDC-compliant server.' + oidc_groups_claim: '- The name of Claim in the ID token whose value is the list of group names.' + oidc_name: '- The name of the OIDC provider.' + oidc_scope: '- The scope sent to OIDC server during authentication. It''s a comma-separated string that must contain ''openid'' and usually also contains ''profile'' and ''email''. To obtain refresh tokens it should also contain ''offline_access''.' + oidc_user_claim: '- The name of the claim in the ID Token where the username is retrieved from. If not specified, it will default to ''name'' (only useful when automatic Onboarding is enabled).' + oidc_verify_cert: '- Set it to false if your OIDC server is hosted via self-signed certificate.' + registry_id: '- The ID of the Managed Private Registry. Changing this value recreates the resource.' + service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 10m)' + importStatements: [] + cloud_project_containerregistry_user.html.markdown: + subCategory: "" + description: 'cloud_project_containerregistry_user.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry_user.html.markdown + title: cloud_project_containerregistry_user.html.markdown + argumentDocs: + email: '- User email' + id: '- User ID' + password: '- (Sensitive) User password' + registry_id: '- Registry ID' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user: '- User name' + importStatements: [] + cloud_project_containerregistry_users.html.markdown: + subCategory: "" + description: 'cloud_project_containerregistry_users.html.markdownsubcategory : "Managed Private Registry"' + name: cloud_project_containerregistry_users.html.markdown + title: cloud_project_containerregistry_users.html.markdown + argumentDocs: + email: '- User email' + id: '- User ID' + registry_id: '- Registry ID' + result: '- The list of users of the container registry associated with the project.' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user: '- User name' + importStatements: [] + cloud_project_database.html.markdown: + subCategory: "" + description: 'cloud_project_database.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database.html.markdown + title: cloud_project_database.html.markdown + argumentDocs: + advanced_configuration: '- (Optional) Advanced configuration key / value.' + backup_regions: '- 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' + backup_time: '- Time on which backups start every day (this parameter is not usable on the following engines: "m3db", "grafana", "kafka", "kafkaconnect", "kafkamirrormaker", "opensearch", "m3aggregator").' + component: '- Type of component the URI relates to.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the cluster.' + delete: '- (Default 20m)' + description: '- (Optional) Small description of the database service.' + disk_size: '- (Optional) The disk size (in GB) of the database service.' + disk_type: '- Defines the disk type of the database service.' + domain: '- Domain of the cluster.' + endpoints: '- List of all endpoints objects of the service.' + engine: |- + - (Required, Forces new resource) The database engine you want to deploy. To get a full list of available engine visit. + public documentation. + flavor: |- + - (Required) A valid OVHcloud public cloud database flavor name in which the nodes will be started. + Ex: "db1-7". Changing this value upgrade the nodes with the new flavor. + You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ + id: '- Public Cloud Database Service ID' + ip: '- (Optional) Authorized IP' + ip_restrictions: '- (Optional) IP Blocks authorized to access to the cluster.' + kafka_rest_api: '- (Optional) Defines whether the REST API is enabled on a kafka cluster' + kafka_schema_registry: '- (Optional) Defines whether the schema registry is enabled on a Kafka cluster' + maintenance_time: '- Time on which maintenances can start every day.' + network_id: '- (Optional, Forces new resource) Private network id in which the node should be deployed. It''s the regional openstackId of the private network' + network_type: '- Type of network of the cluster.' + nodes: |- + - (Required, Minimum Items: 1) List of nodes object. + Multi region cluster are not yet available, all node should be identical. + opensearch_acls_enabled: '- (Optional) Defines whether the ACLs are enabled on an OpenSearch cluster' + path: '- Path of the endpoint.' + plan: '- (Required) Plan of the cluster.' + port: '- Connection port for the endpoint.' + region: |- + - (Required, Forces new resource) Public cloud region in which the node should be deployed. + Ex: "GRA'. + scheme: '- Scheme used to generate the URI.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + ssl: '- Defines whether the endpoint uses SSL.' + ssl_mode: '- SSL mode used to connect to the service if the SSL is enabled.' + status: '- Current status of the IP restriction.' + subnet_id: '- (Optional, Forces new resource) Private subnet ID in which the node is.' + update: '- (Default 40m)' + uri: '- URI of the endpoint.' + version: '- (Required) The version of the engine in which the service should be deployed' + importStatements: [] + cloud_project_database_capabilities.html.markdown: + subCategory: "" + description: 'cloud_project_database_capabilities.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_capabilities.html.markdown + title: cloud_project_database_capabilities.html.markdown + argumentDocs: + backup_retention: '- Automatic backup retention duration.' + core: '- Flavor core number.' + default_version: '- Default version used for the engine.' + description: '- Description of the engine.' + engines: '- Database engines available.' + flavors: '- Flavors available.' + memory: '- Flavor ram size in GB.' + name: '- Engine name.' + options: '- Options available.' + plans: '- Plans available.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + ssl_modes: '- SSL modes for this engine.' + storage: '- Flavor disk size in GB.' + type: '- Type of the option.' + versions: '- Versions available for this engine.' + importStatements: [] + cloud_project_database_certificates.html.markdown: + subCategory: "" + description: 'cloud_project_database_certificates.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_certificates.html.markdown + title: cloud_project_database_certificates.html.markdown + argumentDocs: + ca: '- CA certificate used for the service.' + cluster_id: '- (Required) Cluster ID' + engine: |- + - (Required) The engine of the database cluster you want database information. To get a full list of available engine visit: + public documentation. + Available engines: + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_database.html.markdown: + subCategory: "" + description: 'cloud_project_database_database.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_database.html.markdown + title: cloud_project_database_database.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + default: '- Defines if the database has been created by default.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + Available engines: + id: '- ID of the database.' + name: '- (Required, Forces new resource) Name of the database.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_databases.html.markdown: + subCategory: "" + description: 'cloud_project_database_databases.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_databases.html.markdown + title: cloud_project_database_databases.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + database_ids: '- The list of databases ids of the database cluster associated with the project.' + engine: |- + - (Required) The engine of the database cluster you want to list databases. To get a full list of available engine visit: + public documentation. + Available engines: + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_integration.html.markdown: + subCategory: "" + description: 'cloud_project_database_integration.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_integration.html.markdown + title: cloud_project_database_integration.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + destination_service_id: '- (Required, Forces new resource) ID of the destination service.' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + All engines available exept mongodb. + id: '- - ID of the integration.' + parameters: '- (Optional, Forces new resource) Parameters for the integration.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + source_service_id: '- (Required, Forces new resource) ID of the source service.' + status: '- Current status of the integration.' + type: |- + - (Optional, Forces new resource) Type of the integration. + Available types: + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_integrations.html.markdown: + subCategory: "" + description: 'cloud_project_database_integrations.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_integrations.html.markdown + title: cloud_project_database_integrations.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + engine: |- + - (Required) The engine of the database cluster you want to list integrations. To get a full list of available engine visit: + public documentation. + All engines available exept mongodb + integration_ids: '- The list of integrations ids of the database cluster associated with the project.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_ip_restriction.html.markdown: + subCategory: "" + description: 'cloud_project_database_ip_restriction.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_ip_restriction.html.markdown + title: cloud_project_database_ip_restriction.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + description: '- (Optional) Description of the IP restriction.' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add an IP restriction. To get a full list of available engine visit. + public documentation. + ip: '- (Required, Forces new resource) Authorized IP.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the IP restriction.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_ip_restrictions.html.markdown: + subCategory: "" + description: 'cloud_project_database_ip_restrictions.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_ip_restrictions.html.markdown + title: cloud_project_database_ip_restrictions.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + engine: |- + - (Required) The engine of the database cluster you want to list IP restrictions. To get a full list of available engine visit: + public documentation. + ips: '- The list of IP restriction of the database associated with the project.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_kafka_acl.html.markdown: + subCategory: "" + description: 'cloud_project_database_kafka_acl.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_acl.html.markdown + title: cloud_project_database_kafka_acl.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the ACL.' + permission: |- + - (Required, Forces new resource) Permission to give to this username on this topic. + Available permissions: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + topic: '- (Required, Forces new resource) Topic affected by this ACL.' + username: '- (Required, Forces new resource) Username affected by this ACL.' + importStatements: [] + cloud_project_database_kafka_acls.html.markdown: + subCategory: "" + description: 'cloud_project_database_kafka_acls.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_acls.html.markdown + title: cloud_project_database_kafka_acls.html.markdown + argumentDocs: + acl_ids: '- The list of ACLs ids of the kafka cluster associated with the project.' + cluster_id: '- (Required) Cluster ID' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - iploadbalancing_http_route_rule.html Resource - terraform-provider-ovh: + cloud_project_database_kafka_schemaregistryacl.html.markdown: subCategory: "" - name: iploadbalancing_http_route_rule.html Resource - terraform-provider-ovh - title: iploadbalancing_http_route_rule.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_kafka_schemaregistryacl.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_schemaregistryacl.html.markdown + title: cloud_project_database_kafka_schemaregistryacl.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the ACL.' + permission: |- + - (Required, Forces new resource) Permission to give to this username on this resource. + Available permissions: + resource: '- (Required, Forces new resource) Resource affected by this schema registry ACL.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + username: '- (Required, Forces new resource) Username affected by this schema registry ACL.' + importStatements: [] + cloud_project_database_kafka_schemaregistryacls.html.markdown: + subCategory: "" + description: 'cloud_project_database_kafka_schemaregistryacls.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_schemaregistryacls.html.markdown + title: cloud_project_database_kafka_schemaregistryacls.html.markdown + argumentDocs: + acl_ids: '- The list of schema refistry ACLs ids of the kafka cluster associated with the project.' + cluster_id: '- (Required) Cluster ID' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - iploadbalancing_refresh.html Resource - terraform-provider-ovh: + cloud_project_database_kafka_topic.html.markdown: subCategory: "" - name: iploadbalancing_refresh.html Resource - terraform-provider-ovh - title: iploadbalancing_refresh.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_kafka_topic.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_topic.html.markdown + title: cloud_project_database_kafka_topic.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the topic.' + min_insync_replicas: '- (Optional, Forces new resource) Minimum insync replica accepted for this topic. Should be superior to 0' + name: '- (Required, Forces new resource) Name of the topic. No spaces allowed.' + partitions: '- (Optional, Forces new resource) Number of partitions for this topic. Should be superior to 0' + replication: '- (Optional, Forces new resource) Number of replication for this topic. Should be superior to 1' + retention_bytes: '- (Optional, Forces new resource) Number of bytes for the retention of the data for this topic. Inferior to 0 means unlimited' + retention_hours: '- (Optional, Forces new resource) Number of hours for the retention of the data for this topic. Should be superior to -2. Inferior to 0 means unlimited' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_kafka_topics.html.markdown: + subCategory: "" + description: 'cloud_project_database_kafka_topics.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_topics.html.markdown + title: cloud_project_database_kafka_topics.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + topic_ids: '- The list of topics ids of the kafka cluster associated with the project.' importStatements: [] - iploadbalancing_tcp_farm.html Resource - terraform-provider-ovh: + cloud_project_database_kafka_user_access.html.markdown: subCategory: "" - name: iploadbalancing_tcp_farm.html Resource - terraform-provider-ovh - title: iploadbalancing_tcp_farm.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_kafka_user_access.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_kafka_user_access.html.markdown + title: cloud_project_database_kafka_user_access.html.markdown + argumentDocs: + cert: '- User cert.' + cluster_id: '- (Required) Cluster ID' + key: '- (Sensitive) User key for the cert.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_id: '- (Required) User ID' + importStatements: [] + cloud_project_database_log_subscription.html.markdown: + subCategory: "" + description: 'cloud_project_database_log_subscription.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_log_subscription.html.markdown + title: cloud_project_database_log_subscription.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Creation date of the subscription.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The database engine for which you want to manage a subscription. To get a full list of available engine visit. + public documentation. + id: '- ID of the log subscription.' + kind: '- Log kind name of this subscription.' + ldp_service_name: '- Name of the destination log service.' + operation_id: '- Identifier of the operation.' + resource_name: '- Name of subscribed resource, where the logs come from.' + resource_type: '- Type of subscribed resource, where the logs come from.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + stream_id: '- (Required, Forces new resource) Id of the target Log data platform stream.' + update: '- (Default 20m)' + updated_at: '- Last update date of the subscription.' + importStatements: [] + cloud_project_database_log_subscriptions.html.markdown: + subCategory: "" + description: 'cloud_project_database_log_subscriptions.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_log_subscriptions.html.markdown + title: cloud_project_database_log_subscriptions.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID.' + engine: |- + - (Required) The database engine for which you want to retrieve a subscription. To get a full list of available engine visit. + public documentation. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + subscription_ids: '- The list of log subscription ids of the cluster associated with the project.' + importStatements: [] + cloud_project_database_m3db_namespace.html.markdown: + subCategory: "" + description: 'cloud_project_database_m3db_namespace.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_m3db_namespace.html.markdown + title: cloud_project_database_m3db_namespace.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the namespace.' + name: '- (Required, Forces new resource) Name of the namespace. A namespace named "default" is mapped with already created default namespace instead of creating a new namespace.' + resolution: '- (Optional) Resolution for an aggregated namespace. Should follow Rfc3339 e.g P2D, PT48H.' + retention_block_data_expiration_duration: '- (Optional) Controls how long we wait before expiring stale data. Should follow Rfc3339 e.g P2D, PT48H.' + retention_block_size_duration: '- (Optional, Forces new resource) Controls how long to keep a block in memory before flushing to a fileset on disk. Should follow Rfc3339 e.g P2D, PT48H.' + retention_buffer_future_duration: '- (Optional) Controls how far into the future writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' + retention_buffer_past_duration: '- (Optional) Controls how far into the past writes to the namespace will be accepted. Should follow Rfc3339 e.g P2D, PT48H.' + retention_period_duration: '- (Optional) Controls the duration of time that M3DB will retain data for the namespace. Should follow Rfc3339 e.g P2D, PT48H.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + snapshot_enabled: '- (Optional) Defines whether M3DB will create snapshot files for this namespace.' + type: '- Type of namespace.' + update: '- (Default 20m)' + writes_to_commit_log_enabled: '- (Optional) Defines whether M3DB will include writes to this namespace in the commit log.' + importStatements: [] + cloud_project_database_m3db_namespaces.html.markdown: + subCategory: "" + description: 'cloud_project_database_m3db_namespaces.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_m3db_namespaces.html.markdown + title: cloud_project_database_m3db_namespaces.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + namespace_ids: '- The list of namespaces ids of the M3DB cluster associated with the project.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - iploadbalancing_tcp_farm_server.html Resource - terraform-provider-ovh: + cloud_project_database_m3db_user.html.markdown: subCategory: "" - name: iploadbalancing_tcp_farm_server.html Resource - terraform-provider-ovh - title: iploadbalancing_tcp_farm_server.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_m3db_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_m3db_user.html.markdown + title: cloud_project_database_m3db_user.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + group: '- (Optional) Group of the user:' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_mongodb_user.html.markdown: + subCategory: "" + description: 'cloud_project_database_mongodb_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_mongodb_user.html.markdown + title: cloud_project_database_mongodb_user.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "admin" is mapped with already created admin@admin user instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + roles: |- + - (Optional: if omit, default role) Roles the user belongs to. Since version 0.37.0, the authentication database must be indicated for all roles + Available roles: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_opensearch_pattern.html.markdown: + subCategory: "" + description: 'cloud_project_database_opensearch_pattern.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_opensearch_pattern.html.markdown + title: cloud_project_database_opensearch_pattern.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + delete: '- (Default 20m)' + id: '- ID of the pattern.' + max_index_count: '- (Optional, Forces new resource) Maximum number of index for this pattern.' + pattern: '- (Required, Forces new resource) Pattern format.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_database_opensearch_patterns.html.markdown: + subCategory: "" + description: 'cloud_project_database_opensearch_patterns.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_opensearch_patterns.html.markdown + title: cloud_project_database_opensearch_patterns.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + pattern_ids: '- The list of patterns ids of the opensearch cluster associated with the project.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - iploadbalancing_tcp_frontend.html Resource - terraform-provider-ovh: + cloud_project_database_opensearch_user.html.markdown: subCategory: "" - name: iploadbalancing_tcp_frontend.html Resource - terraform-provider-ovh - title: iploadbalancing_tcp_frontend.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_opensearch_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_opensearch_user.html.markdown + title: cloud_project_database_opensearch_user.html.markdown + argumentDocs: + acls: '- (Optional) Acls of the user.' + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + pattern: '- (Required) Pattern of the ACL.' + permission: |- + - (Required) Permission of the ACL + Available permission: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_postgresql_connection_pool.html.markdown: + subCategory: "" + description: 'cloud_project_database_postgresql_connection_pool.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_postgresql_connection_pool.html.markdown + title: cloud_project_database_postgresql_connection_pool.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + database_id: '- (Required, Forces new resource) Database ID for a database that belongs to the Database cluster given above.' + delete: '- (Default 20m)' + mode: |- + - (Required) Connection mode to the connection pool + Available modes: + name: '- (Required, Forces new resource) Name of the connection pool.' + port: '- Port of the connection pool.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + size: '- (Required) Size of the connection pool.' + ssl_mode: '- Ssl connection mode for the pool.' + update: '- (Default 20m)' + uri: '- Connection URI to the pool.' + user_id: '- (Optional) Database user authorized to connect to the pool, if none all the users are allowed.' + importStatements: [] + cloud_project_database_postgresql_connection_pools.html.markdown: + subCategory: "" + description: 'cloud_project_database_postgresql_connection_pools.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_postgresql_connection_pools.html.markdown + title: cloud_project_database_postgresql_connection_pools.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID.' + connection_pool_ids: '- The list of patterns ids of the opensearch cluster associated with the project.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. importStatements: [] - iploadbalancing_tcp_route.html Resource - terraform-provider-ovh: + cloud_project_database_postgresql_user.html.markdown: subCategory: "" - name: iploadbalancing_tcp_route.html Resource - terraform-provider-ovh - title: iploadbalancing_tcp_route.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_database_postgresql_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_postgresql_user.html.markdown + title: cloud_project_database_postgresql_user.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + roles: |- + - (Optional: if omit, default role) Roles the user belongs to. + Available roles: + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_redis_user.html.markdown: + subCategory: "" + description: 'cloud_project_database_redis_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_redis_user.html.markdown + title: cloud_project_database_redis_user.html.markdown + argumentDocs: + categories: '- (Optional) Categories of the user.' + channels: '- (Optional: if omit, all channels) Channels of the user.' + cluster_id: '- (Required, Forces new resource) Cluster ID.' + commands: '- (Optional) Commands of the user.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + id: '- ID of the user.' + keys: '- (Optional) Keys of the user.' + name: '- (Required, Forces new resource) Name of the user.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_user.html.markdown: + subCategory: "" + description: 'cloud_project_database_user.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_user.html.markdown + title: cloud_project_database_user.html.markdown + argumentDocs: + cluster_id: '- (Required, Forces new resource) Cluster ID.' + create: '- (Default 20m)' + created_at: '- Date of the creation of the user.' + delete: '- (Default 20m)' + engine: |- + - (Required, Forces new resource) The engine of the database cluster you want to add. You can find the complete list of available engine in the public documentation. + Available engines: + id: '- ID of the user.' + name: '- (Required, Forces new resource) Name of the user. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. The "Grafana" engine only allows the "avnadmin" mapping.' + password: '- (Sensitive) Password of the user.' + password_reset: '- (Optional) Arbitrary string to change to trigger a password update. Use the terraform refresh command after executing terraform apply to update the output with the new password.' + service_name: |- + - (Required, Forces new resource) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status of the user.' + update: '- (Default 20m)' + importStatements: [] + cloud_project_database_users.html.markdown: + subCategory: "" + description: 'cloud_project_database_users.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_database_users.html.markdown + title: cloud_project_database_users.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + engine: |- + - (Required) The engine of the database cluster you want to list users. To get a full list of available engine visit: + public documentation. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_ids: '- The list of users ids of the database cluster associated with the project.' + importStatements: [] + cloud_project_databases.html.markdown: + subCategory: "" + description: 'cloud_project_databases.html.markdownsubcategory : "Managed Databases"' + name: cloud_project_databases.html.markdown + title: cloud_project_databases.html.markdown + argumentDocs: + cluster_ids: '- The list of managed databases ids of the project.' + engine: |- + - (Required) The database engine you want to list. To get a full list of available engine visit: + public documentation. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_failover_ip_attach.html.markdown: + subCategory: "" + description: 'cloud_project_failover_ip_attach.html.markdownsubcategory : "Additional IP"' + name: cloud_project_failover_ip_attach.html.markdown + title: cloud_project_failover_ip_attach.html.markdown + argumentDocs: + block: '- The IP block' + continentCode: '- The Ip continent' + geoloc: '- The Ip location' + id: '- The Ip id' + ip: '- The failover ip address to attach' + progress: '- Current operation progress in percent' + routed_to: '- The GUID of an instance to which the failover IP address is be attached' + routedTo: '- Instance where ip is routed to' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Ip status, can be ok or operationPending' + subType: '- IP sub type, can be cloud or ovh' + importStatements: [] + cloud_project_gateway.html.markdown: + subCategory: Public Cloud Network + description: 'cloud_project_gateway.html.markdownsubcategory: "Public Cloud Network"' + name: cloud_project_gateway.html.markdown + title: cloud_project_gateway.html.markdown + argumentDocs: + external_information: '- List of External Information of the gateway.' + id: '- Identifier of the gateway.' + interfaces: '- Interfaces list of the gateway.' + ip: '- External IP of the gateway.' + ips: '- List of external ips of the gateway.' + model: '- (Required) Model of the gateway.' + name: '- (Required) Name of the gateway.' + network_id: '- (Required) ID of the private network.' + region: '- (Required) Region of the gateway.' + service_name: '- (Required) ID of the private network.' + status: '- Status of the gateway.' + subnet_id: '- (Required) ID of the subnet.' + importStatements: [] + cloud_project_gateway_interface.html.markdown: + subCategory: Public Cloud Network + description: 'cloud_project_gateway_interface.html.markdownsubcategory: "Public Cloud Network"' + name: cloud_project_gateway_interface.html.markdown + title: cloud_project_gateway_interface.html.markdown + argumentDocs: + id: '- (Required) ID of the gateway' + interface_id: '- ID of the interface' + ip: '- IP of the interface' + network_id: '- Network ID of the interface' + region: '- (Required) Region of the gateway' + service_name: '- (Required) ID of the cloud project' + subnet_id: '- (Required) ID of the subnet to add' + importStatements: [] + cloud_project_kube.html.markdown: + subCategory: "" + description: 'cloud_project_kube.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube.html.markdown + title: cloud_project_kube.html.markdown + argumentDocs: + admissionplugins: '- (Optional) Kubernetes API server admission plugins customization' + apiserver: '- Kubernetes API server customization' + client_certificate: '- The kubernetes API server client certificate.' + client_key: '- The kubernetes API server client key.' + cluster_ca_certificate: '- The kubernetes API server CA certificate.' + control_plane_is_up_to_date: '- True if control-plane is up-to-date.' + create: '- (Default 10m)' + customization: '- Deprecated (Optional) Use customization_apiserver and customization_kube_proxy instead. Kubernetes cluster customization' + customization_apiserver: '- Kubernetes API server customization' + customization_kube_proxy: '- Kubernetes kube-proxy customization' + default_vrack_gateway: '- If defined, all egress traffic will be routed towards this IP address, which should belong to the private network. Empty string means disabled.' + delete: '- (Default 10m)' + disabled: '- (Optional) Array of admission plugins disabled, default is [] and only AlwaysPulImages can be disabled at this time.' + enabled: '- (Optional) Array of admission plugins enabled, default is ["NodeRestriction","AlwaysPulImages"] and only these admission plugins can be enabled at this time.' + host: '- The kubernetes API server URL.' + id: '- Managed Kubernetes Service ID' + iptables: '- (Optional) Kubernetes cluster kube-proxy customization of iptables specific config (durations format is RFC3339 duration, e.g. PT60S)' + ipvs: '- (Optional) Kubernetes cluster kube-proxy customization of IPVS specific config (durations format is RFC3339 duration, e.g. PT60S)' + is_up_to_date: '- True if all nodes and control-plane are up-to-date.' + kube_proxy: '- Kubernetes kube-proxy customization' + kube_proxy_mode: '- (Optional) Selected mode for kube-proxy. Changing this value recreates the resource, including ETCD user data. Defaults to iptables.' + kubeconfig: '- The kubeconfig file. Use this file to connect to your kubernetes cluster.' + kubeconfig_attributes: '- The kubeconfig file attributes.' + load_balancers_subnet_id: '- (Optional) Subnet ID to use for Public Load Balancers, this subnet must belong to  private_network_id. Defaults to the same subnet as the nodes (see nodes_subnet_id). Requires private_network_id to be defined. See more network requirements in the documentation for more information.' + min_sync_period: '- (Optional) Period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S). Must be greater than 0.' + name: '- (Optional) The name of the kubernetes cluster.' + next_upgrade_versions: '- Kubernetes versions available for upgrade.' + nodes_subnet_id: '- (Optional) Subnet ID to use for nodes, this subnet must belong to private_network_id. Default uses the first subnet belonging to the private network with id private_network_id. This attribute requires private_network_id to be defined. Cannot be updated, it can only be used at cluster creation or reset.' + nodes_url: '- Cluster nodes URL.' + private_network_configuration: '- (Optional) The private network configuration. If this is set then the 2 parameters below shall be defined.' + private_network_id: '- (Optional) Private network 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.' + scheduler: '- (Optional) IPVS scheduler.' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + status: '- Cluster status. Should be normally set to ''READY''.' + sync_period: '- (Optional) Minimum period that iptables rules are refreshed, in RFC3339 duration format (e.g. PT60S).' + tcp_fin_timeout: '- (Optional) Timeout value used for IPVS TCP sessions after receiving a FIN in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + tcp_timeout: '- (Optional) Timeout value used for idle IPVS TCP sessions in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + udp_timeout: '- (Optional) timeout value used for IPVS UDP packets in RFC3339 duration (e.g. PT60S). The default value is PT0S, which preserves the current timeout value on the system.' + update: '- (Default 10m)' + update_policy: '- Cluster update policy. Choose between [ALWAYS_UPDATE, MINIMAL_DOWNTIME, NEVER_UPDATE].' + url: '- Management URL of your cluster.' + version: '- (Optional) kubernetes version to use. Changing this value updates the resource. Defaults to the latest available.' + importStatements: [] + cloud_project_kube_iprestrictions.html.markdown: + subCategory: "" + description: 'cloud_project_kube_iprestrictions.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube_iprestrictions.html.markdown + title: cloud_project_kube_iprestrictions.html.markdown + argumentDocs: + create: '- (Default 10m)' + delete: '- (Default 5m)' + ips: '- List of CIDR authorized to interact with the managed Kubernetes cluster.' + kube_id: '- The id of the managed Kubernetes cluster. Changing this value recreates the resource.' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 5m)' + importStatements: [] + cloud_project_kube_nodepool.html.markdown: + subCategory: "" + description: 'cloud_project_kube_nodepool.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube_nodepool.html.markdown + title: cloud_project_kube_nodepool.html.markdown + argumentDocs: + annotations: '- Annotations to apply to each node' + anti_affinity: '- (Optional) should the pool use the anti-affinity feature. Default to false. Changing this value recreates the resource.' + autoscale: '- (Optional) Enable auto-scaling for the pool. Default to false.' + autoscaling_scale_down_unneeded_time_seconds: |- + - (Optional) scaleDownUnneededTimeSeconds autoscaling parameter + How long a node should be unneeded before it is eligible for scale down + autoscaling_scale_down_unready_time_seconds: |- + - (Optional) scaleDownUnreadyTimeSeconds autoscaling parameter + How long an unready node should be unneeded before it is eligible for scale down + autoscaling_scale_down_utilization_threshold: |- + - (Optional) scaleDownUtilizationThreshold autoscaling parameter + Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down + available_nodes: '- Number of nodes which are actually ready in the pool' + create: '- (Default 20m)' + created_at: '- Creation date' + current_nodes: '- Number of nodes present in the pool' + delete: '- (Default 10m)' + desired_nodes: '- number of nodes to start.' + effect: '- mandatory possible values: NoExecute, NoSchedule, PreferNoSchedule' + finalizers: '- Finalizers to apply to each node. A finalizer name must be fully qualified, e.g. kubernetes.io/pv-protection , where you prefix it with hostname of your service which is related to the controller responsible for the finalizer.' + flavor: '- Flavor name' + flavor_name: |- + - a valid OVHcloud public cloud flavor ID in which the nodes will be started. Ex: "b2-7". You can find the list of flavor IDs: https://www.ovhcloud.com/fr/public-cloud/prices/. + Changing this value recreates the resource. + key: '- mandatory' + kube_id: '- The id of the managed kubernetes cluster. Changing this value recreates the resource.' + labels: '- Labels to apply to each node' + max_nodes: '- maximum number of nodes allowed in the pool. Setting desired_nodes over this value will raise an error.' + metadata: '- Metadata of each node in the pool' + min_nodes: '- minimum number of nodes allowed in the pool. Setting desired_nodes under this value will raise an error.' + monthly_billed: '- (Optional) should the nodes be billed on a monthly basis. Default to false. Changing this value recreates the resource.' + name: '- (Optional) The name of the nodepool. Warning: _ char is not allowed! Changing this value recreates the resource.' + project_id: '- Project id' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + size_status: '- Status describing the state between number of nodes wanted and available ones' + spec: '- Spec of each node in the pool' + status: '- Current status' + taints: '- Taints to apply to each node NodeSpec kubernetes documentation' + 'template ': '- (Optional) Managed Kubernetes nodepool template, which is a complex object constituted by two main nested objects:' + unschedulable: '- If true, set nodes as un-schedulable' + up_to_date_nodes: '- Number of nodes with the latest version installed in the pool' + update: '- (Default 10m)' + updated_at: '- Last update date' + value: '- (Optional)' + importStatements: [] + cloud_project_kube_nodepool_nodes.html.markdown: + subCategory: "" + description: 'cloud_project_kube_nodepool_nodes.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube_nodepool_nodes.html.markdown + title: cloud_project_kube_nodepool_nodes.html.markdown + argumentDocs: + created_at: '- Creation date.' + deployed_at: '- (Optional) Date of the effective deployment.' + flavor: '- Flavor name.' + id: '- ID of the node.' + instance_id: '- Openstack ID of the underlying VM of the node.' + is_up_to_date: '- Is the node in the target version of the cluster.' + kube_id: '- The ID of the managed kubernetes cluster.' + name: '- Name of the node pool from which we want the nodes.' + node_pool_id: '- Managed kubernetes node pool ID.' + nodes: '- List of all nodes composing the kubernetes cluster.' + project_id: '- Public cloud project ID.' + service_name: |- + - (Optional) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status.' + updated_at: '- Last update date.' + version: '- Version in which the node is.' + importStatements: [] + cloud_project_kube_nodes.html.markdown: + subCategory: "" + description: 'cloud_project_kube_nodes.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube_nodes.html.markdown + title: cloud_project_kube_nodes.html.markdown + argumentDocs: + created_at: '- Creation date' + deployed_at: '- (Optional) Date of the effective deployment' + flavor: '- Flavor name' + id: '- ID of the node' + instance_id: '- Openstack ID of the underlying VM of the node' + is_up_to_date: '- Is the node in the target version of the cluster' + kube_id: '- The ID of the managed kubernetes cluster.' + name: '- Name of the node' + node_pool_id: '- Managed kubernetes node pool ID' + nodes: '- List of all nodes composing the kubernetes cluster' + project_id: '- Public cloud project ID' + service_name: |- + - (Optional) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- Current status' + updated_at: '- Last update date' + version: '- Version in which the node is' + importStatements: [] + cloud_project_kube_oidc.html.markdown: + subCategory: "" + description: 'cloud_project_kube_oidc.html.markdownsubcategory : "Managed Kubernetes Service"' + name: cloud_project_kube_oidc.html.markdown + title: cloud_project_kube_oidc.html.markdown + argumentDocs: + client_id: '- The OIDC client ID.' + create: '- (Default 10m)' + delete: '- (Default 10m)' + issuer_url: '- The OIDC issuer url.' + kube_id: '- The ID of the managed kubernetes cluster. Changing this value recreates the resource.' + oidc_ca_content: '- Content of the certificate for the CA, in Base64 format, that signed your identity provider''s web certificate. Defaults to the host''s root CAs.' + oidc_groups_claim: '- Array of JWT claim to use as the user''s group. If the claim is present it must be an array of strings.' + oidc_groups_prefix: '- Prefix prepended to group claims to prevent clashes with existing names (such as system:groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra.' + oidc_required_claim: '- Array of key=value pairs that describe required claims in the ID Token. If set, the claims are verified to be present in the ID Token with a matching value."' + oidc_signing_algs: '- Array of signing algorithms accepted. Default is RS256.' + oidc_username_claim: '- JWT claim to use as the username. By default, sub, which is expected to be a unique identifier of the end user. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent naming clashes with other plugins.' + oidc_username_prefix: '- Prefix prepended to username claims to prevent clashes with existing names (such as system:users). For example, the value oidc: will create usernames like oidc:jane.doe. If this field isn''t set and oidc_username_claim is a value other than email the prefix defaults to issuer_url where issuer_url is the value of issuer_url. The value - can be used to disable all prefixing.' + service_name: '- The ID of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + update: '- (Default 10m)' + importStatements: [] + cloud_project_loadbalancer.html.markdown: + subCategory: "" + description: 'cloud_project_loadbalancer.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_loadbalancer.html.markdown + title: cloud_project_loadbalancer.html.markdown + argumentDocs: + created_at: '- Date of creation of the loadbalancer' + flavor_id: ': ID of the flavor' + floating_ip: ': Information about the floating IP' + id: ': (Required) ID of the loadbalancer' + ip: ': Value of the floating IP' + name: ': Name of the loadbalancer' + operating_status: ': Operating status of the loadbalancer' + provisioning_status: ': Provisioning status of the loadbalancer' + region_name: '- (Required) Region of the loadbalancer.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + updated_at: '- Last update date of the loadbalancer' + vip_address: ': IP address of the Virtual IP' + vip_network_id: ': Openstack ID of the network for the Virtual IP' + vip_subnet_id: ': ID of the subnet for the Virtual IP' + importStatements: [] + cloud_project_loadbalancers.html.markdown: + subCategory: "" + description: 'cloud_project_loadbalancers.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_loadbalancers.html.markdown + title: cloud_project_loadbalancers.html.markdown + argumentDocs: + created_at: '- Date of creation of the loadbalancer' + flavor_id: ': ID of the flavor' + floating_ip: ': Information about the floating IP' + id: ': ID of the loadbalancer' + ip: ': Value of the floating IP' + loadbalancers: '- List of loadbalancer' + name: ': Name of the loadbalancer' + operating_status: ': Operating status of the loadbalancer' + provisioning_status: ': Provisioning status of the loadbalancer' + region: '- Region of the loadbalancer' + region_name: '- (Required) Region of the loadbalancers.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + updated_at: '- Last update date of the loadbalancer' + vip_address: ': IP address of the Virtual IP' + vip_network_id: ': Openstack ID of the network for the Virtual IP' + vip_subnet_id: ': ID of the subnet for the Virtual IP' + importStatements: [] + cloud_project_network_private.html.markdown: + subCategory: "" + description: 'cloud_project_network_private.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_network_private.html.markdown + title: cloud_project_network_private.html.markdown + argumentDocs: + id: '- The id of the network' + name: '- (Required) The name of the network.' + regions: |- + - an array of valid OVHcloud public cloud region ID in which the network + will be available. Ex.: "GRA1". Defaults to all public cloud regions. + regions_attributes: '- A map representing information about the region.' + regions_attributes/openstackid: '- The private network id in the region.' + regions_attributes/region: '- The id of the region.' + regions_attributes/status: '- The status of the network in the region.' + regions_status: '- (Deprecated) A map representing the status of the network per region.' + regions_status/region: '- (Deprecated) The id of the region.' + regions_status/status: '- (Deprecated) The status of the network in the region.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- the status of the network. should be normally set to ''ACTIVE''.' + type: '- the type of the network. Either ''private'' or ''public''.' + vlan_id: |- + - a vlan id to associate with the network. + Changing this value recreates the resource. Defaults to 0. + importStatements: [] + cloud_project_network_private_subnet.html.markdown: + subCategory: "" + description: 'cloud_project_network_private_subnet.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_network_private_subnet.html.markdown + title: cloud_project_network_private_subnet.html.markdown + argumentDocs: + cidr: '- Ip Block representing the subnet cidr.' + dhcp: |- + - (Optional) Enable DHCP. + Changing this forces a new resource to be created. Defaults to false. + dhcp_id: '- See Argument Reference above.' + end: |- + - (Required) Last ip for this region. + Changing this value recreates the subnet. + gateway_ip: '- The IP of the gateway' + ip_pools: '- List of ip pools allocated in the subnet.' + ip_pools/dhcp: '- DHCP enabled.' + ip_pools/end: '- Last ip for this region.' + ip_pools/network: '- Global network with cidr.' + ip_pools/region: '- Region where this subnet is created.' + ip_pools/start: '- First ip for this region.' + network: |- + - (Required) Global network in CIDR format. + Changing this value recreates the subnet + network_id: |- + - (Required) The id of the network. + Changing this forces a new resource to be created. + no_gateway: |- + - Set to true if you don't want to set a default gateway IP. + Changing this value recreates the resource. Defaults to false. + region: |- + - The region in which the network subnet will be created. + Ex.: "GRA1". Changing this value recreates the resource. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + start: |- + - (Required) First ip for this region. + Changing this value recreates the subnet. + importStatements: [] + cloud_project_network_private_subnet_v2.html.markdown: + subCategory: "" + description: 'cloud_project_network_private_subnet_v2.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_network_private_subnet_v2.html.markdown + title: cloud_project_network_private_subnet_v2.html.markdown + argumentDocs: + allocation_pools: |- + - List of IP allocation pools + Changing this value recreates the resource. + cidr: |- + - (Required) IP range of the subnet + Changing this value recreates the subnet. + dhcp: |- + - (Optional) Enable DHCP. + Changing this forces a new resource to be created. Defaults to true. + dns_nameservers: |- + - DNS nameservers used by DHCP + Changing this value recreates the resource. Defaults to OVH default DNS nameserver. + enable_gateway_ip: |- + - Set to true if you want to set a default gateway IP. + Changing this value recreates the resource. Defaults to true. + gateway_ip: '- See Argument Reference above.' + host_routes: |- + - List of custom host routes. + Changing this value recreates the resource. + name: |- + - (Required) Name of the subnet + Changing this value recreates the subnet. + network_id: |- + - (Required) The id of the network. + Changing this forces a new resource to be created. + region: |- + - (Required) The region in which the network subnet will be created. + Ex.: "GRA1". Changing this value recreates the resource. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_network_private_subnets.html.markdown: + subCategory: "" + description: 'cloud_project_network_private_subnets.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_network_private_subnets.html.markdown + title: cloud_project_network_private_subnets.html.markdown + argumentDocs: + cidr: '- CIDR of the subnet' + dhcp: '- Whether or not if DHCP is enabled' + dhcp_enabled: '- Whether or not if DHCP is enabled for the subnet' + end: '- Last IP for this region (eg: 192.168.1.24)' + gateway_ip: '- Gateway IP of the subnet' + id: '- ID of the subnet' + ip_pools: '- List of ip pools allocated in the subnet' + network: '- Global network with cidr (eg: 192.168.1.0/24)' + network_id: ': (Required) ID of the network' + region: '- Region associated to the subnet' + service_name: '- (Required) The ID of the public cloud project.' + start: '- First IP for this region (eg: 192.168.1.12)' + subnets: '- List of subnets' + importStatements: [] + cloud_project_network_privates.html.markdown: + subCategory: "" + description: 'cloud_project_network_privates.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_network_privates.html.markdown + title: cloud_project_network_privates.html.markdown + argumentDocs: + id: '- ID of the network' + name: '- Name of the network' + networks: '- List of network' + openstack_id: '- Network ID on openstack region' + region: '- Name of the region' + regions: '- Information about the private network in the openstack region' + service_name: '- (Required) The ID of the public cloud project.' + status: '- Status of the network' + type: '- Type of the network' + vlan_id: '- VLAN ID of the network' + importStatements: [] + cloud_project_region.html.markdown: + subCategory: "" + description: 'cloud_project_region.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_region.html.markdown + title: cloud_project_region.html.markdown + argumentDocs: + continent_code: |- + - the code of the geographic continent the region is running. + E.g.: EU for Europe, US for America... + datacenter_location: |- + - The location code of the datacenter. + E.g.: "GRA", meaning Gravelines, for region "GRA1" + name: |- + - (Required) The name of the region associated with the public cloud + project. + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + services: '- The list of public cloud services running within the region' + status: '- the status of the service' + importStatements: [] + cloud_project_region_loadbalancer_log_subscription.markdown: + subCategory: "" + description: 'cloud_project_region_loadbalancer_log_subscription.markdownsubcategory : "Log Subscriptions"' + name: cloud_project_region_loadbalancer_log_subscription.markdown + title: cloud_project_region_loadbalancer_log_subscription.markdown + argumentDocs: + created_at: '- The date of the subscription creation' + kind: '- haproxy Changing this value recreates the resource.' + ldp_service_name: '- LDP service name' + loadbalancer_id: '- Loadbalancer id to get the logs Changing this value recreates the resource.' + operation_id: '- The operation ID' + region_name: '- A valid OVHcloud public cloud region name in which the loadbalancer will be available. Ex.: "GRA11". Changing this value recreates the resource.' + resource_name: '- The resource name' + resource_type: '- The resource type' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used. Changing this value recreates the resource.' + stream_id: '- Data stream id to use for the subscription Changing this value recreates the resource.' + subscription_id: '- The subscription id' + updated_at: '- The last update of the subscription' + importStatements: [] + cloud_project_region_loadbalancer_log_subscriptions.markdown: + subCategory: "" + description: 'cloud_project_region_loadbalancer_log_subscriptions.markdownsubcategory : "Log Subscriptions"' + name: cloud_project_region_loadbalancer_log_subscriptions.markdown + title: cloud_project_region_loadbalancer_log_subscriptions.markdown + argumentDocs: + kind: '- (Optional) currently only "haproxy" is available' + loadbalancer_id: '- Loadbalancer id to get the logs' + region_name: '- A valid OVHcloud public cloud region name in which the loadbalancer is available. Ex.: "GRA11".' + service_name: '- The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + subscription_ids: '- The list of the subscription id' importStatements: [] - iploadbalancing_tcp_route_rule.html Resource - terraform-provider-ovh: + cloud_project_region_storage_presign.html.markdown: subCategory: "" - name: iploadbalancing_tcp_route_rule.html Resource - terraform-provider-ovh - title: iploadbalancing_tcp_route_rule.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_region_storage_presign.html.markdownsubcategory : "Object Storage"' + name: cloud_project_region_storage_presign.html.markdown + title: cloud_project_region_storage_presign.html.markdown + argumentDocs: + expire: |- + - (Required) Define, in seconds, for how long your URL will be + valid. + method: |- + - (Required) The method you want to use to interact with your + object. Can be either 'GET' or 'PUT'. + name: '- (Required) The name of your S3 storage container/bucket.' + object: '- (Required) The name of the object in your S3 bucket.' + region_name: |- + - (Required) The region in which your storage is located. Must + be in uppercase. Ex.: "GRA". + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + url: '- Computed URL result.' + importStatements: [] + cloud_project_regions.html.markdown: + subCategory: "" + description: 'cloud_project_regions.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_regions.html.markdown + title: cloud_project_regions.html.markdown + argumentDocs: + has_services_up: |- + - (Optional) List of services which has to be UP in regions. + Example: "image", "instance", "network", "storage", "volume", "workflow", ... + If left blank, returns all regions associated with the service_name. + names: '- The list of regions associated with the project, filtered by services UP.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_user.html.markdown: + subCategory: "" + description: 'cloud_project_user.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_user.html.markdown + title: cloud_project_user.html.markdown + argumentDocs: + creation_date: '- the date the user was created.' + description: '- A description associated with the user.' + id: '- id of the role' + name: '- name of the role' + openstack_rc: |- + - a convenient map representing an openstack_rc file. + Note: no password nor sensitive token is set in this map. + password: |- + - (Sensitive) the password generated for the user. The password can + be used with the Openstack API. This attribute is sensitive and will only be + retrieve once during creation. + permissions: '- list of permissions associated with the role' + role_name: '- The name of a role. See role_names.' + role_names: '- A list of role names. Values can be:' + roles: '- A list of roles associated with the user.' + service_name: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- the status of the user. should be normally set to ''ok''.' + username: |- + - the username generated for the user. This username can be used with + the Openstack API. + importStatements: [] + cloud_project_user_s3_credential.html.markdown: + subCategory: "" + description: 'cloud_project_user_s3_credential.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_user_s3_credential.html.markdown + title: cloud_project_user_s3_credential.html.markdown + argumentDocs: + access_key_id: '- the Access Key ID' + secret_access_key: '- (Sensitive) the Secret Access Key' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_id: '- (Required) The ID of a public cloud project''s user.' + importStatements: [] + cloud_project_user_s3_credentials.html.markdown: + subCategory: "" + description: 'cloud_project_user_s3_credentials.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_user_s3_credentials.html.markdown + title: cloud_project_user_s3_credentials.html.markdown + argumentDocs: + access_key_ids: '- The list of the Access Key ID associated with this user.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_id: '- (Required) The ID of a public cloud project''s user.' importStatements: [] - iploadbalancing_udp_frontend.html Resource - terraform-provider-ovh: + cloud_project_user_s3_policy.html.markdown: subCategory: "" - name: iploadbalancing_udp_frontend.html Resource - terraform-provider-ovh - title: iploadbalancing_udp_frontend.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_user_s3_policy.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_user_s3_policy.html.markdown + title: cloud_project_user_s3_policy.html.markdown + argumentDocs: + policy: '- (Required) The policy document. This is a JSON formatted string. See examples of policies on public documentation.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + user_id: '- (Required) The ID of a public cloud project''s user.' importStatements: [] - iploadbalancing_vrack_network.html Resource - terraform-provider-ovh: + cloud_project_users.html.markdown: subCategory: "" - name: iploadbalancing_vrack_network.html Resource - terraform-provider-ovh - title: iploadbalancing_vrack_network.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_users.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_users.html.markdown + title: cloud_project_users.html.markdown + argumentDocs: + creation_date: '- the date the user was created.' + description: '- See Argument Reference above.' + id: '- id of the role' + name: '- name of the role' + permissions: '- list of permissions associated with the role' + roles: '- A list of roles associated with the user.' + service_name: |- + - (Required) The ID of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + status: '- the status of the user. should be normally set to ''ok''.' + user_id: '- The ID of a public cloud project''s user.' + username: |- + - the username generated for the user. This username can be used with + the Openstack API. + users: '- The list of users of a public cloud project.' + importStatements: [] + cloud_project_volume.html.markdown: + subCategory: "" + description: 'cloud_project_volume.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_volume.html.markdown + title: cloud_project_volume.html.markdown + argumentDocs: + name: '- The name of the volume (E.g.: "GRA", meaning Gravelines, for region "GRA1")' + region_name: '- (Required) A valid OVHcloud public cloud region name in which the volume is available. Ex.: "GRA11".' + service_name: '- (Required) The id of the public cloud project.' + size: '- The size of the volume' + volume_id: '- (Required) Volume id to get the informations' importStatements: [] - iploadbalancing_vrack_networks.html Resource - terraform-provider-ovh: + cloud_project_volumes.html.markdown: subCategory: "" - name: iploadbalancing_vrack_networks.html Resource - terraform-provider-ovh - title: iploadbalancing_vrack_networks.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'cloud_project_volumes.html.markdownsubcategory : "Cloud Project"' + name: cloud_project_volumes.html.markdown + title: cloud_project_volumes.html.markdown + argumentDocs: + id: '- The id of the volume' + name: '- The name of the volume' + region_name: '- (Required) A valid OVHcloud public cloud region name in which the volumes are available. Ex.: "GRA11".' + service_name: '- (Required) The id of the public cloud project.' + size: '- The size of the volume' + volumes: '-' + importStatements: [] + cloud_project_vrack.html.markdown: + subCategory: "" + description: 'cloud_project_vrack.html.markdownsubcategory : "Public Cloud Network"' + name: cloud_project_vrack.html.markdown + title: cloud_project_vrack.html.markdown + argumentDocs: + decription: '- The description of the vrack' + id: '- The id of the vrack' + name: '- The name of the vrack' + service_name: |- + - The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + importStatements: [] + cloud_project_workflow_backup.html.markdown: + subCategory: "" + description: 'cloud_project_workflow_backup.html.markdownsubcategory : "VM Instances"' + name: cloud_project_workflow_backup.html.markdown + title: cloud_project_workflow_backup.html.markdown + argumentDocs: + backup_name: '- (Optional) The name of the backup files that are created. If empty, the name attribute is used.' + cron: '- (Mandatory) The cron periodicity at which the backup workflow is scheduled' + instanceId: the id of the instance to back up + max_execution_count: '- (Optional) The number of times the worflow is run. Default value is 0 which means that the workflow will be scheduled continously until its deletion' + name: '- (Mandatory) The worflow name that is used in the UI' + region_name: '- (Mandatory) The name of the openstack region.' + rotation: '- (Mandatory) The number of backup that are retained.' + service_name: '- (Optional) The id of the public cloud project. If omitted, the OVH_CLOUD_PROJECT_SERVICE environment variable is used.' + importStatements: [] + cloud_projects.html.markdown: + subCategory: "" + description: 'cloud_projects.html.markdownsubcategory : "Cloud Project"' + name: cloud_projects.html.markdown + title: cloud_projects.html.markdown + argumentDocs: + access: '- Project access' + creation_date: '- Project creation date' + description: '- Description of your project' + display_name: '- Resource display name' + expiration: '- Expiration date of your project. After this date, your project will be deleted' + iam: '- IAM resource information' + id: '- Unique identifier of the resource in the IAM' + manual_quota: '- Manual quota prevent automatic quota upgrade' + order_id: '- Project order ID' + plan_code: '- Order plan code' + project_id: '- Project ID' + project_name: '- Project name' + service_name: '- ID of the public cloud project' + status: '- Current status' + tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' + unleash: '- Project unleashed' + urn: '- URN of the private database, used when writing IAM policies' + importStatements: [] + dbaas_logs_cluster.html.markdown: + subCategory: "" + description: 'dbaas_logs_cluster.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_cluster.html.markdown + title: dbaas_logs_cluster.html.markdown + argumentDocs: + archive_allowed_networks: '- List of IP blocks' + cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' + cluster_type: '- type of cluster (DEDICATED, PRO or TRIAL)' + dedicated_input_pem: '- PEM for dedicated inputs' + direct_input_allowed_networks: '- List of IP blocks' + direct_input_pem: '- PEM for direct inputs' + hostname: '- cluster hostname hosting tenant' + is_default: '- true if all content generated by given service will be placed on this cluster' + is_unlocked: '- true if given service can perform advanced operations on cluster' + query_allowed_networks: '- List of IP blocks' + region: '- datacenter localization' + service_name: '- (Required) The service name' + urn: '- URN of the DBaaS' + importStatements: [] + dbaas_logs_cluster_retention.html.markdown: + subCategory: "" + description: 'dbaas_logs_cluster_retention.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_cluster_retention.html.markdown + title: dbaas_logs_cluster_retention.html.markdown + argumentDocs: + cluster_id: '- (Required) Cluster ID' + duration: '- Indexed duration expressed in ISO-8601 format' + is_supported: '- Indicates if a new stream can use it' + retention_id: '- ID of the retention object' + service_name: '- (Required) The service name. It''s the ID of your Logs Data Platform instance.' importStatements: [] - me.html Resource - terraform-provider-ovh: + dbaas_logs_clusters.html.markdown: subCategory: "" - name: me.html Resource - terraform-provider-ovh - title: me.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dbaas_logs_clusters.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_clusters.html.markdown + title: dbaas_logs_clusters.html.markdown + argumentDocs: + service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' + uuids: is the cluster id importStatements: [] - me_api_oauth2_client Resource - terraform-provider-ovh: + dbaas_logs_input.html.markdown: subCategory: "" - name: me_api_oauth2_client Resource - terraform-provider-ovh - title: me_api_oauth2_client Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dbaas_logs_input.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_input.html.markdown + title: dbaas_logs_input.html.markdown + argumentDocs: + allowed_networks: '- List of IP blocks' + autoscale: '- Whether the workload is auto-scaled (mutually exclusive with parameter nb_instance)' + configuration: '- (Required) Input configuration' + created_at: '- Input creation' + current_nb_instance: '- Number of instance running (returned by the API)' + description: '- (Required) Input description' + engine_id: '- (Required) Input engine ID' + exposed_port: '- Port' + filter_section: '- (Optional) The filter section of logstash.conf' + flowgger: '- (Optional) Flowgger configuration' + hostname: '- Hostname' + input_id: '- Input ID' + input_section: '- (Required) The filter section of logstash.conf' + is_restart_required: '- Indicate if input need to be restarted' + log_format: '- Type of format to decode. One of "RFC5424", "LTSV", "GELF", "CAPNP"' + log_framing: '- Indicates how messages are delimited. One of "LINE", "NUL", "SYSLEN", "CAPNP"' + logstash: '- (Optional) Logstash configuration' + max_scale_instance: '- Maximum number of instances in auto-scaled mode' + min_scale_instance: '- Minimum number of instances in auto-scaled mode' + nb_instance: '- Number of instance running (input, mutually exclusive with parameter autoscale)' + pattern_section: '- (Optional) The list of customs Grok patterns' + public_address: '- Input IP address' + service_name: '- (Required) service name' + ssl_certificate: '- Input SSL certificate' + status: '- init: configuration required, pending: ready to start, running: available' + stream_id: '- (Required) Associated Graylog stream' + title: '- (Required) Input title' + updated_at: '- Input last update' + importStatements: [] + dbaas_logs_input_engine.html.markdown: + subCategory: "" + description: 'dbaas_logs_input_engine.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_input_engine.html.markdown + title: dbaas_logs_input_engine.html.markdown + argumentDocs: + is_deprecated: '- Indicates if engine will soon not be supported.' + name: '- The name of the logs input engine.' + service_name: '- The service name. It''s the ID of your Logs Data Platform instance.' + version: '- Software version' importStatements: [] - me_api_oauth2_client.html Resource - terraform-provider-ovh: + dbaas_logs_output_graylog_stream.html.markdown: subCategory: "" - name: me_api_oauth2_client.html Resource - terraform-provider-ovh - title: me_api_oauth2_client.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dbaas_logs_output_graylog_stream.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_output_graylog_stream.html.markdown + title: dbaas_logs_output_graylog_stream.html.markdown + argumentDocs: + can_alert: '- Indicates if the current user can create alert on the stream' + cold_storage_compression: '- Cold storage compression method. One of "LZMA", "GZIP", "DEFLATED", "ZSTD"' + cold_storage_content: '- ColdStorage content. One of "ALL", "GLEF", "PLAIN"' + cold_storage_enabled: '- Is Cold storage enabled?' + cold_storage_notify_enabled: '- Notify on new Cold storage archive' + cold_storage_retention: '- Cold storage retention in year' + cold_storage_target: '- ColdStorage destination. One of "PCA", "PCS"' + created_at: '- Stream creation' + description: '- (Required) Stream description' + indexing_enabled: '- Enable ES indexing' + indexing_max_size: '- Maximum indexing size (in GB)' + indexing_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of the maximum configured setting' + is_editable: '- Indicates if you are allowed to edit entry' + is_shareable: '- Indicates if you are allowed to share entry' + nb_alert_condition: '- Number of alert condition' + nb_archive: '- Number of coldstored archivesr' + parent_stream_id: '- Parent stream ID' + pause_indexing_on_max_size: '- If set, pause indexing when maximum size is reach' + retention_id: '- Retention ID' + service_name: '- (Required) The service name' + stream_id: '- Stream ID' + title: '- (Required) Stream description' + updated_at: '- Stream last updater' + web_socket_enabled: '- Enable Websocket' + write_token: '- Write token of the stream (empty if the caller is not the owner of the stream)' + importStatements: [] + dbaas_logs_output_opensearch_alias.html.markdown: + subCategory: "" + description: 'dbaas_logs_output_opensearch_alias.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_output_opensearch_alias.html.markdown + title: dbaas_logs_output_opensearch_alias.html.markdown + argumentDocs: + alias_id: '- Alias Id' + created_at: '- Alias creation' + description: '- (Required) Index description' + indexes: '- (Optional) List of attached indexes id' + is_editable: '- Indicates if you are allowed to edit entry' + max_size: '- Maximum index size (in bytes)' + name: '- Alias name' + nb_index: '- Number of indices linked' + nb_stream: '- Number of streams linked' + service_name: '- (Required) The service name' + streams: '- (Optional) List of attached streams id' + suffix: '- (Required) Index suffix' + updated_at: '- Input last update' + importStatements: [] + dbaas_logs_output_opensearch_index.html.markdown: + subCategory: "" + description: 'dbaas_logs_output_opensearch_index.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_output_opensearch_index.html.markdown + title: dbaas_logs_output_opensearch_index.html.markdown + argumentDocs: + alert_notify_enabled: '- If set, notify when size is near 80, 90 or 100 % of its maximum capacity' + created_at: '- Index creation' + current_size: '- Current index size (in bytes)' + description: '- (Required) Index description' + index_id: '- Index ID' + is_editable: '- Indicates if you are allowed to edit entry' + max_size: '- Maximum index size (in bytes)' + name: '- Index name' + nb_shard: '- (Required) Number of shards' + service_name: '- (Required) The service name' + suffix: '- (Required) Index suffix' + updated_at: '- Index last update' + importStatements: [] + dbaas_logs_token.html.markdown: + subCategory: "" + description: 'dbaas_logs_token.html.markdownsubcategory : "Logs Data Platform"' + name: dbaas_logs_token.html.markdown + title: dbaas_logs_token.html.markdown + argumentDocs: + cluster_id: '- Cluster ID. If not provided, the default cluster_id is used' + created_at: '- Token creation date' + name: '- Name of the token' + service_name: '- (Required) The LDP service name' + token_id: '- ID of the token' + updated_at: '- Token last update date' + value: '- Token value' + importStatements: [] + dedicated_ceph.html.markdown: + subCategory: "" + description: 'dedicated_ceph.html.markdownsubcategory : "Cloud Disk Array"' + name: dedicated_ceph.html.markdown + title: dedicated_ceph.html.markdown + argumentDocs: + ceph_mons: '- list of CEPH monitors IPs' + ceph_version: '- CEPH cluster version' + crush_tunables: '- CRUSH algorithm settings. Possible values' + label: '- CEPH cluster label' + region: '- cluster region' + service_name: '- (Required) The service name of the dedicated CEPH cluster.' + size: '- Cluster size in TB' + state: '- the state of the cluster' + status: '- the status of the service' + urn: '- URN of the CEPH instance' + importStatements: [] + dedicated_ceph_acl.markdown: + subCategory: "" + description: 'dedicated_ceph_acl.markdownsubcategory : "Cloud Disk Array"' + name: dedicated_ceph_acl.markdown + title: dedicated_ceph_acl.markdown + argumentDocs: + family: '- IP family. IPv4 or IPv6' + netmask: '- (Required) The network mask to apply' + network: '- (Required) The network IP to authorize' + service_name: '- (Required) The internal name of your dedicated CEPH' importStatements: [] - me_api_oauth2_clients Resource - terraform-provider-ovh: + dedicated_installation_template.html.markdown: subCategory: "" - name: me_api_oauth2_clients Resource - terraform-provider-ovh - title: me_api_oauth2_clients Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dedicated_installation_template.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_installation_template.html.markdown + title: dedicated_installation_template.html.markdown + argumentDocs: + bit_format: ': Template bit format (32 or 64).' + category: '- Category of this template (informative only).' + description: '- Information about this template.' + distribution: '- Distribution this template is based on.' + end_of_install: '- End of install date of the template.' + family: '- Template family type.' + filesystems: '- Filesystems available.' + hardware_raid_configuration: '- Distribution supports hardware raid configuration through the OVHcloud API.' + id: '- The ID of the installation template.' + inputs: '- Represents the questions of the expected answers in the userMetadata field.' + license: '- License available for this template.' + lvm_ready: '- Whether this template supports LVM.' + no_partitioning: '- Partitioning customization is not available for this OS template.' + project: '- Distribution project details.' + soft_raid_only_mirroring: '- Template supports RAID0 and RAID1 on 2 disks.' + subfamily: '- Subfamily of the template.' + template_name: '- (Required) The name of the template.' + importStatements: [] + dedicated_installation_templates.html.markdown: + subCategory: "" + description: 'dedicated_installation_templates.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_installation_templates.html.markdown + title: dedicated_installation_templates.html.markdown + argumentDocs: + result: '- The list of installation templates IDs available for dedicated servers.' importStatements: [] - me_identity_group Resource - terraform-provider-ovh: + dedicated_nasha.html.markdown: subCategory: "" - name: me_identity_group Resource - terraform-provider-ovh - title: me_identity_group Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dedicated_nasha.html.markdownsubcategory : "NAS-HA"' + name: dedicated_nasha.html.markdown + title: dedicated_nasha.html.markdown + argumentDocs: + can_create_partition: '- True, if partition creation is allowed on this HA-NAS' + custom_name: '- The name you give to the HA-NAS' + datacenter: '- area of HA-NAS' + disk_type: '- the disk type of the HA-NAS. Possible values are: hdd, ssd, nvme' + ip: '- Access IP of HA-NAS' + monitored: '- Send an email to customer if any issue is detected' + service_name: '- (Required) The service_name of your dedicated HA-NAS.' + urn: '- the URN of the HA-NAS instance' + zpool_capacity: '- percentage of HA-NAS space used in %' + zpool_size: '- the size of the HA-NAS in GB' + importStatements: [] + dedicated_nasha_partition.markdown: + subCategory: "" + description: 'dedicated_nasha_partition.markdownsubcategory : "NAS-HA"' + name: dedicated_nasha_partition.markdown + title: dedicated_nasha_partition.markdown + argumentDocs: + capacity: '- Percentage of partition space used in %' + description: '- A brief description of the partition' + name: '- (Required) name of the partition' + protocol: '- (Required) one of "NFS", "CIFS" or "NFS_CIFS"' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + size: '- (Required) size of the partition in GB' + used_by_snapshots: '- Percentage of partition space used by snapshots in %' + importStatements: [] + dedicated_nasha_partition_access.markdown: + subCategory: "" + description: 'dedicated_nasha_partition_access.markdownsubcategory : "NAS-HA"' + name: dedicated_nasha_partition_access.markdown + title: dedicated_nasha_partition_access.markdown + argumentDocs: + acl_description: '- A brief description of the acl' + ip: '- (Required) IP block in x.x.x.x/x format' + partition_name: '- (Required) Name of the partition' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + type: '- (Required) One of "readwrite", "readonly"' importStatements: [] - me_identity_group.html Resource - terraform-provider-ovh: + dedicated_nasha_partition_snapshot.markdown: subCategory: "" - name: me_identity_group.html Resource - terraform-provider-ovh - title: me_identity_group.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dedicated_nasha_partition_snapshot.markdownsubcategory : "NAS-HA"' + name: dedicated_nasha_partition_snapshot.markdown + title: dedicated_nasha_partition_snapshot.markdown + argumentDocs: + partition_name: '- (Required) name of the partition' + service_name: '- (Required) The internal name of your HA-NAS (it has to be ordered via OVHcloud interface)' + type: '- (Required) Snapshot interval, allowed : day-1, day-2, day-3, day-7, hour-1, hour-6' importStatements: [] - me_identity_groups Resource - terraform-provider-ovh: + dedicated_server.html.markdown: subCategory: "" - name: me_identity_groups Resource - terraform-provider-ovh - title: me_identity_groups Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dedicated_server.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server.html.markdown + title: dedicated_server.html.markdown + argumentDocs: + availability_zone: '- Dedicated AZ localisation' + boot_id: '- Boot id of the server' + boot_script: '- Boot script of the server' + catalog_name: '- Catalog name' + commercial_range: '- Dedicated server commercial range' + configuration: '- Representation of a configuration item to personalize product' + custom_hostname: '- Personnal hostname to use in server reinstallation' + datacenter: '- Dedicated datacenter localisation (bhs1,bhs2,...)' + details: '- Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start)' + disk_group_id: '- Disk group id to process install on (only available for some templates)' + display_name: '- Display name of your dedicated server' + duration: '- (Required) Duration' + iam: '- IAM resource information' + id: '- Unique identifier of the resource in the IAM' + ip: '- Dedicated server ip (IPv4)' + label: '- (Required) Identifier of the resource' + link_speed: '- Link speed of the server' + monitoring: '- Icmp monitoring state' + name: '- Dedicated server name' + new_upgrade_system: '-' + no_intervention: '- Prevent datacenter intervention' + no_raid: '- Whether you want to install only on the first disk' + os: '- Operating system' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + partition_scheme_name: '- Partition scheme name' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- Product Plan to order' + power_state: '- Power state of the server (poweron, poweroff)' + pricing_mode: '- (Required) Pricing mode identifier' + professional_use: '- Does this server have professional use option' + rack: '- Rack id of the server' + region: '- Dedicated region localisation' + rescue_mail: '- Custom email used to receive rescue credentials' + rescue_ssh_key: '- Public SSH Key used in the rescue mode' + reverse: '- Dedicated server reverse' + root_device: '- Root device of the server' + server_id: '- Server id' + service_name: '- The service_name of your dedicated server' + soft_raid_devices: '- Number of devices to use for system''s software RAID' + state: '- All states a Dedicated can in (error, hacked, hackedBlocked, ok)' + support_level: '- Dedicated server support level (critical, fastpath, gs, pro)' + tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' + template_name: '- Template name. You can check the following API to list the available base templates' + urn: '- URN of the private database, used when writing IAM policies' + user_metadata: '- Metadata' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + dedicated_server_boots.html.markdown: + subCategory: "" + description: 'dedicated_server_boots.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_boots.html.markdown + title: dedicated_server_boots.html.markdown + argumentDocs: + boot_type: '- (Optional) Filter the value of bootType property (harddisk, rescue, internal, network)' + kernel: '- (Optional) Filter the value of kernel property (iPXE script name)' + result: '- The list of dedicated server netboots.' + service_name: '- (Required) The internal name of your dedicated server.' importStatements: [] - me_identity_user Resource - terraform-provider-ovh: + dedicated_server_install_task.html.markdown: subCategory: "" - name: me_identity_user Resource - terraform-provider-ovh - title: me_identity_user Resource - terraform-provider-ovh - argumentDocs: {} + description: 'dedicated_server_install_task.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_install_task.html.markdown + title: dedicated_server_install_task.html.markdown + argumentDocs: + bootid_on_destroy: '- If set, reboot the server on the specified boot id during destroy phase.' + comment: '- Details of this task. (should be Install asked)' + details: '- see details block below.' + details.custom_hostname: '- Set up the server using the provided hostname instead of the default hostname.' + details.disk_group_id: '- Disk group id.' + details.language: '- Deprecated, will be removed in next release.' + details.no_raid: '- Set to true to disable RAID.' + details.soft_raid_devices: '- soft raid devices.' + details.use_spla: '- Deprecated, will be removed in next release.' + done_date: '- Completion date in RFC3339 format.' + function: '- Function name (should be hardInstall).' + id: '- The task id' + last_update: '- Last update in RFC3339 format.' + partition_scheme_name: '- Partition scheme name.' + service_name: '- (Required) The service_name of your dedicated server.' + start_date: '- Task creation date in RFC3339 format.' + status: '- Task status (should be done)' + template_name: '- (Required) Template name.' + user_metadata: '- see user_metadata block below.' + importStatements: [] + dedicated_server_reboot_task.html.markdown: + subCategory: "" + description: 'dedicated_server_reboot_task.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_reboot_task.html.markdown + title: dedicated_server_reboot_task.html.markdown + argumentDocs: + comment: '- Details of this task. (should be Reboot asked)' + done_date: '- Completion date in RFC3339 format.' + function: '- Function name (should be hardReboot).' + id: '- The task id' + keepers: '- List of values tracked to trigger reboot, used also to form implicit dependencies.' + last_update: '- Last update in RFC3339 format.' + service_name: '- (Required) The service_name of your dedicated server.' + 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_specifications_network.html.markdown: + subCategory: "" + description: 'dedicated_server_specifications_network.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_specifications_network.html.markdown + title: dedicated_server_specifications_network.html.markdown + argumentDocs: + aggregation: '- Interface aggregation status' + available: '- Is the OLA feature available' + available_modes: '- Supported modes' + bandwidth: '- Bandwidth details' + connection_val: '- Network connection flow rate' + count: '- Interface count' + default: '- Whether it is the default configuration of the server' + gateway: '- Server gateway' + input_quota_size: '- Monthly input traffic quota allowed' + input_quota_used: '- Monthly input traffic consumed this month' + interfaces: '- Interface layout' + internet_to_ovh: '- Bandwidth limitation Internet to OVH' + ip: '- Server main IP' + ipv4: '- Ipv4 routing details' + ipv6: '- Ipv6 routing details' + is_throttled: '- Whether bandwidth is throttleted for being over quota' + name: '- Mode name' + network: '- Server network' + ola: '- OLA details' + output_quota_size: '- Monthly output traffic quota allowed' + output_quota_used: '- Monthly output traffic consumed this month' + ovh_to_internet: '- Bandwidth limitation OVH to Internet' + ovh_to_ovh: '- Bandwidth limitation OVH to OVH' + reset_quota_date: '- Next reset quota date for traffic counter' + routing: '- Routing details' + service_name: '- (Required) The internal name of your dedicated server.' + supported: '- Whether server is compatible vmac' + supported_modes: '- Supported modes (DEPRECATED)' + switching: '- Switching details' + traffic: '- Traffic details' + type: '- Bandwidth offer type' + vmac: '- VMAC information for this dedicated server' + vrack: '- vRack details' + importStatements: [] + dedicated_server_update.html.markdown: + subCategory: "" + description: 'dedicated_server_update.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_server_update.html.markdown + title: dedicated_server_update.html.markdown + argumentDocs: + boot_id: '- boot id of the server' + boot_script: '- boot script of the server' + display_name: '- display name of the dedicated server' + monitoring: '- Icmp monitoring state' + service_name: '- (Required) The service_name of your dedicated server.' + state: '- error, hacked, hackedBlocked, ok' + importStatements: [] + dedicated_servers.html.markdown: + subCategory: "" + description: 'dedicated_servers.html.markdownsubcategory : "Dedicated Server"' + name: dedicated_servers.html.markdown + title: dedicated_servers.html.markdown + argumentDocs: + result: '- The list of dedicated servers IDs associated with your OVHcloud Account.' importStatements: [] - me_identity_user.html Resource - terraform-provider-ovh: + domain_zone.html.markdown: subCategory: "" - name: me_identity_user.html Resource - terraform-provider-ovh - title: me_identity_user.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'domain_zone.html.markdownsubcategory : "Domain names"' + name: domain_zone.html.markdown + title: domain_zone.html.markdown + argumentDocs: + catalog_name: '- Catalog name' + configuration: '- (Required) Representation of a configuration item for personalizing product. 2 configurations are required : one for zone and one for template' + date: '- date' + description: '- description' + details: '- Information about a Bill entry' + dnssec_supported: '- Is DNSSEC supported by this zone' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + has_dns_anycast: '- hasDnsAnycast flag of the DNS zone' + label: '- (Required) Identifier of the resource : zone or template' + last_update: '- Last update date of the DNS zone' + name: '- Zone name' + name_servers: '- Name servers that host the DNS zone' + order: '- Details about an Order' + order_detail_id: '- order detail id' + order_id: '- order id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + quantity: '- quantity' + value: '- (Required) For zone, the value is the zone name myzone.example.com. For template, the value can be basic, minimized or redirect which is the same as minimized with additional entries for a redirect configuration.' + importStatements: [] + domain_zone_dnssec.html.markdown: + subCategory: "" + description: 'domain_zone_dnssec.html.markdownsubcategory : "Domain names"' + name: domain_zone_dnssec.html.markdown + title: domain_zone_dnssec.html.markdown + argumentDocs: + status: '- DNSSEC status (disableInProgress, disabled, enableInProgress or enabled)' + zone_name: '- (Required) The name of the domain zone' importStatements: [] - me_identity_users Resource - terraform-provider-ovh: + domain_zone_import.html.markdown: subCategory: "" - name: me_identity_users Resource - terraform-provider-ovh - title: me_identity_users Resource - terraform-provider-ovh - argumentDocs: {} + description: 'domain_zone_import.html.markdownsubcategory : "Domain names"' + name: domain_zone_import.html.markdown + title: domain_zone_import.html.markdown + argumentDocs: + exported_content: '- Zone file exported from the API' + zone_file: '- (Required) Content of the zone file to import' + zone_name: '- (Required) The name of the domain zone' importStatements: [] - me_installation_template.html Resource - terraform-provider-ovh: + domain_zone_record.html.markdown: subCategory: "" - name: me_installation_template.html Resource - terraform-provider-ovh - title: me_installation_template.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'domain_zone_record.html.markdownsubcategory : "Domain names"' + name: domain_zone_record.html.markdown + title: domain_zone_record.html.markdown + argumentDocs: + fieldType: '- The type of the record' + fieldtype: '- (Required) The type of the record' + id: '- The record ID' + subDomain: '- The name of the record' + subdomain: '- (Required) The name of the record. It can be an empty string.' + target: '- (Required) The value of the record' + ttl: '- (Optional) The TTL of the record, it shall be >= to 60.' + zone: '- (Required) The domain to add the record to' + importStatements: [] + domain_zone_redirection.html.markdown: + subCategory: "" + description: 'domain_zone_redirection.html.markdownsubcategory : "Domain names"' + name: domain_zone_redirection.html.markdown + title: domain_zone_redirection.html.markdown + argumentDocs: + description: '- (Optional) A description of this redirection' + id: '- The redirection ID' + invisible: -> Redirection by html frame + keywords: '- (Optional) Keywords to describe this redirection' + subDomain: '- The name of the redirection' + subdomain: '- (Optional) The name of the redirection' + target: '- (Required) The value of the redirection' + title: '- (Optional) Title of this redirection' + type: '- (Required) The type of the redirection, with values:' + visible: -> Redirection by http code 302 + visiblePermanent: -> Redirection by http code 301 + zone: '- (Required) The domain to add the redirection to' + importStatements: [] + hosting_privatedatabase.html.markdown: + subCategory: "" + description: 'hosting_privatedatabase.html.markdownsubcategory : "Web Cloud Private SQL"' + name: hosting_privatedatabase.html.markdown + title: hosting_privatedatabase.html.markdown + argumentDocs: + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + cpu: '- Number of CPU on your private database' + datacenter: '- Datacenter where this private database is located' + date: '- date' + description: '- Custom description on your privatedatabase order.' + details: '- Information about a Bill entry' + display_name: '- Name displayed in customer panel for your private database' + domain: '- expiration date' + duration: '- (Required) duration.' + expiration_date: '- expiration date' + hostname: '- Private database hostname' + hostname_ftp: '- Private database FTP hostname' + id: '- Private database id' + infrastructure: '- Infrastructure where service was stored' + label: '- (Required) Identifier of the resource' + offer: '- Type of the private database offer' + order: '- Details about your Order' + order_detail_id: '- order detail id' + order_id: '- order id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code.' + plan_option: ': Product Plan to order' + port: ': Private database service port' + port_ftp: ': Private database FTP port' + pricing_mode: '- (Required) Pricing model identifier' + quantity: '- quantity' + quota_size: ': Space allowed (in MB) on your private database' + quota_used: ': Sapce used (in MB) on your private database' + ram: ': Amount of ram (in MB) on your private database' + server: ': Private database server name' + service_name: ': Service name' + state: ': Private database state' + type: ': Private database type' + urn: '- URN of the private database, used when writing IAM policies' + value: '- (Required) Path to the resource in API.OVH.COM' + version: ': Private database available versions' + version_label: ': Private database version label' + version_number: ': Private database version number' + importStatements: [] + hosting_privatedatabase_database.html.markdown: + subCategory: "" + description: 'hosting_privatedatabase_database.html.markdownsubcategory : "Web Cloud Private SQL"' + name: hosting_privatedatabase_database.html.markdown + title: hosting_privatedatabase_database.html.markdown + argumentDocs: + database_name: '- (Required) Name of your new database' + service_name: '- The internal name of your private database.' importStatements: [] - me_installation_template_partition_scheme.html Resource - terraform-provider-ovh: + hosting_privatedatabase_user.html.markdown: subCategory: "" - name: me_installation_template_partition_scheme.html Resource - terraform-provider-ovh - title: me_installation_template_partition_scheme.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'hosting_privatedatabase_user.html.markdownsubcategory : "Web Cloud Private SQL"' + name: hosting_privatedatabase_user.html.markdown + title: hosting_privatedatabase_user.html.markdown + argumentDocs: + password: '- (Required) Password for the new user (alphanumeric, minimum one number and 8 characters minimum)' + service_name: '- The internal name of your private database.' + user_name: '- (Required) User name used to connect on your databases' importStatements: [] - me_installation_template_partition_scheme_hardware_raid.html Resource - terraform-provider-ovh: + hosting_privatedatabase_user_grant.html.markdown: subCategory: "" - name: me_installation_template_partition_scheme_hardware_raid.html Resource - terraform-provider-ovh - title: me_installation_template_partition_scheme_hardware_raid.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'hosting_privatedatabase_user_grant.html.markdownsubcategory : "Web Cloud Private SQL"' + name: hosting_privatedatabase_user_grant.html.markdown + title: hosting_privatedatabase_user_grant.html.markdown + argumentDocs: + database_name: '- (Required) Database name where add grant.' + grant: '- (Required) Database name where add grant. Values can be:' + service_name: '- The internal name of your private database.' + user_name: '- (Required) User name used to connect on your databases.' importStatements: [] - me_installation_template_partition_scheme_partition.html Resource - terraform-provider-ovh: + hosting_privatedatabase_whitelist.html.markdown: subCategory: "" - name: me_installation_template_partition_scheme_partition.html Resource - terraform-provider-ovh - title: me_installation_template_partition_scheme_partition.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'hosting_privatedatabase_whitelist.html.markdownsubcategory : "Web Cloud Private SQL"' + name: hosting_privatedatabase_whitelist.html.markdown + title: hosting_privatedatabase_whitelist.html.markdown + argumentDocs: + ip: '- (Required) The whitelisted IP in your instance.' + name: '- (Required) Custom name for your Whitelisted IP.' + service: '- (Required) Authorize this IP to access service port. Values can be true or false' + service_name: '- The internal name of your private database.' + sftp: '- (Required) Authorize this IP to access SFTP port. Values can be true or false' importStatements: [] - me_installation_templates.html Resource - terraform-provider-ovh: + iam_permissions_group.html.markdown: subCategory: "" - name: me_installation_templates.html Resource - terraform-provider-ovh - title: me_installation_templates.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'iam_permissions_group.html.markdownsubcategory : "Account Management"' + name: iam_permissions_group.html.markdown + title: iam_permissions_group.html.markdown + argumentDocs: + allow: '- Set of actions allowed by the permissions group.' + created_at: '- Creation date of this group.' + deny: '- Set of actions that will be denied no matter what permissions group exists.' + description: '- Group description.' + except: '- Set of actions that will be subtracted from the allow list.' + name: '- Name of the permissions group.' + owner: '- Owner of the permissions group.' + read_only: '- Indicates that the permissions group is a default one.' + updated_at: '- Date of the last update of this group.' + urn: '- URN of the permissions group.' + importStatements: [] + iam_permissions_groups.markdown: + subCategory: "" + description: 'iam_permissions_groups.markdownsubcategory : "Account Management"' + name: iam_permissions_groups.markdown + title: iam_permissions_groups.markdown + argumentDocs: + allow: '- Set of actions allowed by the permissions group.' + created_at: '- Creation date of this group.' + deny: '- Set of actions that will always be denied even if it is explicitly allowed by a policy.' + description: '- Group description.' + except: '- Set of actions that will be subtracted from the allow list.' + name: '- Name of the permissions group.' + owner: '- Owner of the permissions group.' + read_only: '- Indicates that this is a default permissions group, managed by OVHcloud.' + updated_at: '- Date of the last update of this group.' + urn: '- URN of the permissions group.' + importStatements: [] + iam_policies.html.markdown: + subCategory: "" + description: 'iam_policies.html.markdownsubcategory : "Account Management"' + name: iam_policies.html.markdown + title: iam_policies.html.markdown + argumentDocs: + id: '- Hash of the list of the policy IDs.' + policies: '- List of the policies IDs.' importStatements: [] - me_paymentmean_bankaccount Resource - terraform-provider-ovh: + iam_policy.html.markdown: subCategory: "" - name: me_paymentmean_bankaccount Resource - terraform-provider-ovh - title: me_paymentmean_bankaccount Resource - terraform-provider-ovh - argumentDocs: {} + description: 'iam_policy.html.markdownsubcategory : "Account Management"' + name: iam_policy.html.markdown + title: iam_policy.html.markdown + argumentDocs: + allow: '- List of actions allowed on resources by identities' + created_at: '- Creation date of this group.' + deny: '- List of actions that will always be denied even if also allowed by this policy or another one.' + description: '- Description of the policy' + except: '- List of overrides of action that must not be allowed even if they are caught by allow. Only makes sens if allow contains wildcards.' + identities: '- List of identities affected by the policy' + name: '- Name of the policy, must be unique' + owner: '- Owner of the policy.' + permissions_groups: '- Set of permissions groups included in the policy. At evaluation, these permissions groups are each evaluated independently (notably, excepts actions only affect actions in the same permission group).' + read_only: '- Indicates that the policy is a default one.' + resources: '- List of resources affected by the policy' + updated_at: '- Date of the last update of this group.' + importStatements: [] + iam_reference_actions.html.markdown: + subCategory: "" + description: 'iam_reference_actions.html.markdownsubcategory : "Account Management"' + name: iam_reference_actions.html.markdown + title: iam_reference_actions.html.markdown + argumentDocs: + action: '- Name of the action' + actions: '- List of actions' + categories: '- List of the categories of the action' + description: '- Description of the action' + resource_type: '- Resource type the action is related to' + type: '- Kind of resource we want the actions for' + importStatements: [] + iam_reference_resource_type.markdown: + subCategory: "" + description: 'iam_reference_resource_type.markdownsubcategory : "Account Management"' + name: iam_reference_resource_type.markdown + title: iam_reference_resource_type.markdown + argumentDocs: + id: '- hash of the list of the resource types' + types: '- List of resource types' importStatements: [] - me_paymentmean_creditcard Resource - terraform-provider-ovh: + iam_resource_group.html.markdown: subCategory: "" - name: me_paymentmean_creditcard Resource - terraform-provider-ovh - title: me_paymentmean_creditcard Resource - terraform-provider-ovh - argumentDocs: {} + description: 'iam_resource_group.html.markdownsubcategory : "Account Management"' + name: iam_resource_group.html.markdown + title: iam_resource_group.html.markdown + argumentDocs: + created_at: '- Date of the creation of the resource group' + id: '- Id of the resource group' + name: '- Name of the resource group' + owner: '- Name of the account owning the resource group' + read_only: '- Marks that the resource group is not editable. Usually means that this is a default resource group created by OVHcloud' + resources: '- Set of the URNs of the resources contained in the resource group. All urns must be ones of valid resources' + updated_at: '- Date of the last modification of the resource group' + urn: '- URN of the resource group, used when writing policies' + importStatements: [] + iam_resource_groups.html.markdown: + subCategory: "" + description: 'iam_resource_groups.html.markdownsubcategory : "Account Management"' + name: iam_resource_groups.html.markdown + title: iam_resource_groups.html.markdown + argumentDocs: + id: '- Hash of the list of the resource groups IDs.' + resource_groups: '- List of the resource groups IDs.' importStatements: [] - order_cart.html Resource - terraform-provider-ovh: + ip_firewall.html.markdown: subCategory: "" - name: order_cart.html Resource - terraform-provider-ovh - title: order_cart.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'ip_firewall.html.markdownsubcategory : "Additional IP"' + name: ip_firewall.html.markdown + title: ip_firewall.html.markdown + argumentDocs: + 'enabled ': '- Whether firewall should be enabled' + ip: '- (Required) The IP or the CIDR' + ip_on_firewall: '- (Required) IPv4 address' + state: '- Current state of your ip on firewall' importStatements: [] - order_cart_product.html Resource - terraform-provider-ovh: + ip_firewall_rule.html.markdown: subCategory: "" - name: order_cart_product.html Resource - terraform-provider-ovh - title: order_cart_product.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'ip_firewall_rule.html.markdownsubcategory : "Additional IP"' + name: ip_firewall_rule.html.markdown + title: ip_firewall_rule.html.markdown + argumentDocs: + action: '- (Required) Possible values for action (deny|permit)' + creation_date: '- Creation date of the rule' + destination: '- Destination IP for your rule' + destination_port: '- Destination port for your rule. Only with TCP/UDP protocol' + destination_port_desc: '- String description of field destination_port' + fragments: '- Fragments option' + ip: '- (Required) The IP or the CIDR' + ip_on_firewall: '- (Required) IPv4 address' + protocol: '- (Required) Possible values for protocol (ah|esp|gre|icmp|ipv4|tcp|udp)' + rule: '- Description of the rule' + sequence: '- (Required) Rule position in the rules array' + source: '- IPv4 CIDR notation (e.g., 192.0.2.0/24)' + source_port: '- Source port for your rule. Only with TCP/UDP protocol' + source_port_desc: '- String description of field source_port' + state: '- Current state of your rule' + tcp_option: '- TCP option on your rule (syn|established)' + importStatements: [] + ip_mitigation.html.markdown: + subCategory: "" + description: 'ip_mitigation.html.markdownsubcategory : "Additional IP"' + name: ip_mitigation.html.markdown + title: ip_mitigation.html.markdown + argumentDocs: + auto: '- Set on true if the IP is on auto-mitigation' + ip: '- (Required) The IP or the CIDR' + ip_on_mitigation: '- (Required) IPv4 address' + 'permanent ': '- Set on true if the IP is on permanent mitigation' + state: '- Current state of the IP on mitigation' importStatements: [] - order_cart_product_options.html Resource - terraform-provider-ovh: + ip_move.html.markdown: subCategory: "" - name: order_cart_product_options.html Resource - terraform-provider-ovh - title: order_cart_product_options.html Resource - terraform-provider-ovh - argumentDocs: {} + 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"' + name: ip_reverse.html.markdown + title: ip_reverse.html.markdown + argumentDocs: + ip: '- (Required) The IP block to which the IP belongs' + ip_reverse: '- (Required) The IP to set the reverse of' + reverse: '- (Required) The value of the reverse' importStatements: [] - order_cart_product_options_plan.html Resource - terraform-provider-ovh: + ip_service.html.markdown: subCategory: "" - name: order_cart_product_options_plan.html Resource - terraform-provider-ovh - title: order_cart_product_options_plan.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'ip_service.html.markdownsubcategory : "Additional IP"' + name: ip_service.html.markdown + title: ip_service.html.markdown + argumentDocs: + can_be_terminated: '- can be terminated' + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + country: '- country' + date: '- date' + description: '- Custom description on your ip.' + details: '- Information about a Bill entry' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + ip: '- ip block' + label: '- (Required) Identifier of the resource' + order: '- Details about an Order' + order_detail_id: '- order detail id' + order_id: '- order id' + organisation_id: '- IP block organisation Id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + quantity: '- quantity' + routed_to: '- Routage information' + service_name: '- Service where ip is routed to' + type: '- Possible values for ip type' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + iploadbalancing.html.markdown: + subCategory: "" + description: 'iploadbalancing.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing.html.markdown + title: iploadbalancing.html.markdown + argumentDocs: + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + date: '- date' + description: '- description' + details: '- Information about a Bill entry' + display_name: '- Set the name displayed in ManagerV6 for your iplb (max 50 chars)' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + ip_loadbalancing: '- Your IP load balancing' + ipv4: '- The IPV4 associated to your IP load balancing' + ipv6: '- The IPV6 associated to your IP load balancing. DEPRECATED.' + label: '- (Required) Identifier of the resource' + metrics_token: '- The metrics token associated with your IP load balancing' + name: '- The zone three letter code' + offer: '- The offer of your IP load balancing' + order: '- Details about an Order' + order_detail_id: '- order detail id' + order_id: '- order id' + orderable_zone: '- Available additional zone for your Load Balancer' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + quantity: '- quantity' + service_name: '- The internal name of your IP load balancing' + ssl_configuration: '- 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. one of "intermediate", "modern".' + state: '- Current state of your IP' + urn: '- URN of the load balancer, used when writing IAM policies' + value: '- (Required) Path to the resource in API.OVH.COM' + vrack_eligibility: '- Vrack eligibility' + vrack_name: '- Name of the vRack on which the current Load Balancer is attached to, as it is named on vRack product' + zone: '- Location where your service is' + importStatements: [] + iploadbalancing_http_farm.html.markdown: + subCategory: "" + description: 'iploadbalancing_http_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_http_farm.html.markdown + title: iploadbalancing_http_farm.html.markdown + argumentDocs: + balance: '- Load balancing algorithm. roundrobin if null (first, leastconn, roundrobin, source, uri)' + display_name: '- Readable label for loadbalancer farm' + force_ssl: '- Force use of SSL (TLS)' + interval: '- probe interval, Value between 30 and 3600 seconds, default 30' + match: '- What to match pattern against (contains, default, internal, matches, status)' + method: '- HTTP probe method (GET, HEAD, OPTIONS, internal)' + negate: '- Negate probe result' + pattern: '- Pattern to match against match' + port: '- Port attached to your farm ([1..49151]). Inherited from frontend if null' + probe: '- define a backend healthcheck probe' + service_name: '- (Required) The internal name of your IP load balancing' + stickiness: "- \tStickiness type. No stickiness if null (sourceIp, cookie)" + type: '- (Required) Valid values : http, internal, mysql, oco, pgsql, smtp, tcp' + url: '- URL for HTTP probe type.' + vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' + zone: '- (Required) Zone where the farm will be defined (ie. GRA, BHS also supports ALL)' + importStatements: [] + iploadbalancing_http_farm_server.html.markdown: + subCategory: "" + description: 'iploadbalancing_http_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_http_farm_server.html.markdown + title: iploadbalancing_http_farm_server.html.markdown + argumentDocs: + address: '- Address of the backend server (IP from either internal or OVHcloud network)' + backup: '- is it a backup server used in case of failure of all the non-backup backends' + cookie: '- Value of the stickiness cookie used for this backend.' + display_name: '- Label for the server' + farm_id: '- ID of the farm this server is attached to' + on_marked_down: '- enable action when backend marked down. (shutdown-sessions)' + port: '- Port that backend will respond on' + probe: '- defines if backend will be probed to determine health and keep as active in farm if healthy' + proxy_protocol_version: '- version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (v1, v2, v2-ssl, v2-ssl-cn)' + service_name: '- (Required) The internal name of your IP load balancing' + ssl: '- is the connection ciphered with SSL (TLS)' + status: '- backend status - active or inactive' + weight: '- used in loadbalancing algorithm' + importStatements: [] + iploadbalancing_http_frontend.html.markdown: + subCategory: "" + description: 'iploadbalancing_http_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_http_frontend.html.markdown + title: iploadbalancing_http_frontend.html.markdown + argumentDocs: + allowed_source: '- Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.' + dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' + default_farm_id: '- Default TCP Farm of your frontend' + default_ssl_id: '- Default ssl served to your customer' + disabled: '- Disable your frontend. Default: ''false''' + display_name: '- Human readable name for your frontend, this field is for you' + hsts: '- HTTP Strict Transport Security. Default: ''false''' + http_header: '- HTTP headers to add to the frontend. List of string.' + id: '- Id of your frontend' + port: |- + - Port(s) attached to your frontend. Supports single port (numerical value), + range (2 dash-delimited increasing ports) and comma-separated list of 'single port' + and/or 'range'. Each port must be in the [1;49151] range + redirect_location: '- Redirection HTTP''' + service_name: '- (Required) The internal name of your IP load balancing' + ssl: '- SSL deciphering. Default: ''false''' + zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' + importStatements: [] + iploadbalancing_http_route.html.markdown: + subCategory: "" + description: 'iploadbalancing_http_route.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_http_route.html.markdown + title: iploadbalancing_http_route.html.markdown + argumentDocs: + action: '- (Required) Action triggered when all rules match' + display_name: '- Human readable name for your route, this field is for you' + field: '- Name of the field to match like "protocol" or "host" "/ipLoadbalancing/{serviceName}/route/availableRules" for a list of available rules' + frontend_id: '- Route traffic for this frontend' + match: '- Matching operator. Not all operators are available for all fields. See "availableRules"' + negate: '- Invert the matching operator effect' + pattern: '- Value to match against this match. Interpretation if this field depends on the match and field' + rule_id: '- Id of your rule' + rules: '- List of rules to match to trigger action' + service_name: '- (Required) The internal name of your IP load balancing' + status: '- HTTP status code for "redirect" and "reject" actions' + sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' + target: '- 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' + type: '- (Required) Action to trigger if all the rules of this route matches' + weight: '- Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action' + importStatements: [] + iploadbalancing_http_route_rule.html.markdown: + subCategory: "" + description: 'iploadbalancing_http_route_rule.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_http_route_rule.html.markdown + title: iploadbalancing_http_route_rule.html.markdown + argumentDocs: + display_name: '- Human readable name for your rule, this field is for you' + field: '- (Required) Name of the field to match like "protocol" or "host". See "/ipLoadbalancing/{serviceName}/availableRouteRules" for a list of available rules' + match: '- (Required) Matching operator. Not all operators are available for all fields. See "/ipLoadbalancing/{serviceName}/availableRouteRules"' + negate: '- Invert the matching operator effect' + pattern: '- Value to match against this match. Interpretation if this field depends on the match and field' + route_id: '- (Required) The route to apply this rule' + service_name: '- (Required) The internal name of your IP load balancing' + sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' + importStatements: [] + iploadbalancing_refresh.html.markdown: + subCategory: "" + description: 'iploadbalancing_refresh.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_refresh.html.markdown + title: iploadbalancing_refresh.html.markdown + argumentDocs: + keepers: '- List of values tracked to trigger refresh, used also to form implicit dependencies' + service_name: '- (Required) The internal name of your IP load balancing' importStatements: [] - order_cart_product_plan.html Resource - terraform-provider-ovh: + iploadbalancing_ssl.html.markdown: subCategory: "" - name: order_cart_product_plan.html Resource - terraform-provider-ovh - title: order_cart_product_plan.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'iploadbalancing_ssl.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_ssl.html.markdown + title: iploadbalancing_ssl.html.markdown + argumentDocs: + certificate: '- Certificate' + chain: '- Certificate chain' + display_name: '- Readable label for loadbalancer ssl' + expire_date: '- Expire date of your SSL certificate.' + fingerprint: '- Fingerprint of your SSL certificate.' + id: '- Id of your SSL certificate.' + key: '- Certificate key' + san: '- Subject Alternative Name of your SSL certificate.' + serial: '- Serial of your SSL certificate (Deprecated, use fingerprint instead !)' + service_name: '- (Required) The internal name of your IP load balancing' + subject: '- Subject of your SSL certificate.' + type: '- Type of your SSL certificate. ''built'' for SSL certificates managed by the IP Load Balancing. ''custom'' for user manager certificates.' + importStatements: [] + iploadbalancing_tcp_farm.html.markdown: + subCategory: "" + description: 'iploadbalancing_tcp_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_tcp_farm.html.markdown + title: iploadbalancing_tcp_farm.html.markdown + argumentDocs: + balance: '- Load balancing algorithm. roundrobin if null (first, leastconn, roundrobin, source)' + display_name: '- Readable label for loadbalancer farm' + force_ssl: '- Force use of SSL (TLS)' + interval: '- probe interval, Value between 30 and 3600 seconds, default 30' + match: '- What to match pattern against (contains, default, internal, matches, status)' + method: '- HTTP probe method (GET, HEAD, OPTIONS, internal)' + negate: '- Negate probe result' + pattern: '- Pattern to match against match' + port: '- Port attached to your farm ([1..49151]). Inherited from frontend if null' + probe: '- define a backend healthcheck probe' + service_name: '- (Required) The internal name of your IP load balancing' + stickiness: "- \tStickiness type. No stickiness if null (sourceIp)" + type: '- (Required) Valid values : http, internal, mysql, oco, pgsql, smtp, tcp' + url: '- URL for HTTP probe type.' + vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' + zone: '- (Required) Zone where the farm will be defined (ie. GRA, BHS also supports ALL)' + importStatements: [] + iploadbalancing_tcp_farm_server.html.markdown: + subCategory: "" + description: 'iploadbalancing_tcp_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_tcp_farm_server.html.markdown + title: iploadbalancing_tcp_farm_server.html.markdown + argumentDocs: + address: '- Address of the backend server (IP from either internal or OVHcloud network)' + backup: '- is it a backup server used in case of failure of all the non-backup backends' + cookie: '- Value of the stickiness cookie used for this backend.' + display_name: '- Label for the server' + farm_id: '- ID of the farm this server is attached to' + on_marked_down: '- enable action when backend marked down. (shutdown-sessions)' + port: '- Port that backend will respond on' + probe: '- defines if backend will be probed to determine health and keep as active in farm if healthy' + proxy_protocol_version: '- version of the PROXY protocol used to pass origin connection information from loadbalancer to receiving service (v1, v2, v2-ssl, v2-ssl-cn)' + service_name: '- (Required) The internal name of your IP load balancing' + ssl: '- is the connection ciphered with SSL (TLS)' + status: '- backend status - active or inactive' + weight: '- used in loadbalancing algorithm' + importStatements: [] + iploadbalancing_tcp_frontend.html.markdown: + subCategory: "" + description: 'iploadbalancing_tcp_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_tcp_frontend.html.markdown + title: iploadbalancing_tcp_frontend.html.markdown + argumentDocs: + allowed_source: '- Restrict IP Load Balancing access to these ip block. No restriction if null. List of IP blocks.' + dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' + default_farm_id: '- Default TCP Farm of your frontend' + default_ssl_id: '- Default ssl served to your customer' + denied_source: '- Deny IP Load Balancing access to these ip block. No restriction if null. You cannot specify both allowed_source and denied_source at the same time. List of IP blocks.' + disabled: '- Disable your frontend. Default: ''false''' + display_name: '- Human readable name for your frontend, this field is for you' + id: '- Id of your frontend' + port: |- + - Port(s) attached to your frontend. Supports single port (numerical value), + range (2 dash-delimited increasing ports) and comma-separated list of 'single port' + and/or 'range'. Each port must be in the [1;49151] range + service_name: '- (Required) The internal name of your IP load balancing' + ssl: '- SSL deciphering. Default: ''false''' + zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' + importStatements: [] + iploadbalancing_tcp_route.html.markdown: + subCategory: "" + description: 'iploadbalancing_tcp_route.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_tcp_route.html.markdown + title: iploadbalancing_tcp_route.html.markdown + argumentDocs: + action: '- (Required) Action triggered when all rules match' + display_name: '- Human readable name for your route, this field is for you' + field: '- Name of the field to match like "protocol" or "host" "/ipLoadbalancing/{serviceName}/route/availableRules" for a list of available rules' + frontend_id: '- Route traffic for this frontend' + match: '- Matching operator. Not all operators are available for all fields. See "availableRules"' + negate: '- Invert the matching operator effect' + pattern: '- Value to match against this match. Interpretation if this field depends on the match and field' + rule_id: '- Id of your rule' + rules: '- List of rules to match to trigger action' + service_name: '- (Required) The internal name of your IP load balancing' + status: '- Route status. Routes in "ok" state are ready to operate' + sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' + target: '- Farm ID for "farm" action type, empty for others.' + type: '- (Required) Action to trigger if all the rules of this route matches' + weight: '- Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action' + importStatements: [] + iploadbalancing_tcp_route_rule.html.markdown: + subCategory: "" + description: 'iploadbalancing_tcp_route_rule.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_tcp_route_rule.html.markdown + title: iploadbalancing_tcp_route_rule.html.markdown + argumentDocs: + display_name: '- Human readable name for your rule, this field is for you' + field: '- (Required) Name of the field to match like "protocol" or "host". See "/ipLoadbalancing/{serviceName}/availableRouteRules" for a list of available rules' + match: '- (Required) Matching operator. Not all operators are available for all fields. See "/ipLoadbalancing/{serviceName}/availableRouteRules"' + negate: '- Invert the matching operator effect' + pattern: '- Value to match against this match. Interpretation if this field depends on the match and field' + route_id: '- (Required) The route to apply this rule' + service_name: '- (Required) The internal name of your IP load balancing' + sub_field: '- Name of sub-field, if applicable. This may be a Cookie or Header name for instance' + importStatements: [] + iploadbalancing_udp_farm.html.markdown: + subCategory: "" + description: 'iploadbalancing_udp_farm.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_udp_farm.html.markdown + title: iploadbalancing_udp_farm.html.markdown + argumentDocs: + display_name: '- Readable label for loadbalancer farm' + farm_id: '- Id of your farm.' + port: '- Port attached to your farm ([1..49151]). Inherited from frontend if null' + service_name: '- (Required) The internal name of your IP load balancing' + vrack_network_id: '- Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack' + zone: '- (Required) Zone where the farm will be defined (ie. gra, bhs also supports all)' + importStatements: [] + iploadbalancing_udp_farm_server.html.markdown: + subCategory: "" + description: 'iploadbalancing_udp_farm_server.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_udp_farm_server.html.markdown + title: iploadbalancing_udp_farm_server.html.markdown + argumentDocs: + address: '- Address of the backend server (IP from either internal or OVHcloud network)' + backend_id: '- Synonym for farm_id.' + display_name: '- Label for the server' + farm_id: '- ID of the farm this server is attached to' + port: '- Port that backend will respond on' + server_id: '- Id of your server.' + service_name: '- (Required) The internal name of your IP load balancing' + status: '- backend status - active or inactive' + importStatements: [] + iploadbalancing_udp_frontend.html.markdown: + subCategory: "" + description: 'iploadbalancing_udp_frontend.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_udp_frontend.html.markdown + title: iploadbalancing_udp_frontend.html.markdown + argumentDocs: + dedicated_ipfo: '- Only attach frontend on these ip. No restriction if null. List of Ip blocks.' + default_farm_id: '- Default UDP Farm of your frontend' + disabled: '- Disable your frontend. Default: ''false''' + display_name: '- Human readable name for your frontend' + frontend_id: '- Id of your frontend' + port: |- + - Port(s) attached to your frontend. Supports single port (numerical value), + range (2 dash-delimited increasing ports) and comma-separated list of 'single port' + and/or 'range'. Each port must be in the [1;49151] range + service_name: '- (Required) The internal name of your IP load balancing' + zone: '- (Required) Zone where the frontend will be defined (ie. gra, bhs also supports all)' + importStatements: [] + iploadbalancing_vrack_network.html.markdown: + subCategory: "" + description: 'iploadbalancing_vrack_network.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_vrack_network.html.markdown + title: iploadbalancing_vrack_network.html.markdown + argumentDocs: + display_name: '- Human readable name for your vrack network' + farm_id: '- This attribute is there for documentation purpose only and isnt passed to the OVHcloud API as it may conflicts with http/tcp farms vrack_network_id attribute' + nat_ip: '- (Required) 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' + service_name: '- (Required) The internal name of your IP load balancing' + subnet: '- (Required) IP block of the private network in the vRack' + vlan: '- VLAN of the private network in the vRack. 0 if the private network is not in a VLAN' + vrack_network_id: '- (Required) Internal Load Balancer identifier of the vRack private network' + importStatements: [] + iploadbalancing_vrack_networks.html.markdown: + subCategory: "" + description: 'iploadbalancing_vrack_networks.html.markdownsubcategory : "Load Balancer (IPLB)"' + name: iploadbalancing_vrack_networks.html.markdown + title: iploadbalancing_vrack_networks.html.markdown + argumentDocs: + result: '- The list of vrack network ids.' + service_name: '- (Required) The internal name of your IP load balancing' + subnet: '- Filters networks on the subnet.' + vlan_id: '- Filters networks on the vlan id.' importStatements: [] - ovh_domain_zone.html Resource - terraform-provider-ovh: + me.html.markdown: subCategory: "" - name: ovh_domain_zone.html Resource - terraform-provider-ovh - title: ovh_domain_zone.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me.html.markdownsubcategory : "Account Management"' + name: me.html.markdown + title: me.html.markdown + argumentDocs: + address: ': Postal address of the account' + area: ': Area of the account' + birth_city: ': City of birth' + birth_day: ': Birth date' + city: ': City of the account' + code: ': Currency code used by this account (e.g EUR, USD, ...)' + company_national_identification_number: ': This is the national identification number of the company that possess this account' + corporation_type: ': Type of corporation' + country: ': Country of the account' + currency: ':' + customer_code: ': The customer code of this account (a numerical value used for identification when contacting support via phone call)' + email: ': Email address' + fax: ': Fax number' + firstname: ': First name' + italian_sdi: ': Italian SDI' + language: ': Preferred language for this account' + legalform: ': Legal form of the account' + name: ': Name of the account holder' + national_identification_number: ': National Identification Number of this account' + nichandle: ': Nic handle / customer identifier' + organisation: ': Name of the organisation for this account' + ovh_company: ': OVHcloud subsidiary' + ovh_subsidiary: ': OVHcloud subsidiary' + phone: ': Phone number' + phone_country: ': Country code of the phone number' + sex: ': Gender of the account holder' + spare_email: ': Backup email address' + state: ': State of the postal address' + symbol: ': Currency symbol used by this account (e.g €, $, ...)' + urn: ': The resource URN of the account, to be used when writing IAM policies' + vat: ': VAT number' + zip: ': Zipcode of the address' + importStatements: [] + me_api_oauth2_client.html.markdown: + subCategory: "" + description: 'me_api_oauth2_client.html.markdownsubcategory : "Account Management"' + name: me_api_oauth2_client.html.markdown + title: me_api_oauth2_client.html.markdown + argumentDocs: + callback_urls: '- List of callback urls when configuring the AUTHORIZATION_CODE flow.' + client_id: '- Client ID of the created service account.' + client_secret: '- Client secret of the created service account.' + description: '- OAuth2 client description.' + flow: '- The OAuth2 flow to use. AUTHORIZATION_CODE or CLIENT_CREDENTIALS are supported at the moment.' + name: '- OAuth2 client name.' + importStatements: [] + me_api_oauth2_client.markdown: + subCategory: "" + description: 'me_api_oauth2_client.markdownsubcategory : "Account Management"' + name: me_api_oauth2_client.markdown + title: me_api_oauth2_client.markdown + argumentDocs: + callback_urls: '- List of callback urls when configuring the AUTHORIZATION_CODE flow.' + client_id: '- Client ID of an existing OAuth2 service account.' + description: '- OAuth2 client description.' + flow: '- The OAuth2 flow to use. AUTHORIZATION_CODE or CLIENT_CREDENTIALS are supported at the moment.' + name: '- OAuth2 client name.' importStatements: [] - ovh_domain_zone_record.html Resource - terraform-provider-ovh: + me_api_oauth2_clients.markdown: subCategory: "" - name: ovh_domain_zone_record.html Resource - terraform-provider-ovh - title: ovh_domain_zone_record.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_api_oauth2_clients.markdownsubcategory : "Account Management"' + name: me_api_oauth2_clients.markdown + title: me_api_oauth2_clients.markdown + argumentDocs: + client_ids: '- The list of all the existing client IDs.' importStatements: [] - ovh_domain_zone_redirection.html Resource - terraform-provider-ovh: + me_identity_group.html.markdown: subCategory: "" - name: ovh_domain_zone_redirection.html Resource - terraform-provider-ovh - title: ovh_domain_zone_redirection.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_identity_group.html.markdownsubcategory : "Account Management"' + name: me_identity_group.html.markdown + title: me_identity_group.html.markdown + argumentDocs: + creation: '- Creation date of this group.' + default_group: '- Is the group a default and immutable one.' + description: '- Group description.' + last_update: '- Date of the last update of this group.' + name: '- Group name.' + role: '- Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.' + urn: '- URN of the user group, used when writing IAM policies' + importStatements: [] + me_identity_group.markdown: + subCategory: "" + description: 'me_identity_group.markdownsubcategory : "Account Management"' + name: me_identity_group.markdown + title: me_identity_group.markdown + argumentDocs: + creation: '- Creation date of this group.' + default_group: '- Is the group a default and immutable one.' + description: '- Group description.' + last_update: '- Date of the last update of this group.' + name: '- Group name.' + role: '- Role associated with the group. Valid roles are ADMIN, REGULAR, UNPRIVILEGED, and NONE.' + urn: '- Identity URN of the group.' + importStatements: [] + me_identity_groups.markdown: + subCategory: "" + description: 'me_identity_groups.markdownsubcategory : "Account Management"' + name: me_identity_groups.markdown + title: me_identity_groups.markdown + argumentDocs: + groups: '- The list of the group names of all the identity groups.' importStatements: [] - vps.html Resource - terraform-provider-ovh: + me_identity_user.html.markdown: subCategory: "" - name: vps.html Resource - terraform-provider-ovh - title: vps.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_identity_user.html.markdownsubcategory : "Account Management"' + name: me_identity_user.html.markdown + title: me_identity_user.html.markdown + argumentDocs: + creation: '- Creation date of this user.' + description: '- User description.' + email: '- User''s email.' + group: '- User''s group.' + last_update: '- Last update of this user.' + login: '- User''s login suffix.' + password: '- User''s password.' + password_last_update: '- When the user changed his password for the last time.' + status: '- Current user''s status.' + urn: '- URN of the user, used when writing IAM policies' + importStatements: [] + me_identity_user.markdown: + subCategory: "" + description: 'me_identity_user.markdownsubcategory : "Account Management"' + name: me_identity_user.markdown + title: me_identity_user.markdown + argumentDocs: + creation: '- Creation date of this user.' + description: '- User description.' + email: '- User''s email.' + group: '- User''s group.' + last_update: '- Last update of this user.' + login: '- User''s login suffix.' + password_last_update: '- When the user changed his password for the last time.' + status: '- Current user''s status.' + urn: '- User''s identity URN.' + user: '- (Required) User''s login.' + importStatements: [] + me_identity_users.markdown: + subCategory: "" + description: 'me_identity_users.markdownsubcategory : "Account Management"' + name: me_identity_users.markdown + title: me_identity_users.markdown + argumentDocs: + users: '- The list of the user''s logins of all the identity users.' importStatements: [] - vpss.html Resource - terraform-provider-ovh: + me_installation_template.html.markdown: subCategory: "" - name: vpss.html Resource - terraform-provider-ovh - title: vpss.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_installation_template.html.markdownsubcategory : "Dedicated Server"' + name: me_installation_template.html.markdown + title: me_installation_template.html.markdown + argumentDocs: + base_template_name: ': (Required) The name of an existing installation template, choose one among the list given by ovh_dedicated_installation_templates datasource.' + bit_format: ': This template bit format (32 or 64).' + category: ': Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation).' + custom_hostname: ': Set up the server using the provided hostname instead of the default hostname.' + customization: ':' + description: ': information about this template.' + distribution: ': the distribution this template is based on.' + family: ': this template family type.' + filesystems: ': Filesystems available.' + hard_raid_configuration: ': This distribution supports hardware raid configuration through the OVHcloud API. Deprecated, will be removed in next release.' + id: ': This template name.' + remove_default_partition_schemes: ': (Required) Remove default partition schemes at creation.' + template_name: ': (Required) This template name.' + importStatements: [] + me_installation_template_partition_scheme.html.markdown: + subCategory: "" + description: 'me_installation_template_partition_scheme.html.markdownsubcategory : "Dedicated Server"' + name: me_installation_template_partition_scheme.html.markdown + title: me_installation_template_partition_scheme.html.markdown + argumentDocs: + id: ': a fake id associated with this partition scheme formatted as follow: template_name/name' + name: ': (Required) (Required) This partition scheme name.' + priority: ': 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).' + template_name: ': (Required) The template name of the partition scheme.' importStatements: [] - vrack.html Resource - terraform-provider-ovh: + me_installation_template_partition_scheme_hardware_raid.html.markdown: subCategory: "" - name: vrack.html Resource - terraform-provider-ovh - title: vrack.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_installation_template_partition_scheme_hardware_raid.html.markdownsubcategory : "Dedicated Server"' + name: me_installation_template_partition_scheme_hardware_raid.html.markdown + title: me_installation_template_partition_scheme_hardware_raid.html.markdown + argumentDocs: + disks: ': 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.' + id: ': a fake id associated with this partition scheme hardware raid group formatted as follow: template_name/scheme_name/name' + mode: ': RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60).' + name: ': Hardware RAID name.' + scheme_name: ': (Required) The partition scheme name.' + step: ': Specifies the creation order of the hardware RAID.' + template_name: ': (Required) The template name of the partition scheme.' + importStatements: [] + me_installation_template_partition_scheme_partition.html.markdown: + subCategory: "" + description: 'me_installation_template_partition_scheme_partition.html.markdownsubcategory : "Dedicated Server"' + name: me_installation_template_partition_scheme_partition.html.markdown + title: me_installation_template_partition_scheme_partition.html.markdown + argumentDocs: + filesystem: ': Partition filesystem. Enum with possibles values:' + id: ': a fake id associated with this partition scheme partition formatted as follow: template_name/scheme_name/mountpoint' + mountpoint: ': (Required) partition mount point.' + order: ': step or order. specifies the creation order of the partition on the disk' + raid: ': raid partition type. Enum with possible values:' + scheme_name: ': (Required) The partition scheme name.' + size: ': size of partition in MB, 0 => rest of the space.' + template_name: ': (Required) The template name of the partition scheme.' + type: ': partition type. Enum with possible values:' + volume_name: ': The volume name needed for proxmox distribution' + importStatements: [] + me_installation_templates.html.markdown: + subCategory: "" + description: 'me_installation_templates.html.markdownsubcategory : "Dedicated Server"' + name: me_installation_templates.html.markdown + title: me_installation_templates.html.markdown + argumentDocs: + result: '- The list of custom installation templates IDs available for dedicated servers.' importStatements: [] - vrack_cloudproject Resource - terraform-provider-ovh: + me_paymentmean_bankaccount.markdown: subCategory: "" - name: vrack_cloudproject Resource - terraform-provider-ovh - title: vrack_cloudproject Resource - terraform-provider-ovh - argumentDocs: {} + description: 'me_paymentmean_bankaccount.markdownsubcategory : "Account Management"' + name: me_paymentmean_bankaccount.markdown + title: me_paymentmean_bankaccount.markdown + argumentDocs: + default: |- + - a boolean which tells if the retrieved bank account + is marked as the default payment mean + description: '- the description attribute of the bank account' + description_regexp: |- + - (Optional) a regexp used to filter bank accounts + on their description attributes. + state: |- + - (Optional) Filter bank accounts on their state attribute. + Can be "blockedForIncidents", "valid", "pendingValidation" + use_default: '- (Optional) Retrieve bank account marked as default payment mean.' + use_oldest: |- + - (Optional) Retrieve oldest bank account. + project. + importStatements: [] + me_paymentmean_creditcard.markdown: + subCategory: "" + description: 'me_paymentmean_creditcard.markdownsubcategory : "Account Management"' + name: me_paymentmean_creditcard.markdown + title: me_paymentmean_creditcard.markdown + argumentDocs: + default: |- + - a boolean which tells if the retrieved credit card + is marked as the default payment mean + description: '- the description attribute of the credit card' + description_regexp: |- + - (Optional) a regexp used to filter credit cards + on their description attributes. + state: '- the state attribute of the credit card' + states: |- + - (Optional) Filter credit cards on their state attribute. + Can be "expired", "valid", "tooManyFailures" + use_default: '- (Optional) Retrieve credit card marked as default payment mean.' + use_last_to_expire: |- + - (Optional) Retrieve the credit card that will be the last + to expire according to its expiration date. + importStatements: [] + okms.html.markdown: + subCategory: "" + description: 'okms.html.markdownsubcategory : "KMS"' + name: okms.html.markdown + title: okms.html.markdown + argumentDocs: + display_name: (String) Set the name displayed in Manager for this KMS + iam: (Attributes) IAM resource metadata (see below for nested schema) + id: (String) OKMS ID + kmip_endpoint: (String) KMS kmip API endpoint + ovh_subsidiary: (String) OVH subsidiary + public_ca: (String) KMS public CA (Certificate Authority) + region: (String) KMS region + rest_endpoint: (String) KMS rest API endpoint + swagger_endpoint: (String) KMS rest API swagger UI + tags: '(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:' + urn: (String) Unique resource name used in policies + importStatements: [] + okms_credential.html.markdown: + subCategory: "" + description: 'okms_credential.html.markdownsubcategory : "KMS"' + name: okms_credential.html.markdown + title: okms_credential.html.markdown + argumentDocs: + certificate_pem: (String) Certificate PEM of the credential. + created_at: (String) Creation time of the credential + csr: (String) Certificate Signing Request. The CSR should be encoded in the PEM format. If this argument is not set, the server will generate a CSR for this credential, and the corresponding private key will be returned in the private_key_pem attribute. + description: (String) Description of the credential (max 200 characters) + expired_at: (String) Expiration time of the credential + from_csr: (Boolean) Whether the credential was generated from a CSR + id: (String) ID of the credential + identity_urns: (List of String) List of identity URNs associated with the credential (max 25) + name: (String) Name of the credential (max 50 characters) + okms_id: (String) ID of the KMS + private_key_pem: (String, Sensitive) Private Key PEM of the credential if no CSR is provided + status: (String) Status of the credential + validity: '(Number) Validity in days (default: 365 days, max: 365 days)' + importStatements: [] + okms_resource.html.markdown: + subCategory: KMS + description: 'okms_resource.html.markdownsubcategory: "KMS"' + name: okms_resource.html.markdown + title: okms_resource.html.markdown + argumentDocs: + display_name: (String) Resource display name + iam: (Attributes) IAM resource metadata (see below for nested schema) + id: (String) Should be set to the ID of your KMS + kmip_endpoint: (String) KMS kmip API endpoint + public_ca: (String) KMS public CA (Certificate Authority) + region: (String) Region + rest_endpoint: (String) KMS rest API endpoint + swagger_endpoint: (String) KMS rest API swagger UI + tags: '(Map of String) Resource tags. Tags that were internally computed are prefixed with ovh:' + urn: (String) Unique resource name used in policies + importStatements: [] + okms_service_key.html.markdown: + subCategory: "" + description: 'okms_service_key.html.markdownsubcategory : "KMS"' + name: okms_service_key.html.markdown + title: okms_service_key.html.markdown + argumentDocs: + context: (String) Context of the key + created_at: (String) Creation time of the key + curve: (String) Curve type, for Elliptic Curve (EC) keys (Either P-256, P-384 or P-521) + deactivation_reason: (String) Key deactivation reason + id: (String) Key ID + name: (String) Key name + okms_id: (String) Okms ID + operations: (List of String) The operations for which the key is intended to be used + size: (Number) Size of the key to be created, for symmetric and RSA keys (One of 128, 192 or 256 for symmetric keys, or one of 2048, 3072 or 4096 for RSA keys) + state: (String) State of the key + type: (String) Type of key to create + importStatements: [] + okms_service_key_jwk.html.markdown: + subCategory: KMS + description: 'okms_service_key_jwk.html.markdownsubcategory: "KMS"' + name: okms_service_key_jwk.html.markdown + title: okms_service_key_jwk.html.markdown + argumentDocs: + alg: (String) The algorithm intended to be used with the key + created_at: (String) Creation time of the key + crv: (String) The cryptographic curve used with the key + e: (String) The exponent value for the RSA public key + id: (String) ID of the service key + key_ops: (List of String) The operation for which the key is intended to be used + keys: (Attributes List) The key in JWK format (see below for nested schema) + kid: (String) key ID parameter used to match a specific key + kty: (String) Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC + "n": (String) The modulus value for the RSA public key + name: (String) Key name + okms_id: (String) ID of the KMS + size: (Number) Size of the key + state: (String) State of the key + type: (String) Key type + use: (String) The intended use of the public key + x: (String) The x coordinate for the Elliptic Curve point + "y": (String) The y coordinate for the Elliptic Curve point + importStatements: [] + order_cart.html.markdown: + subCategory: "" + description: 'order_cart.html.markdownsubcategory : "Order"' + name: order_cart.html.markdown + title: order_cart.html.markdown + argumentDocs: + assign: '- Assign a shopping cart to a logged in client. Values can be true or false.' + cart_id: '- Cart identifier' + description: '- Description of your cart' + expire: '- Expiration time (format: 2006-01-02T15:04:05+00:00)' + items: '- Items of your cart' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + read_only: '- Indicates if the cart has already been validated' + importStatements: [] + order_cart_product.html.markdown: + subCategory: "" + description: 'order_cart_product.html.markdownsubcategory : "Order"' + name: order_cart_product.html.markdown + title: order_cart_product.html.markdown + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + interval: '- Interval of renewal' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) product' + product_name: '- Name of the product' + product_type: '- Product type' + result: '- products results' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_options.html.markdown: + subCategory: "" + description: 'order_cart_product_options.html.markdownsubcategory : "Order"' + name: order_cart_product_options.html.markdown + title: order_cart_product_options.html.markdown + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + exclusive: '- Define if options of this family are exclusive with each other' + family: '- Option family' + interval: '- Interval of renewal' + mandatory: '- Define if an option of this family is mandatory' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + result: '- products results' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_options_plan.html.markdown: + subCategory: "" + description: 'order_cart_product_options_plan.html.markdownsubcategory : "Order"' + name: order_cart_product_options_plan.html.markdown + title: order_cart_product_options_plan.html.markdown + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + exclusive: '- Define if options of this family are exclusive with each other' + family: '- Option family' + interval: '- Interval of renewal' + mandatory: '- Define if an option of this family is mandatory' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + options_plan_code: '- (Required) options plan code.' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_capacity: '- (Required) Capacity of the pricing (type of pricing)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + selected_price: '- Selected Price according to capacity' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + order_cart_product_plan.html.markdown: + subCategory: "" + description: 'order_cart_product_plan.html.markdownsubcategory : "Order"' + name: order_cart_product_plan.html.markdown + title: order_cart_product_plan.html.markdown + argumentDocs: + capacities: '- Capacities of the pricing (type of pricing)' + cart_id: '- (Required) Cart identifier' + catalog_name: '- Catalog name' + currency_code: '- Currency code' + description: '- Description of the pricing' + duration: '- Duration for ordering the product' + interval: '- Interval of renewal' + maximum_quantity: '- Maximum quantity that can be ordered' + maximum_repeat: '- Maximum repeat for renewal' + minimum_quantity: '- Minimum quantity that can be ordered' + minimum_repeat: '- Minimum repeat for renewal' + plan_code: '- (Required) Product offer identifier' + price: '- Price of the product (Price with its currency and textual representation)' + price_capacity: '- (Required) Capacity of the pricing (type of pricing)' + price_in_ucents: '- Price of the product in micro-centims' + prices: '- Prices of the product offer' + pricing_mode: '- Pricing model identifier' + pricing_type: '- Pricing type' + product: '- (Required) Product' + product_name: '- Name of the product' + product_type: '- Product type' + selected_price: '- Selected Price according to capacity' + text: '- Textual representation' + value: '- The effective price' + importStatements: [] + vps.html.markdown: + subCategory: "" + description: 'vps.html.markdownsubcategory : "VPS"' + name: vps.html.markdown + title: vps.html.markdown + argumentDocs: + available_options: '- All options the VPS can have (additionalDisk┃automatedBackup┃cpanel┃ftpbackup┃plesk┃snapshot┃veeam┃windows)' + cluster: '- VPS cluster' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + datacenter: '- Datacenters where this model is available' + disk: '- Disk capacity of this VPS' + display_name: '- Custom display name' + duration: '- (Required) duration' + iam: '- IAM resource information' + id: '- Unique identifier of the resource in the IAM' + keymap: '- KVM keyboard layout on VPS Cloud' + label: '- (Required) Identifier of the resource' + maximum_additionnal_ip: '- Maximum number of additional IPs' + memory: '- RAM of the VPS' + memory_limit: '- RAM of this VPS' + model: '- Structure describing characteristics of a VPS model' + monitoring_ip_blocks: '- IP blocks for OVH monitoring servers' + name: '- Plan code of the VPS' + netboot_mode: '- VPS netboot mode (local┃rescue)' + offer: '- Description of this VPS offer' + offer_type: '- All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd)' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + state: '- State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading)' + tags: '- Resource tags. Tags that were internally computed are prefixed with ovh:' + urn: '- URN of the private database, used when writing IAM policies' + value: '- (Required) Path to the resource in api.ovh.com' + vcore: '- Number of vcores' + version: '- All versions that VPS can have (2013v1┃2014v1┃2015v1┃2017v1┃2017v2┃2017v3┃2018v1┃2018v2┃2019v1)' + zone: '- OpenStask region where the VPS is located' + importStatements: [] + vpss.html.markdown: + subCategory: "" + description: 'vpss.html.markdownsubcategory : "VPS"' + name: vpss.html.markdown + title: vpss.html.markdown + argumentDocs: + result: '- The list of VPS IDs associated with your OVH Account.' importStatements: [] - vrack_dedicated_server.html Resource - terraform-provider-ovh: + vrack.html.markdown: subCategory: "" - name: vrack_dedicated_server.html Resource - terraform-provider-ovh - title: vrack_dedicated_server.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'vrack.html.markdownsubcategory : "vRack"' + name: vrack.html.markdown + title: vrack.html.markdown + argumentDocs: + catalog_name: '- Catalog name' + configuration: '- (Optional) Representation of a configuration item for personalizing product' + date: '- date' + description: '- yourvrackdescription' + details: '- Information about a Bill entry' + domain: '- expiration date' + duration: '- (Required) duration' + expiration_date: '- expiration date' + label: '- (Required) Identifier of the resource' + name: '- yourvrackname' + order: '- Details about an Order' + order_detail_id: '- order detail id' + order_id: '- order id' + ovh_subsidiary: '- (Required) OVHcloud Subsidiary. Country of OVHcloud legal entity you''ll be billed by. List of supported subsidiaries available on API at /1.0/me.json under' + plan: '- (Required) Product Plan to order' + plan_code: '- (Required) Plan code' + plan_option: '- (Optional) Product Plan to order' + pricing_mode: '- (Required) Pricing model identifier' + quantity: '- quantity' + service_name: '- The internal name of your vrack' + urn: '- The URN of the vrack, used with IAM permissions' + value: '- (Required) Path to the resource in API.OVH.COM' + importStatements: [] + vrack_cloudproject.markdown: + subCategory: "" + description: 'vrack_cloudproject.markdownsubcategory : "vRack"' + name: vrack_cloudproject.markdown + title: vrack_cloudproject.markdown + argumentDocs: + project_id: |- + - (Required) The id of the public cloud project. If omitted, + the OVH_CLOUD_PROJECT_SERVICE environment variable is used. + service_name: |- + - (Required) The service name of the vrack. If omitted, + the OVH_VRACK_SERVICE environment variable is used. + importStatements: [] + vrack_dedicated_server.html.markdown: + subCategory: "" + description: 'vrack_dedicated_server.html.markdownsubcategory : "vRack"' + name: vrack_dedicated_server.html.markdown + title: vrack_dedicated_server.html.markdown + argumentDocs: + server_id: '- (Required) The id of the dedicated server.' + service_name: |- + - (Required) The service name of the vrack. If omitted, + the OVH_VRACK_SERVICE environment variable is used. importStatements: [] - vrack_dedicated_server_interface.html Resource - terraform-provider-ovh: + vrack_dedicated_server_interface.html.markdown: subCategory: "" - name: vrack_dedicated_server_interface.html Resource - terraform-provider-ovh - title: vrack_dedicated_server_interface.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'vrack_dedicated_server_interface.html.markdownsubcategory : "vRack"' + name: vrack_dedicated_server_interface.html.markdown + title: vrack_dedicated_server_interface.html.markdown + argumentDocs: + interface_id: '- (Required) The id of dedicated server network interface.' + service_name: |- + - (Required) The id of the vrack. If omitted, + the OVH_VRACK_SERVICE environment variable is used. importStatements: [] - vrack_ip.html Resource - terraform-provider-ovh: + vrack_ip.html.markdown: subCategory: "" - name: vrack_ip.html Resource - terraform-provider-ovh - title: vrack_ip.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'vrack_ip.html.markdownsubcategory : "vRack"' + name: vrack_ip.html.markdown + title: vrack_ip.html.markdown + argumentDocs: + block: '- (Required) Your IP block.' + gateway: '- Your gateway' + ip: '- Your IP block' + service_name: '- (Required) The internal name of your vrack' + zone: '- Where you want your block announced on the network' importStatements: [] - vrack_iploadbalancing.html Resource - terraform-provider-ovh: + vrack_iploadbalancing.html.markdown: subCategory: "" - name: vrack_iploadbalancing.html Resource - terraform-provider-ovh - title: vrack_iploadbalancing.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'vrack_iploadbalancing.html.markdownsubcategory : "vRack"' + name: vrack_iploadbalancing.html.markdown + title: vrack_iploadbalancing.html.markdown + argumentDocs: + ip_loadbalancing: '- (Required) The id of the IP Load Balancing.' + service_name: '- (Required) The id of the vrack.' importStatements: [] - vracks.html Resource - terraform-provider-ovh: + vracks.html.markdown: subCategory: "" - name: vracks.html Resource - terraform-provider-ovh - title: vracks.html Resource - terraform-provider-ovh - argumentDocs: {} + description: 'vracks.html.markdownsubcategory : "vRack"' + name: vracks.html.markdown + title: vracks.html.markdown + argumentDocs: + result: '- The list of vrack service name available for your OVHcloud account.' + urn: '- The URN of the vps' importStatements: [] diff --git a/config/provider.go b/config/provider.go index b8b3cb3..ae335f2 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/kms" + "github.com/edixos/provider-ovh/config/gateway" "github.com/edixos/provider-ovh/config/vps" @@ -90,6 +92,7 @@ func GetProvider() *ujconfig.Provider { vrack.Configure, vps.Configure, gateway.Configure, + kms.Configure, } { configure(pc) } diff --git a/config/public_cloud_network/config.go b/config/public_cloud_network/config.go index 6844790..e8e308b 100644 --- a/config/public_cloud_network/config.go +++ b/config/public_cloud_network/config.go @@ -19,4 +19,11 @@ func Configure(p *config.Provider) { Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", } }) + p.AddResourceConfigurator("ovh_cloud_project_network_private_subnet_v2", func(r *config.Resource) { + r.ShortGroup = shortGroup + r.Kind = "SubnetV2" + r.References["network_id"] = config.Reference{ + Type: "github.com/edixos/provider-ovh/apis/network/v1alpha1.PrivateNetwork", + } + }) } diff --git a/config/schema.json b/config/schema.json index 7e8be71..da4acaa 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":{"access_token":{"type":"string","description":"The OVH API Access Token","description_kind":"plain","optional":true},"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},"client_id":{"type":"string","description":"OAuth 2.0 application's ID","description_kind":"plain","optional":true},"client_secret":{"type":"string","description":"OAuth 2.0 application's 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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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":["set",["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":["set",["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},"kafka_schema_registry":{"type":"bool","description":"Defines whether the schema registry 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":{"ip_restrictions":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the IP restriction","description_kind":"plain","optional":true},"ip":{"type":"string","description":"Authorized IP","description_kind":"plain","optional":true},"status":{"type":"string","description":"Current status of the IP restriction","description_kind":"plain","computed":true}},"description":"IP Blocks authorized to access to the cluster","description_kind":"plain"}},"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","deprecated":true}},"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_log_subscription":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Creation date of the subscription","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},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true,"sensitive":true},"operation_id":{"type":"string","description":"Identifier of the operation","description_kind":"plain","computed":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Last update date of the subscription","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_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,"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_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":{"external_information":{"type":["list",["object",{"ips":["list",["object",{"ip":"string","subnet_id":"string"}]],"network_id":"string"}]],"description":"External information of the gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interfaces":{"type":["list",["object",{"id":"string","ip":"string","network_id":"string","subnet_id":"string"}]],"description":"Interfaces list of the gateway","description_kind":"plain","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_gateway_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"ID of the gateway","description_kind":"plain","required":true},"interface_id":{"type":"string","description":"Interface ID","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IP of the interface","description_kind":"plain","computed":true},"network_id":{"type":"string","description":"Network ID of the interface","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region name","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Subnet id to add","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},"load_balancers_subnet_id":{"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_subnet_id":{"type":"string","description_kind":"plain","optional":true,"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_loadbalancer_log_subscription":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date of the subscription","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","required":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"operation_id":{"type":"string","description":"Identifier of the operation","description_kind":"plain","computed":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","description_kind":"plain","required":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","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},"stream_id":{"type":"string","description":"ID representing the stream of the resource","description_kind":"plain","required":true},"subscription_id":{"type":"string","description":"Id of the subscription","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":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},"autoscale":{"type":"bool","description":"Whether the workload is auto-scaled","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Input creation","description_kind":"plain","computed":true},"current_nb_instance":{"type":"number","description":"Number of instance running (returned by the API)","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},"max_scale_instance":{"type":"number","description":"Maximum number of instances in auto-scaled mode","description_kind":"plain","optional":true},"min_scale_instance":{"type":"number","description":"Minimum number of instances in auto-scaled mode","description_kind":"plain","optional":true},"nb_instance":{"type":"number","description":"Number of instance running","description_kind":"plain","optional":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},"write_token":{"type":"string","description":"Write token of the stream","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"ovh_dbaas_logs_token":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"markdown","optional":true,"computed":true},"created_at":{"type":"string","description":"Token creation","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Token name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"token_id":{"type":"string","description":"Token used","description_kind":"markdown","computed":true},"updated_at":{"type":"string","description":"Token last update","description_kind":"markdown","computed":true},"value":{"type":"string","description":"Token value","description_kind":"markdown","computed":true,"sensitive":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":{"acl_description":{"type":"string","description":"A brief description of the ACL","description_kind":"plain","optional":true},"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":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description":"dedicated AZ localisation","description_kind":"markdown","computed":true},"boot_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"boot_script":{"type":"string","description":"Ipxe script served on boot","description_kind":"markdown","optional":true,"computed":true},"commercial_range":{"type":"string","description":"dedicater server commercial range","description_kind":"markdown","computed":true},"datacenter":{"type":"string","description":"dedicated datacenter localisation","description_kind":"markdown","computed":true},"details":{"nested_type":{"attributes":{"custom_hostname":{"type":"string","description":"Personnal hostname to use in server reinstallation","description_kind":"markdown","optional":true},"disk_group_id":{"type":"number","description":"Disk group id to process install on (only available for some templates)","description_kind":"markdown","optional":true},"no_raid":{"type":"bool","description":"true if you want to install only on the first disk","description_kind":"markdown","optional":true},"soft_raid_devices":{"type":"number","description":"Number of devices to use for system's software RAID","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"A structure describing informations about installation custom","description_kind":"markdown","optional":true},"display_name":{"type":"string","description":"The display name of your dedicated server","description_kind":"markdown","optional":true,"computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"dedicated server ip","description_kind":"markdown","computed":true},"link_speed":{"type":"number","description_kind":"plain","computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"markdown","optional":true,"computed":true},"name":{"type":"string","description":"dedicated server name","description_kind":"markdown","computed":true},"new_upgrade_system":{"type":"bool","description_kind":"plain","computed":true},"no_intervention":{"type":"bool","description":"Prevent datacenter intervention","description_kind":"markdown","optional":true,"computed":true},"order":{"nested_type":{"attributes":{"date":{"type":"string","description_kind":"plain","computed":true},"details":{"nested_type":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"detail_type":{"type":"string","description":"Product type of item in order","description_kind":"markdown","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"order_detail_id":{"type":"number","description_kind":"plain","computed":true},"quantity":{"type":"string","description_kind":"plain","computed":true}},"nesting_mode":"list"},"description_kind":"plain","computed":true},"expiration_date":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Details about an Order","description_kind":"markdown","computed":true},"os":{"type":"string","description":"Operating system","description_kind":"markdown","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiaries","description_kind":"markdown","required":true},"partition_scheme_name":{"type":"string","description":"Partition scheme name","description_kind":"markdown","optional":true},"plan":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"item_id":{"type":"number","description":"Cart item to be linked","description_kind":"markdown","optional":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"plan_option":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"power_state":{"type":"string","description":"Power state of the server","description_kind":"markdown","computed":true},"professional_use":{"type":"bool","description":"Does this server have professional use option","description_kind":"markdown","computed":true},"rack":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description":"dedicated region localisation","description_kind":"markdown","computed":true},"rescue_mail":{"type":"string","description":"Custom email used to receive rescue credentials","description_kind":"markdown","optional":true,"computed":true},"rescue_ssh_key":{"type":"string","description":"Public SSH Key used in the rescue mode","description_kind":"markdown","optional":true,"computed":true},"reverse":{"type":"string","description":"dedicated server reverse","description_kind":"markdown","computed":true},"root_device":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"number","description":"Server id","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server","description_kind":"markdown","computed":true},"state":{"type":"string","description":"All states a Dedicated can be in","description_kind":"markdown","optional":true,"computed":true},"support_level":{"type":"string","description":"Dedicated server support level","description_kind":"markdown","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"markdown","optional":true},"user_metadata":{"nested_type":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"nesting_mode":"list"},"description":"Metadata","description_kind":"markdown","optional":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":{"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},"no_raid":{"type":"bool","description_kind":"plain","optional":true},"soft_raid_devices":{"type":"number","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"}},"user_metadata":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"The key for the user_metadata","description_kind":"plain","required":true},"value":{"type":"string","description":"The value for the user_metadata","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":128}},"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},"display_name":{"type":"string","description":"Display name of the dedicated server","description_kind":"plain","optional":true,"computed":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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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_dnssec":{"version":0,"block":{"attributes":{"status":{"type":"string","description":"DNSSEC Status","description_kind":"markdown","computed":true},"zone_name":{"type":"string","description":"The internal name of your zone","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_domain_zone_import":{"version":0,"block":{"attributes":{"exported_content":{"type":"string","description":"Zone file exported from the API","description_kind":"markdown","computed":true},"zone_file":{"type":"string","description":"Zone file that will be imported","description_kind":"markdown","required":true},"zone_name":{"type":"string","description":"Zone name","description_kind":"markdown","required":true}},"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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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_firewall":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"state":{"type":"string","description":"Current state of your ip on firewall","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"Possible values for action","description_kind":"markdown","required":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description":"Destination ip for your rule","description_kind":"markdown","computed":true},"destination_port":{"type":"number","description":"Destination port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","optional":true,"computed":true},"destination_port_desc":{"type":"string","description":"Destination port range for your rule. Only with TCP/UDP protocol","description_kind":"plain","computed":true},"fragments":{"type":"bool","description":"Fragments option","description_kind":"markdown","optional":true,"computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"protocol":{"type":"string","description":"Possible values for protocol","description_kind":"markdown","required":true},"rule":{"type":"string","description_kind":"plain","computed":true},"sequence":{"type":"number","description":"Possible values for action","description_kind":"markdown","required":true},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","optional":true,"computed":true},"source_port":{"type":"number","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","optional":true,"computed":true},"source_port_desc":{"type":"string","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"plain","computed":true},"state":{"type":"string","description":"Current state of your rule","description_kind":"markdown","computed":true},"tcp_option":{"type":"string","description":"TCP option on your rule","description_kind":"markdown","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_ip_mitigation":{"version":0,"block":{"attributes":{"auto":{"type":"bool","description":"Set on true if your ip is on auto-mitigation","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_mitigation":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"permanent":{"type":"bool","description":"Set on true if your ip is on permanent mitigation","description_kind":"markdown","optional":true,"computed":true},"state":{"type":"string","description":"Current state of your ip on mitigation","description_kind":"markdown","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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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":["set","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":["set","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},"denied_source":{"type":["set","string"],"description_kind":"plain","optional":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_udp_frontend":{"version":0,"block":{"attributes":{"dedicated_ipfo":{"type":["list","string"],"description":"Only attach frontend on these ip. No restriction if null","description_kind":"markdown","optional":true,"computed":true},"default_farm_id":{"type":"number","description":"Default UDP Farm of your frontend","description_kind":"markdown","optional":true,"computed":true},"disabled":{"type":"bool","description":"Disable your frontend. Default: 'false'","description_kind":"markdown","optional":true,"computed":true},"display_name":{"type":"string","description":"Human readable name for your frontend, this field is for you","description_kind":"markdown","optional":true,"computed":true},"frontend_id":{"type":"number","description":"Id of your frontend","description_kind":"markdown","computed":true},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range.","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"markdown","required":true},"zone":{"type":"string","description":"Zone of your frontend. Use \"all\" for all owned zone.","description_kind":"markdown","required":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":{"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},"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},"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},"end_of_install":{"type":"string","description":"after this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Partitioning customization is not available for this OS template","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},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"this template subfamily type","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":{"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","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_vps":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Set the name displayed in Manager for your VPS (max 50 chars)","description_kind":"markdown","optional":true,"computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"keymap":{"type":"string","description":"KVM keyboard layout on VPS Cloud","description_kind":"plain","optional":true,"computed":true},"memory_limit":{"type":"number","description_kind":"plain","optional":true,"computed":true},"model":{"nested_type":{"attributes":{"available_options":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"datacenter":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"disk":{"type":"number","description_kind":"plain","optional":true,"computed":true},"maximum_additionnal_ip":{"type":"number","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vcore":{"type":"number","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"All versions that VPS can have","description_kind":"markdown","optional":true,"computed":true}},"nesting_mode":"single"},"description":"A structure describing characteristics of a VPS model","description_kind":"markdown","optional":true,"computed":true},"monitoring_ip_blocks":{"type":["list","string"],"description":"Ip blocks for OVH monitoring servers","description_kind":"markdown","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"netboot_mode":{"type":"string","description":"All values a VPS netboot mode can be in","description_kind":"markdown","optional":true,"computed":true},"offer_type":{"type":"string","description":"All offers a VPS can have","description_kind":"markdown","optional":true,"computed":true},"order":{"nested_type":{"attributes":{"date":{"type":"string","description_kind":"plain","computed":true},"details":{"nested_type":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"detail_type":{"type":"string","description":"Product type of item in order","description_kind":"markdown","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"order_detail_id":{"type":"number","description_kind":"plain","computed":true},"quantity":{"type":"string","description_kind":"plain","computed":true}},"nesting_mode":"list"},"description_kind":"plain","computed":true},"expiration_date":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Details about an Order","description_kind":"markdown","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiaries","description_kind":"markdown","required":true},"plan":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"item_id":{"type":"number","description":"Cart item to be linked","description_kind":"markdown","optional":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"plan_option":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your VPS offer","description_kind":"markdown","computed":true},"sla_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"All states a VPS can be in","description_kind":"markdown","optional":true,"computed":true},"vcore":{"type":"number","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":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},"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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"}},"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":{"version":0,"block":{"attributes":{"access":{"type":"string","description":"Project access","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description":"Project creation date","description_kind":"markdown","computed":true},"description":{"type":"string","description":"Description of your project","description_kind":"markdown","computed":true},"expiration":{"type":"string","description":"Expiration date of your project. After this date, your project will be deleted","description_kind":"markdown","computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"manual_quota":{"type":"bool","description":"Manual quota prevent automatic quota upgrade","description_kind":"markdown","computed":true},"order_id":{"type":"number","description":"Project order id","description_kind":"markdown","computed":true},"plan_code":{"type":"string","description":"Order plan code","description_kind":"markdown","computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"markdown","computed":true},"project_name":{"type":"string","description":"Project name","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"status":{"type":"string","description":"Current status","description_kind":"markdown","computed":true},"unleash":{"type":"bool","description":"Project unleashed","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"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":["set",["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":["set",["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},"ip_restrictions":{"type":["set",["object",{"description":"string","ip":"string","status":"string"}]],"description":"IP Blocks authorized to access to the cluster","description_kind":"plain","computed":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","computed":true},"kafka_schema_registry":{"type":"bool","description":"Defines whether the schema registry 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","deprecated":true}},"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_log_subscription":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Creation date of the subscription","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":"Id of the subscrition","description_kind":"plain","required":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true,"sensitive":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_log_subscriptions":{"version":0,"block":{"attributes":{"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},"subscription_ids":{"type":["list","string"],"description":"List of log subscription ids","description_kind":"plain","computed":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_connection_pools":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"connection_pool_ids":{"type":["list","string"],"description":"List of connection pools ids","description_kind":"plain","computed":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_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_gateway_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Id","description_kind":"plain","required":true},"interface_id":{"type":"string","description":"Interface ID","description_kind":"plain","required":true},"ip":{"type":"string","description":"IP of the interface","description_kind":"plain","computed":true},"network_id":{"type":"string","description":"Network ID of the interface","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region name","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Subnet ID of the interface","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},"load_balancers_subnet_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_subnet_id":{"type":"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_loadbalancer":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The UTC date and timestamp when the loadbalancer was created","description_kind":"markdown","computed":true},"flavor_id":{"type":"string","description":"ID of the flavor","description_kind":"markdown","computed":true},"floating_ip":{"nested_type":{"attributes":{"id":{"type":"string","description":"ID of the floating IP","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP Address of the floating IP","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Information about floating IP","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Load balancer ID","description_kind":"markdown","required":true},"name":{"type":"string","description":"Name of the loadbalancer","description_kind":"markdown","computed":true},"operating_status":{"type":"string","description":"Operating status of the loadbalancer","description_kind":"markdown","computed":true},"provisioning_status":{"type":"string","description":"Provisioning status of the loadbalancer","description_kind":"markdown","computed":true},"region_name":{"type":"string","description":"Region of the loadbalancer","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"updated_at":{"type":"string","description":"UTC date and timestamp when the loadbalancer was updated","description_kind":"markdown","computed":true},"vip_address":{"type":"string","description":"IP address of the Virtual IP","description_kind":"markdown","computed":true},"vip_network_id":{"type":"string","description":"Openstack ID of the network for the Virtual IP","description_kind":"markdown","computed":true},"vip_subnet_id":{"type":"string","description":"ID of the subnet for the Virtual IP","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_loadbalancers":{"version":0,"block":{"attributes":{"loadbalancers":{"nested_type":{"attributes":{"created_at":{"type":"string","description":"The UTC date and timestamp when the loadbalancer was created","description_kind":"markdown","computed":true},"flavor_id":{"type":"string","description":"ID of the flavor","description_kind":"markdown","computed":true},"floating_ip":{"nested_type":{"attributes":{"id":{"type":"string","description":"ID of the floating IP","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP Address of the floating IP","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Information about floating IP","description_kind":"markdown","computed":true},"id":{"type":"string","description":"ID of the loadbalancer","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Name of the loadbalancer","description_kind":"markdown","computed":true},"operating_status":{"type":"string","description":"Operating status of the loadbalancer","description_kind":"markdown","computed":true},"provisioning_status":{"type":"string","description":"Provisioning status of the loadbalancer","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Region of the loadbalancer","description_kind":"markdown","computed":true},"updated_at":{"type":"string","description":"UTC date and timestamp when the loadbalancer was updated","description_kind":"markdown","computed":true},"vip_address":{"type":"string","description":"IP address of the Virtual IP","description_kind":"markdown","computed":true},"vip_network_id":{"type":"string","description":"Openstack ID of the network for the Virtual IP","description_kind":"markdown","computed":true},"vip_subnet_id":{"type":"string","description":"ID of the subnet for the Virtual IP","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":true},"region_name":{"type":"string","description":"Region name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","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_region_loadbalancer_log_subscription":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date of the subscription","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","description_kind":"plain","required":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","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},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","computed":true},"subscription_id":{"type":"string","description":"ID representing the subscription","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_region_loadbalancer_log_subscriptions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Kind representing the loadbalancer.","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","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},"subscription_ids":{"type":["list","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_cloud_projects":{"version":0,"block":{"attributes":{"projects":{"nested_type":{"attributes":{"access":{"type":"string","description":"Project access","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description":"Project creation date","description_kind":"markdown","computed":true},"description":{"type":"string","description":"Description of your project","description_kind":"markdown","computed":true},"expiration":{"type":"string","description":"Expiration date of your project. After this date, your project will be deleted","description_kind":"markdown","computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"manual_quota":{"type":"bool","description":"Manual quota prevent automatic quota upgrade","description_kind":"markdown","computed":true},"order_id":{"type":"number","description":"Project order id","description_kind":"markdown","computed":true},"plan_code":{"type":"string","description":"Order plan code","description_kind":"markdown","computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"markdown","computed":true},"project_name":{"type":"string","description":"Project name","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","computed":true},"status":{"type":"string","description":"Current status","description_kind":"markdown","computed":true},"unleash":{"type":"bool","description":"Project unleashed","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":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,"computed":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_cluster_retention":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"markdown","required":true},"duration":{"type":"string","description":"Indexed duration expressed in ISO-8601 format","description_kind":"markdown","optional":true,"computed":true},"is_supported":{"type":"bool","description":"Indicates if a new stream can use it","description_kind":"markdown","computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"markdown","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":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},"write_token":{"type":"string","description":"Write token of the stream","description_kind":"plain","computed":true,"sensitive":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_template":{"version":0,"block":{"attributes":{"bit_format":{"type":"number","description":"Template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"Distribution this template is based on","description_kind":"plain","computed":true},"end_of_install":{"type":"string","description":"After this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"Template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"Distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"license":{"type":["list",["object",{"os":["set",["object",{"name":["list","string"],"url":"string"}]],"usage":["set",["object",{"name":["list","string"],"url":"string"}]]}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Template supports RAID0 and RAID1 on 2 disks","description_kind":"plain","computed":true},"project":{"type":["list",["object",{"os":["list",["object",{"governance":["list","string"],"name":"string","release_notes":"string","url":"string","version":"string"}]],"usage":["list",["object",{"governance":["list","string"],"name":"string","release_notes":"string","url":"string","version":"string"}]]}]],"description":"Distribution project details","description_kind":"plain","computed":true},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"Template subfamily type","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":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_server_specifications_network":{"version":0,"block":{"attributes":{"bandwidth":{"nested_type":{"attributes":{"internet_to_ovh":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation Internet to OVH","description_kind":"markdown","computed":true},"ovh_to_internet":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation OVH to Internet","description_kind":"markdown","computed":true},"ovh_to_ovh":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation OVH to OVH","description_kind":"markdown","computed":true},"type":{"type":"string","description":"bandwidth offer type","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Bandwidth details","description_kind":"markdown","computed":true},"connection_val":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Network connection flow rate","description_kind":"markdown","computed":true},"ola":{"nested_type":{"attributes":{"available":{"type":"bool","description":"Is the OLA feature available","description_kind":"markdown","computed":true},"available_modes":{"nested_type":{"attributes":{"default":{"type":"bool","description":"Is it the default configuration of the server","description_kind":"markdown","computed":true},"interfaces":{"nested_type":{"attributes":{"aggregation":{"type":"bool","description":"Interface aggregation status","description_kind":"markdown","computed":true},"count":{"type":"number","description":"Interface count","description_kind":"markdown","computed":true},"type":{"type":"string","description":"An enum describing OVH Link Aggregation interface types","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"Interface layout","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Mode name","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"What modes are supported","description_kind":"markdown","computed":true},"supported_modes":{"type":["list","string"],"description":"(DEPRECATED) What modes are supported","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"OLA details","description_kind":"markdown","computed":true},"routing":{"nested_type":{"attributes":{"ipv4":{"nested_type":{"attributes":{"gateway":{"type":"string","description":"Server gateway","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"Server main IP","description_kind":"markdown","computed":true},"network":{"type":"string","description":"Server network","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Ipv4 routing details","description_kind":"markdown","computed":true},"ipv6":{"nested_type":{"attributes":{"gateway":{"type":"string","description":"Server gateway","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"Server main IP","description_kind":"markdown","computed":true},"network":{"type":"string","description":"Server network","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Ipv6 routing details","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Routing details","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server","description_kind":"markdown","required":true},"switching":{"nested_type":{"attributes":{"name":{"type":"string","description":"Switch name","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Switching details","description_kind":"markdown","computed":true},"traffic":{"nested_type":{"attributes":{"input_quota_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly input traffic quota allowed","description_kind":"markdown","computed":true},"input_quota_used":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly input traffic consumed this month","description_kind":"markdown","computed":true},"is_throttled":{"type":"bool","description":"Is bandwidth throttleted for being over quota","description_kind":"markdown","computed":true},"output_quota_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly output traffic quota allowed","description_kind":"markdown","computed":true},"output_quota_used":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly output traffic consumed this month","description_kind":"markdown","computed":true},"reset_quota_date":{"type":"string","description":"Next reset quota date for traffic counter","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Traffic details","description_kind":"markdown","computed":true},"vmac":{"nested_type":{"attributes":{"supported":{"type":"bool","description":"Server is compatible vmac or not","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"A structure describing VMAC Infos for this dedicated server","description_kind":"markdown","computed":true},"vrack":{"nested_type":{"attributes":{"bandwidth":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"vrack bandwidth limitation","description_kind":"markdown","computed":true},"type":{"type":"string","description":"bandwidth offer type","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"vRack details","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_domain_zone_dnssec":{"version":0,"block":{"attributes":{"status":{"type":"string","description":"DNSSEC Status","description_kind":"markdown","computed":true},"zone_name":{"type":"string","description":"The internal name of your zone","description_kind":"markdown","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","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_firewall":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"state":{"type":"string","description":"Current state of your ip on firewall","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"Possible values for action","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description":"Destination ip for your rule","description_kind":"markdown","computed":true},"destination_port":{"type":"string","description":"Destination port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","computed":true},"fragments":{"type":"bool","description":"Fragments option","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"protocol":{"type":"string","description":"Possible values for protocol","description_kind":"markdown","computed":true},"rule":{"type":"string","description_kind":"plain","computed":true},"sequence":{"type":"number","description":"Possible values for action","description_kind":"markdown","required":true},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","computed":true},"source_port":{"type":"string","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","computed":true},"state":{"type":"string","description":"Current state of your rule","description_kind":"markdown","computed":true},"tcp_option":{"type":"string","description":"TCP option on your rule","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_mitigation":{"version":0,"block":{"attributes":{"auto":{"type":"bool","description":"Set on true if your ip is on auto-mitigation","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_mitigation":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"permanent":{"type":"bool","description":"Set on true if your ip is on permanent mitigation","description_kind":"markdown","computed":true},"state":{"type":"string","description":"Current state of your ip on mitigation","description_kind":"markdown","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},"urn":{"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":{"bit_format":{"type":"number","description":"Template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only)","description_kind":"plain","computed":true},"customization":{"type":["list",["object",{"custom_hostname":"string"}]],"description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"Distribution this template is based on","description_kind":"plain","computed":true},"end_of_install":{"type":"string","description":"After this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"Template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"Distribution supports hardware raid configuration through the OVH API","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this Distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Template supports RAID0 and RAID1 on 2 disks","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},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"Template subfamily type","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"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_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":{"access_token":{"type":"string","description":"The OVH API Access Token","description_kind":"plain","optional":true},"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},"client_id":{"type":"string","description":"OAuth 2.0 application's ID","description_kind":"plain","optional":true},"client_secret":{"type":"string","description":"OAuth 2.0 application's 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},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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":["set",["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":["set",["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},"kafka_schema_registry":{"type":"bool","description":"Defines whether the schema registry 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","optional":true,"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":{"ip_restrictions":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the IP restriction","description_kind":"plain","optional":true},"ip":{"type":"string","description":"Authorized IP","description_kind":"plain","optional":true},"status":{"type":"string","description":"Current status of the IP restriction","description_kind":"plain","computed":true}},"description":"IP Blocks authorized to access to the cluster","description_kind":"plain"}},"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","deprecated":true}},"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_log_subscription":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Creation date of the subscription","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},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true,"sensitive":true},"operation_id":{"type":"string","description":"Identifier of the operation","description_kind":"plain","computed":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Last update date of the subscription","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_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","optional":true,"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","optional":true,"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","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},"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,"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_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":{"external_information":{"type":["list",["object",{"ips":["list",["object",{"ip":"string","subnet_id":"string"}]],"network_id":"string"}]],"description":"External information of the gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"interfaces":{"type":["list",["object",{"id":"string","ip":"string","network_id":"string","subnet_id":"string"}]],"description":"Interfaces list of the gateway","description_kind":"plain","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_gateway_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"ID of the gateway","description_kind":"plain","required":true},"interface_id":{"type":"string","description":"Interface ID","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IP of the interface","description_kind":"plain","computed":true},"network_id":{"type":"string","description":"Network ID of the interface","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region name","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Subnet id to add","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},"load_balancers_subnet_id":{"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_subnet_id":{"type":"string","description_kind":"plain","optional":true,"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_network_private_subnet_v2":{"version":0,"block":{"attributes":{"cidr":{"type":"string","description":"CIDR of subnet","description_kind":"plain","required":true},"dhcp":{"type":"bool","description":"Enable DHCP in subnet","description_kind":"plain","optional":true},"dns_nameservers":{"type":["list","string"],"description":"List of DNS nameservers, default: 213.186.33.99","description_kind":"plain","optional":true},"enable_gateway_ip":{"type":"bool","description":"Enable gateway IP in subnet","description_kind":"plain","optional":true},"gateway_ip":{"type":"string","description":"Gateway IP of subnet","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of subnet","description_kind":"plain","required":true},"network_id":{"type":"string","description":"Network ID of subnet","description_kind":"plain","required":true},"region":{"type":"string","description":"Region of network/subnet","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}},"block_types":{"allocation_pool":{"nesting_mode":"list","block":{"attributes":{"end":{"type":"string","description_kind":"plain","required":true},"start":{"type":"string","description_kind":"plain","required":true}},"description":"DHCP allocation pools of subnet","description_kind":"plain"}},"host_route":{"nesting_mode":"list","block":{"attributes":{"destination":{"type":"string","description_kind":"plain","required":true},"nexthop":{"type":"string","description_kind":"plain","required":true}},"description":"Static host routes of subnet","description_kind":"plain"}}},"description_kind":"plain"}},"ovh_cloud_project_region_loadbalancer_log_subscription":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date of the subscription","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","required":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"operation_id":{"type":"string","description":"Identifier of the operation","description_kind":"plain","computed":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","description_kind":"plain","required":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","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},"stream_id":{"type":"string","description":"ID representing the stream of the resource","description_kind":"plain","required":true},"subscription_id":{"type":"string","description":"Id of the subscription","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":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},"autoscale":{"type":"bool","description":"Whether the workload is auto-scaled","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Input creation","description_kind":"plain","computed":true},"current_nb_instance":{"type":"number","description":"Number of instance running (returned by the API)","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},"max_scale_instance":{"type":"number","description":"Maximum number of instances in auto-scaled mode","description_kind":"plain","optional":true},"min_scale_instance":{"type":"number","description":"Minimum number of instances in auto-scaled mode","description_kind":"plain","optional":true},"nb_instance":{"type":"number","description":"Number of instance running","description_kind":"plain","optional":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},"write_token":{"type":"string","description":"Write token of the stream","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"ovh_dbaas_logs_output_opensearch_alias":{"version":0,"block":{"attributes":{"alias_id":{"type":"string","description":"Alias used","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Operation creation","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"Current alias size (in bytes)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Alias description","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"indexes":{"type":["set","string"],"description":"Indexes attached to alias","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},"name":{"type":"string","description":"Alias name","description_kind":"plain","computed":true},"nb_index":{"type":"number","description":"Number of index","description_kind":"plain","optional":true,"computed":true},"nb_stream":{"type":"number","description":"Number of shard","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"streams":{"type":["set","string"],"description":"Streams attached to alias","description_kind":"plain","optional":true,"computed":true},"suffix":{"type":"string","description":"Alias suffix","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Operation last update","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_output_opensearch_index":{"version":0,"block":{"attributes":{"alert_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of its maximum capacity","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Operation creation","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"Current Index size (in bytes)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Index description","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index_id":{"type":"string","description":"Index ID","description_kind":"plain","computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"max_size":{"type":"number","description":"Maximum index size (in bytes)","description_kind":"plain","computed":true},"name":{"type":"string","description":"Index name","description_kind":"plain","computed":true},"nb_shard":{"type":"number","description":"Number of shard","description_kind":"plain","required":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"suffix":{"type":"string","description":"Index suffix","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Operation last update","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_dbaas_logs_token":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"markdown","optional":true,"computed":true},"created_at":{"type":"string","description":"Token creation","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Token name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"token_id":{"type":"string","description":"Token used","description_kind":"markdown","computed":true},"updated_at":{"type":"string","description":"Token last update","description_kind":"markdown","computed":true},"value":{"type":"string","description":"Token value","description_kind":"markdown","computed":true,"sensitive":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":{"acl_description":{"type":"string","description":"A brief description of the ACL","description_kind":"plain","optional":true},"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":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description":"dedicated AZ localisation","description_kind":"markdown","computed":true},"boot_id":{"type":"number","description_kind":"plain","optional":true,"computed":true},"boot_script":{"type":"string","description":"Ipxe script served on boot","description_kind":"markdown","optional":true,"computed":true},"commercial_range":{"type":"string","description":"dedicater server commercial range","description_kind":"markdown","computed":true},"datacenter":{"type":"string","description":"dedicated datacenter localisation","description_kind":"markdown","computed":true},"details":{"nested_type":{"attributes":{"custom_hostname":{"type":"string","description":"Personnal hostname to use in server reinstallation","description_kind":"markdown","optional":true},"disk_group_id":{"type":"number","description":"Disk group id to process install on (only available for some templates)","description_kind":"markdown","optional":true},"no_raid":{"type":"bool","description":"true if you want to install only on the first disk","description_kind":"markdown","optional":true},"soft_raid_devices":{"type":"number","description":"Number of devices to use for system's software RAID","description_kind":"markdown","optional":true}},"nesting_mode":"single"},"description":"A structure describing informations about installation custom","description_kind":"markdown","optional":true},"display_name":{"type":"string","description":"The display name of your dedicated server","description_kind":"markdown","optional":true,"computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"dedicated server ip","description_kind":"markdown","computed":true},"link_speed":{"type":"number","description_kind":"plain","computed":true},"monitoring":{"type":"bool","description":"Icmp monitoring state","description_kind":"markdown","optional":true,"computed":true},"name":{"type":"string","description":"dedicated server name","description_kind":"markdown","computed":true},"new_upgrade_system":{"type":"bool","description_kind":"plain","computed":true},"no_intervention":{"type":"bool","description":"Prevent datacenter intervention","description_kind":"markdown","optional":true,"computed":true},"order":{"nested_type":{"attributes":{"date":{"type":"string","description_kind":"plain","computed":true},"details":{"nested_type":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"detail_type":{"type":"string","description":"Product type of item in order","description_kind":"markdown","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"order_detail_id":{"type":"number","description_kind":"plain","computed":true},"quantity":{"type":"string","description_kind":"plain","computed":true}},"nesting_mode":"list"},"description_kind":"plain","computed":true},"expiration_date":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Details about an Order","description_kind":"markdown","computed":true},"os":{"type":"string","description":"Operating system","description_kind":"markdown","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiaries","description_kind":"markdown","optional":true},"partition_scheme_name":{"type":"string","description":"Partition scheme name","description_kind":"markdown","optional":true},"plan":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"item_id":{"type":"number","description":"Cart item to be linked","description_kind":"markdown","optional":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"plan_option":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"power_state":{"type":"string","description":"Power state of the server","description_kind":"markdown","computed":true},"professional_use":{"type":"bool","description":"Does this server have professional use option","description_kind":"markdown","computed":true},"rack":{"type":"string","description_kind":"plain","computed":true},"region":{"type":"string","description":"dedicated region localisation","description_kind":"markdown","computed":true},"rescue_mail":{"type":"string","description":"Custom email used to receive rescue credentials","description_kind":"markdown","optional":true,"computed":true},"rescue_ssh_key":{"type":"string","description":"Public SSH Key used in the rescue mode","description_kind":"markdown","optional":true,"computed":true},"reverse":{"type":"string","description":"dedicated server reverse","description_kind":"markdown","computed":true},"root_device":{"type":"string","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"number","description":"Server id","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server","description_kind":"markdown","computed":true},"state":{"type":"string","description":"All states a Dedicated can be in","description_kind":"markdown","optional":true,"computed":true},"support_level":{"type":"string","description":"Dedicated server support level","description_kind":"markdown","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"markdown","optional":true},"user_metadata":{"nested_type":{"attributes":{"key":{"type":"string","description_kind":"plain","optional":true},"value":{"type":"string","description_kind":"plain","optional":true}},"nesting_mode":"list"},"description":"Metadata","description_kind":"markdown","optional":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":{"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},"no_raid":{"type":"bool","description_kind":"plain","optional":true},"soft_raid_devices":{"type":"number","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"}},"user_metadata":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description":"The key for the user_metadata","description_kind":"plain","required":true},"value":{"type":"string","description":"The value for the user_metadata","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":128}},"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},"display_name":{"type":"string","description":"Display name of the dedicated server","description_kind":"plain","optional":true,"computed":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},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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_dnssec":{"version":0,"block":{"attributes":{"status":{"type":"string","description":"DNSSEC Status","description_kind":"markdown","computed":true},"zone_name":{"type":"string","description":"The internal name of your zone","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_domain_zone_import":{"version":0,"block":{"attributes":{"exported_content":{"type":"string","description":"Zone file exported from the API","description_kind":"markdown","computed":true},"zone_file":{"type":"string","description":"Zone file that will be imported","description_kind":"markdown","required":true},"zone_name":{"type":"string","description":"Zone name","description_kind":"markdown","required":true}},"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},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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_firewall":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"state":{"type":"string","description":"Current state of your ip on firewall","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"Possible values for action","description_kind":"markdown","required":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description":"Destination ip for your rule","description_kind":"markdown","computed":true},"destination_port":{"type":"number","description":"Destination port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","optional":true,"computed":true},"destination_port_desc":{"type":"string","description":"Destination port range for your rule. Only with TCP/UDP protocol","description_kind":"plain","computed":true},"fragments":{"type":"bool","description":"Fragments option","description_kind":"markdown","optional":true,"computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"protocol":{"type":"string","description":"Possible values for protocol","description_kind":"markdown","required":true},"rule":{"type":"string","description_kind":"plain","computed":true},"sequence":{"type":"number","description":"Possible values for action","description_kind":"markdown","required":true},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","optional":true,"computed":true},"source_port":{"type":"number","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","optional":true,"computed":true},"source_port_desc":{"type":"string","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"plain","computed":true},"state":{"type":"string","description":"Current state of your rule","description_kind":"markdown","computed":true},"tcp_option":{"type":"string","description":"TCP option on your rule","description_kind":"markdown","optional":true,"computed":true}},"description_kind":"plain"}},"ovh_ip_mitigation":{"version":0,"block":{"attributes":{"auto":{"type":"bool","description":"Set on true if your ip is on auto-mitigation","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_mitigation":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"permanent":{"type":"bool","description":"Set on true if your ip is on permanent mitigation","description_kind":"markdown","optional":true,"computed":true},"state":{"type":"string","description":"Current state of your ip on mitigation","description_kind":"markdown","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},"organisation_id":{"type":"string","description_kind":"plain","computed":true},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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},"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","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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":["set","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_ssl":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"Certificate","description_kind":"markdown","required":true},"chain":{"type":"string","description":"Certificate chain","description_kind":"markdown","optional":true},"display_name":{"type":"string","description":"Human readable name for your ssl certificate, this field is for you","description_kind":"markdown","optional":true},"expire_date":{"type":"string","description":"Expire date of your SSL certificate","description_kind":"markdown","computed":true},"fingerprint":{"type":"string","description":"Fingerprint of your SSL certificate","description_kind":"markdown","computed":true},"id":{"type":"number","description":"Id of your SSL certificate","description_kind":"markdown","computed":true},"key":{"type":"string","description":"Certificate key","description_kind":"markdown","required":true,"sensitive":true},"san":{"type":["list","string"],"description":"Subject Alternative Name of your SSL certificate","description_kind":"markdown","computed":true},"serial":{"type":"string","description":"Serial of your SSL certificate (Deprecated, use fingerprint instead!)","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"markdown","required":true},"subject":{"type":"string","description":"Subject of your SSL certificate","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Type of your SSL certificate.\n'built' for SSL certificates managed by the IP Load Balancing. 'custom' for user manager certificates.","description_kind":"markdown","computed":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":["set","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},"denied_source":{"type":["set","string"],"description_kind":"plain","optional":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_udp_farm":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Human readable name for your backend, this field is for you","description_kind":"markdown","optional":true},"farm_id":{"type":"number","description":"Id of your farm","description_kind":"markdown","computed":true},"port":{"type":"number","description":"Port attached to your farm ([1..49151]). Inherited from frontend if null","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"markdown","required":true},"vrack_network_id":{"type":"number","description":"Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack","description_kind":"markdown","optional":true},"zone":{"type":"string","description":"Zone of your farm","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_udp_farm_server":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"backend_id":{"type":"number","description":"Synonym for farm_id","description_kind":"markdown","computed":true},"display_name":{"type":"string","description":"Human readable name for your server, this field is for you","description_kind":"markdown","optional":true},"farm_id":{"type":"number","description":"Id of your farm","description_kind":"markdown","required":true},"port":{"type":"number","description":"Port attached to your server ([1..49151]). Inherited from farm if null","description_kind":"markdown","optional":true},"server_id":{"type":"number","description":"Id of your server","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"markdown","required":true},"status":{"type":"string","description":"Possible values for server status","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_iploadbalancing_udp_frontend":{"version":0,"block":{"attributes":{"dedicated_ipfo":{"type":["list","string"],"description":"Only attach frontend on these ip. No restriction if null","description_kind":"markdown","optional":true},"default_farm_id":{"type":"number","description":"Default UDP Farm of your frontend","description_kind":"markdown","optional":true},"disabled":{"type":"bool","description":"Disable your frontend. Default: 'false'","description_kind":"markdown","optional":true,"computed":true},"display_name":{"type":"string","description":"Human readable name for your frontend, this field is for you","description_kind":"markdown","optional":true},"frontend_id":{"type":"number","description":"Id of your frontend","description_kind":"markdown","computed":true},"port":{"type":"string","description":"Port(s) attached to your frontend. Supports single port (numerical value), range (2 dash-delimited increasing ports) and comma-separated list of 'single port' and/or 'range'. Each port must be in the [1;49151] range.","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"The internal name of your IP load balancing","description_kind":"markdown","required":true},"zone":{"type":"string","description":"Zone of your frontend. Use \"all\" for all owned zone.","description_kind":"markdown","required":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":{"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},"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},"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},"end_of_install":{"type":"string","description":"after this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"this template family type","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"This distribution supports hardware raid configuration through the OVH API","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Partitioning customization is not available for this OS template","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},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"this template subfamily type","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":{"custom_hostname":{"type":"string","description":"Set up the server using the provided hostname instead of the default hostname","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_okms":{"version":0,"block":{"attributes":{"display_name":{"type":"string","description":"Set the name displayed in Manager for this KMS","description_kind":"markdown","optional":true,"computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"id":{"type":"string","description":"OKMS ID","description_kind":"markdown","computed":true},"kmip_endpoint":{"type":"string","description":"KMS kmip API endpoint","description_kind":"markdown","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiaries","description_kind":"markdown","required":true},"public_ca":{"type":"string","description":"KMS public CA (Certificate Authority)","description_kind":"markdown","computed":true},"region":{"type":"string","description":"KMS region","description_kind":"markdown","required":true},"rest_endpoint":{"type":"string","description":"KMS rest API endpoint","description_kind":"markdown","computed":true},"swagger_endpoint":{"type":"string","description":"KMS rest API swagger UI","description_kind":"markdown","computed":true}},"description":"Creates an OVHcloud Key Management Service (okms).","description_kind":"plain"}},"ovh_okms_credential":{"version":0,"block":{"attributes":{"certificate_pem":{"type":"string","description":"Certificate PEM of the credential","description_kind":"markdown","computed":true},"created_at":{"type":"string","description":"Creation time of the credential","description_kind":"markdown","computed":true},"csr":{"type":"string","description":"Valid Certificate Signing Request","description_kind":"markdown","optional":true,"computed":true},"description":{"type":"string","description":"Description of the credential (max 200)","description_kind":"markdown","optional":true,"computed":true},"expired_at":{"type":"string","description":"Expiration time of the credential","description_kind":"markdown","computed":true},"from_csr":{"type":"bool","description":"Is the credential generated from CSR","description_kind":"markdown","computed":true},"id":{"type":"string","description":"ID of the credential","description_kind":"markdown","computed":true},"identity_urns":{"type":["list","string"],"description":"List of identity URNs associated with the credential (max 25)","description_kind":"markdown","required":true},"name":{"type":"string","description":"Name of the credential (max 50)","description_kind":"markdown","required":true},"okms_id":{"type":"string","description":"Okms ID","description_kind":"markdown","required":true},"private_key_pem":{"type":"string","description":"Private Key PEM of the credential if no CSR is provided (cannot be retrieve later)","description_kind":"markdown","computed":true,"sensitive":true},"status":{"type":"string","description":"Status of the credential","description_kind":"markdown","computed":true},"validity":{"type":"number","description":"Validity in days (default 365, max 365)","description_kind":"markdown","optional":true,"computed":true}},"description":"Creates a credential for an OVHcloud KMS.","description_kind":"plain"}},"ovh_okms_service_key":{"version":0,"block":{"attributes":{"context":{"type":"string","description":"Context of the key","description_kind":"markdown","optional":true,"computed":true},"created_at":{"type":"string","description":"Creation time of the key","description_kind":"markdown","computed":true},"curve":{"type":"string","description":"Curve type for Elliptic Curve (EC) keys","description_kind":"markdown","optional":true,"computed":true},"deactivation_reason":{"type":"string","description":"Key deactivation reason","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Key ID","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Key name","description_kind":"markdown","required":true},"okms_id":{"type":"string","description":"Okms ID","description_kind":"markdown","required":true},"operations":{"type":["list","string"],"description":"The operations for which the key is intended to be used","description_kind":"markdown","required":true},"size":{"type":"number","description":"Size of the key to be created","description_kind":"markdown","optional":true,"computed":true},"state":{"type":"string","description":"State of the key","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Type of the key to be created","description_kind":"markdown","required":true}},"description":"Creates a Service Key in an OVHcloud KMS.","description_kind":"plain"}},"ovh_vps":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description_kind":"plain","computed":true},"display_name":{"type":"string","description":"Set the name displayed in Manager for your VPS (max 50 chars)","description_kind":"markdown","optional":true,"computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"keymap":{"type":"string","description":"KVM keyboard layout on VPS Cloud","description_kind":"plain","optional":true,"computed":true},"memory_limit":{"type":"number","description_kind":"plain","optional":true,"computed":true},"model":{"nested_type":{"attributes":{"available_options":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"datacenter":{"type":["list","string"],"description_kind":"plain","optional":true,"computed":true},"disk":{"type":"number","description_kind":"plain","optional":true,"computed":true},"maximum_additionnal_ip":{"type":"number","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer":{"type":"string","description_kind":"plain","optional":true,"computed":true},"vcore":{"type":"number","description_kind":"plain","optional":true,"computed":true},"version":{"type":"string","description":"All versions that VPS can have","description_kind":"markdown","optional":true,"computed":true}},"nesting_mode":"single"},"description":"A structure describing characteristics of a VPS model","description_kind":"markdown","optional":true,"computed":true},"monitoring_ip_blocks":{"type":["list","string"],"description":"Ip blocks for OVH monitoring servers","description_kind":"markdown","optional":true,"computed":true},"name":{"type":"string","description_kind":"plain","optional":true,"computed":true},"netboot_mode":{"type":"string","description":"All values a VPS netboot mode can be in","description_kind":"markdown","optional":true,"computed":true},"offer_type":{"type":"string","description":"All offers a VPS can have","description_kind":"markdown","optional":true,"computed":true},"order":{"nested_type":{"attributes":{"date":{"type":"string","description_kind":"plain","computed":true},"details":{"nested_type":{"attributes":{"description":{"type":"string","description_kind":"plain","computed":true},"detail_type":{"type":"string","description":"Product type of item in order","description_kind":"markdown","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"order_detail_id":{"type":"number","description_kind":"plain","computed":true},"quantity":{"type":"string","description_kind":"plain","computed":true}},"nesting_mode":"list"},"description_kind":"plain","computed":true},"expiration_date":{"type":"string","description_kind":"plain","computed":true},"order_id":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Details about an Order","description_kind":"markdown","computed":true},"ovh_subsidiary":{"type":"string","description":"OVH subsidiaries","description_kind":"markdown","optional":true},"plan":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"item_id":{"type":"number","description":"Cart item to be linked","description_kind":"markdown","optional":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","optional":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"plan_option":{"nested_type":{"attributes":{"configuration":{"nested_type":{"attributes":{"label":{"type":"string","description":"Label for your configuration item","description_kind":"markdown","required":true},"value":{"type":"string","description":"Value or resource URL on API.OVH.COM of your configuration item","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true},"duration":{"type":"string","description":"Duration selected for the purchase of the product","description_kind":"markdown","required":true},"plan_code":{"type":"string","description":"Identifier of the option offer","description_kind":"markdown","required":true},"pricing_mode":{"type":"string","description":"Pricing mode selected for the purchase of the product","description_kind":"markdown","required":true},"quantity":{"type":"number","description":"Quantity of product desired","description_kind":"markdown","required":true}},"nesting_mode":"list"},"description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The internal name of your VPS offer","description_kind":"markdown","computed":true},"sla_monitoring":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"All states a VPS can be in","description_kind":"markdown","optional":true,"computed":true},"vcore":{"type":"number","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description_kind":"plain","optional":true,"computed":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},"ovh_subsidiary":{"type":"string","description":"Ovh Subsidiary","description_kind":"plain","optional":true,"computed":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":{"order":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"date","description_kind":"plain","computed":true},"details":{"type":["list",["object",{"description":"string","domain":"string","order_detail_id":"number","quantity":"string"}]],"description":"Information about a Bill entry","description_kind":"plain","computed":true},"expiration_date":{"type":"string","description":"expiration date","description_kind":"plain","computed":true},"order_id":{"type":"number","description":"order id","description_kind":"plain","computed":true}},"description":"Details about an Order","description_kind":"plain"}},"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"},"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"}},"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":{"version":0,"block":{"attributes":{"access":{"type":"string","description":"Project access","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description":"Project creation date","description_kind":"markdown","computed":true},"description":{"type":"string","description":"Description of your project","description_kind":"markdown","computed":true},"expiration":{"type":"string","description":"Expiration date of your project. After this date, your project will be deleted","description_kind":"markdown","computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"manual_quota":{"type":"bool","description":"Manual quota prevent automatic quota upgrade","description_kind":"markdown","computed":true},"order_id":{"type":"number","description":"Project order id","description_kind":"markdown","computed":true},"plan_code":{"type":"string","description":"Order plan code","description_kind":"markdown","computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"markdown","computed":true},"project_name":{"type":"string","description":"Project name","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"status":{"type":"string","description":"Current status","description_kind":"markdown","computed":true},"unleash":{"type":"bool","description":"Project unleashed","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"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":["set",["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":["set",["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},"ip_restrictions":{"type":["set",["object",{"description":"string","ip":"string","status":"string"}]],"description":"IP Blocks authorized to access to the cluster","description_kind":"plain","computed":true},"kafka_rest_api":{"type":"bool","description":"Defines whether the REST API is enabled on a Kafka cluster","description_kind":"plain","computed":true},"kafka_schema_registry":{"type":"bool","description":"Defines whether the schema registry 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","deprecated":true}},"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_log_subscription":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Id of the database cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Creation date of the subscription","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":"Id of the subscription","description_kind":"plain","required":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true,"sensitive":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_database_log_subscriptions":{"version":0,"block":{"attributes":{"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},"subscription_ids":{"type":["list","string"],"description":"List of log subscription ids","description_kind":"plain","computed":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_connection_pools":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"plain","required":true},"connection_pool_ids":{"type":["list","string"],"description":"List of connection pools ids","description_kind":"plain","computed":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_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_gateway_interface":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Id","description_kind":"plain","required":true},"interface_id":{"type":"string","description":"Interface ID","description_kind":"plain","required":true},"ip":{"type":"string","description":"IP of the interface","description_kind":"plain","computed":true},"network_id":{"type":"string","description":"Network ID of the interface","description_kind":"plain","computed":true},"region":{"type":"string","description":"Region name","description_kind":"plain","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"plain","required":true},"subnet_id":{"type":"string","description":"Subnet ID of the interface","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},"load_balancers_subnet_id":{"type":"string","description_kind":"plain","computed":true},"name":{"type":"string","description_kind":"plain","optional":true},"next_upgrade_versions":{"type":["set","string"],"description_kind":"plain","computed":true},"nodes_subnet_id":{"type":"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_loadbalancer":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The UTC date and timestamp when the loadbalancer was created","description_kind":"markdown","computed":true},"flavor_id":{"type":"string","description":"ID of the flavor","description_kind":"markdown","computed":true},"floating_ip":{"nested_type":{"attributes":{"id":{"type":"string","description":"ID of the floating IP","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP Address of the floating IP","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Information about floating IP","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Load balancer ID","description_kind":"markdown","required":true},"name":{"type":"string","description":"Name of the loadbalancer","description_kind":"markdown","computed":true},"operating_status":{"type":"string","description":"Operating status of the loadbalancer","description_kind":"markdown","computed":true},"provisioning_status":{"type":"string","description":"Provisioning status of the loadbalancer","description_kind":"markdown","computed":true},"region_name":{"type":"string","description":"Region of the loadbalancer","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"updated_at":{"type":"string","description":"UTC date and timestamp when the loadbalancer was updated","description_kind":"markdown","computed":true},"vip_address":{"type":"string","description":"IP address of the Virtual IP","description_kind":"markdown","computed":true},"vip_network_id":{"type":"string","description":"Openstack ID of the network for the Virtual IP","description_kind":"markdown","computed":true},"vip_subnet_id":{"type":"string","description":"ID of the subnet for the Virtual IP","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_loadbalancers":{"version":0,"block":{"attributes":{"loadbalancers":{"nested_type":{"attributes":{"created_at":{"type":"string","description":"The UTC date and timestamp when the loadbalancer was created","description_kind":"markdown","computed":true},"flavor_id":{"type":"string","description":"ID of the flavor","description_kind":"markdown","computed":true},"floating_ip":{"nested_type":{"attributes":{"id":{"type":"string","description":"ID of the floating IP","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP Address of the floating IP","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Information about floating IP","description_kind":"markdown","computed":true},"id":{"type":"string","description":"ID of the loadbalancer","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Name of the loadbalancer","description_kind":"markdown","computed":true},"operating_status":{"type":"string","description":"Operating status of the loadbalancer","description_kind":"markdown","computed":true},"provisioning_status":{"type":"string","description":"Provisioning status of the loadbalancer","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Region of the loadbalancer","description_kind":"markdown","computed":true},"updated_at":{"type":"string","description":"UTC date and timestamp when the loadbalancer was updated","description_kind":"markdown","computed":true},"vip_address":{"type":"string","description":"IP address of the Virtual IP","description_kind":"markdown","computed":true},"vip_network_id":{"type":"string","description":"Openstack ID of the network for the Virtual IP","description_kind":"markdown","computed":true},"vip_subnet_id":{"type":"string","description":"ID of the subnet for the Virtual IP","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":true},"region_name":{"type":"string","description":"Region name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_cloud_project_network_private":{"version":0,"block":{"attributes":{"name":{"type":"string","description":"Network name","description_kind":"markdown","computed":true},"network_id":{"type":"string","description":"Network ID","description_kind":"markdown","required":true},"regions":{"nested_type":{"attributes":{"openstack_id":{"type":"string","description":"Network id on openstack region","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Network region","description_kind":"markdown","computed":true},"status":{"type":"string","description":"Network region status","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"Details about private network in region","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"status":{"type":"string","description":"Network status","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Network type","description_kind":"markdown","computed":true},"vlan_id":{"type":"number","description":"Network VLAN id","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_network_private_subnets":{"version":0,"block":{"attributes":{"network_id":{"type":"string","description":"Network ID","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"subnets":{"nested_type":{"attributes":{"cidr":{"type":"string","description":"Subnet CIDR","description_kind":"markdown","computed":true},"dhcp_enabled":{"type":"bool","description":"Is DHCP enabled for the subnet","description_kind":"markdown","computed":true},"gateway_ip":{"type":"string","description":"Gateway IP in the subnet","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Subnet id","description_kind":"markdown","computed":true},"ip_pools":{"nested_type":{"attributes":{"dhcp":{"type":"bool","description":"Enable DHCP","description_kind":"markdown","computed":true},"end":{"type":"string","description":"Last IP for this region (eg: 192.168.1.24)","description_kind":"markdown","computed":true},"network":{"type":"string","description":"Global network with cidr (eg: 192.168.1.0/24)","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Region of the subnet","description_kind":"markdown","computed":true},"start":{"type":"string","description":"First IP for this region (eg: 192.168.1.12)","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"List of ip pools allocated in subnet","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_network_privates":{"version":0,"block":{"attributes":{"networks":{"nested_type":{"attributes":{"id":{"type":"string","description":"Network id","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Network name","description_kind":"markdown","computed":true},"regions":{"nested_type":{"attributes":{"openstack_id":{"type":"string","description":"Network id on openstack region","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Network region","description_kind":"markdown","computed":true},"status":{"type":"string","description":"Network region status","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"Details about private network in region","description_kind":"markdown","computed":true},"status":{"type":"string","description":"Network status","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Network type","description_kind":"markdown","computed":true},"vlan_id":{"type":"number","description":"Network VLAN id","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","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_region_loadbalancer_log_subscription":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date of the subscription","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Log kind name of this subscription","description_kind":"plain","computed":true},"ldp_service_name":{"type":"string","description":"Name of the destination log service","description_kind":"plain","computed":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","description_kind":"plain","required":true},"resource_name":{"type":"string","description":"Name of subscribed resource, where the logs come from","description_kind":"plain","computed":true},"resource_type":{"type":"string","description":"Type of subscribed resource, where the logs come from","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},"stream_id":{"type":"string","description":"Id of the target Log data platform stream","description_kind":"plain","computed":true},"subscription_id":{"type":"string","description":"ID representing the subscription","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Last update date of the subscription","description_kind":"plain","computed":true}},"description_kind":"plain"}},"ovh_cloud_project_region_loadbalancer_log_subscriptions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kind":{"type":"string","description":"Kind representing the loadbalancer.","description_kind":"plain","optional":true},"loadbalancer_id":{"type":"string","description":"ID representing the loadbalancer of the resource","description_kind":"plain","required":true},"region_name":{"type":"string","description":"Region name of the resource representing the name of the region.","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},"subscription_ids":{"type":["list","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_volume":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Volume ID","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Volume name","description_kind":"markdown","computed":true},"region_name":{"type":"string","description":"Region name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"size":{"type":"number","description":"Volume size","description_kind":"markdown","computed":true},"volume_id":{"type":"string","description":"Volume ID","description_kind":"markdown","required":true}},"description_kind":"plain"}},"ovh_cloud_project_volumes":{"version":0,"block":{"attributes":{"region_name":{"type":"string","description":"Region name","description_kind":"markdown","required":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":true},"volumes":{"nested_type":{"attributes":{"id":{"type":"string","description":"Volume ID","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Volume name","description_kind":"markdown","computed":true},"size":{"type":"number","description":"Volume size","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"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_cloud_projects":{"version":0,"block":{"attributes":{"projects":{"nested_type":{"attributes":{"access":{"type":"string","description":"Project access","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description":"Project creation date","description_kind":"markdown","computed":true},"description":{"type":"string","description":"Description of your project","description_kind":"markdown","computed":true},"expiration":{"type":"string","description":"Expiration date of your project. After this date, your project will be deleted","description_kind":"markdown","computed":true},"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"manual_quota":{"type":"bool","description":"Manual quota prevent automatic quota upgrade","description_kind":"markdown","computed":true},"order_id":{"type":"number","description":"Project order id","description_kind":"markdown","computed":true},"plan_code":{"type":"string","description":"Order plan code","description_kind":"markdown","computed":true},"project_id":{"type":"string","description":"Project id","description_kind":"markdown","computed":true},"project_name":{"type":"string","description":"Project name","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","computed":true},"status":{"type":"string","description":"Current status","description_kind":"markdown","computed":true},"unleash":{"type":"bool","description":"Project unleashed","description_kind":"markdown","computed":true}},"nesting_mode":"set"},"description_kind":"plain","computed":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,"computed":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_cluster_retention":{"version":0,"block":{"attributes":{"cluster_id":{"type":"string","description":"Cluster ID","description_kind":"markdown","required":true},"duration":{"type":"string","description":"Indexed duration expressed in ISO-8601 format","description_kind":"markdown","optional":true,"computed":true},"is_supported":{"type":"bool","description":"Indicates if a new stream can use it","description_kind":"markdown","computed":true},"retention_id":{"type":"string","description":"Retention ID","description_kind":"markdown","optional":true,"computed":true},"service_name":{"type":"string","description":"Service name","description_kind":"markdown","required":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},"write_token":{"type":"string","description":"Write token of the stream","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"ovh_dbaas_logs_output_opensearch_index":{"version":0,"block":{"attributes":{"alert_notify_enabled":{"type":"bool","description":"If set, notify when size is near 80, 90 or 100 % of its maximum capacity","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Operation creation","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"Current Index size (in bytes)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Index description","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index_id":{"type":"string","description":"Index ID","description_kind":"plain","computed":true},"is_editable":{"type":"bool","description":"Indicates if you are allowed to edit entry","description_kind":"plain","computed":true},"max_size":{"type":"number","description":"Maximum index size (in bytes)","description_kind":"plain","computed":true},"name":{"type":"string","description":"Index name","description_kind":"plain","required":true},"nb_shard":{"type":"number","description":"Number of shard","description_kind":"plain","optional":true,"computed":true},"service_name":{"type":"string","description":"The service name","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"Operation last update","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_template":{"version":0,"block":{"attributes":{"bit_format":{"type":"number","description":"Template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"Distribution this template is based on","description_kind":"plain","computed":true},"end_of_install":{"type":"string","description":"After this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"Template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"Distribution supports hardware raid configuration through the OVH API","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"license":{"type":["list",["object",{"os":["set",["object",{"name":["list","string"],"url":"string"}]],"usage":["set",["object",{"name":["list","string"],"url":"string"}]]}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Template supports RAID0 and RAID1 on 2 disks","description_kind":"plain","computed":true},"project":{"type":["list",["object",{"os":["list",["object",{"governance":["list","string"],"name":"string","release_notes":"string","url":"string","version":"string"}]],"usage":["list",["object",{"governance":["list","string"],"name":"string","release_notes":"string","url":"string","version":"string"}]]}]],"description":"Distribution project details","description_kind":"plain","computed":true},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"Template subfamily type","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"Template name","description_kind":"plain","required":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":{"availability_zone":{"type":"string","description":"Dedicated AZ localisation","description_kind":"plain","computed":true},"boot_id":{"type":"number","description_kind":"plain","computed":true},"boot_script":{"type":"string","description":"Ipxe script served on boot","description_kind":"plain","computed":true},"commercial_range":{"type":"string","description":"Dedicated 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},"new_upgrade_system":{"type":"bool","description_kind":"plain","computed":true},"no_intervention":{"type":"bool","description":"Prevent datacenter intervention","description_kind":"plain","computed":true},"os":{"type":"string","description":"Operating system","description_kind":"plain","computed":true},"power_state":{"type":"string","description":"Power state of the server: poweroff, poweron","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},"region":{"type":"string","description":"Dedicated region localisation","description_kind":"plain","computed":true},"rescue_mail":{"type":"string","description":"Custom email used to receive rescue credentials","description_kind":"plain","computed":true},"rescue_ssh_key":{"type":"string","description":"Public SSH Key used in the rescue mode","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":"Server id","description_kind":"plain","computed":true},"service_name":{"type":"string","description_kind":"plain","required":true},"state":{"type":"string","description":"All states a Dedicated can be in: 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_server_specifications_network":{"version":0,"block":{"attributes":{"bandwidth":{"nested_type":{"attributes":{"internet_to_ovh":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation Internet to OVH","description_kind":"markdown","computed":true},"ovh_to_internet":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation OVH to Internet","description_kind":"markdown","computed":true},"ovh_to_ovh":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"bandwidth limitation OVH to OVH","description_kind":"markdown","computed":true},"type":{"type":"string","description":"bandwidth offer type","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Bandwidth details","description_kind":"markdown","computed":true},"connection_val":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Network connection flow rate","description_kind":"markdown","computed":true},"ola":{"nested_type":{"attributes":{"available":{"type":"bool","description":"Is the OLA feature available","description_kind":"markdown","computed":true},"available_modes":{"nested_type":{"attributes":{"default":{"type":"bool","description":"Is it the default configuration of the server","description_kind":"markdown","computed":true},"interfaces":{"nested_type":{"attributes":{"aggregation":{"type":"bool","description":"Interface aggregation status","description_kind":"markdown","computed":true},"count":{"type":"number","description":"Interface count","description_kind":"markdown","computed":true},"type":{"type":"string","description":"An enum describing OVH Link Aggregation interface types","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"Interface layout","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Mode name","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"What modes are supported","description_kind":"markdown","computed":true},"supported_modes":{"type":["list","string"],"description":"(DEPRECATED) What modes are supported","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"OLA details","description_kind":"markdown","computed":true},"routing":{"nested_type":{"attributes":{"ipv4":{"nested_type":{"attributes":{"gateway":{"type":"string","description":"Server gateway","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"Server main IP","description_kind":"markdown","computed":true},"network":{"type":"string","description":"Server network","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Ipv4 routing details","description_kind":"markdown","computed":true},"ipv6":{"nested_type":{"attributes":{"gateway":{"type":"string","description":"Server gateway","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"Server main IP","description_kind":"markdown","computed":true},"network":{"type":"string","description":"Server network","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Ipv6 routing details","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Routing details","description_kind":"markdown","computed":true},"service_name":{"type":"string","description":"The internal name of your dedicated server","description_kind":"markdown","required":true},"switching":{"nested_type":{"attributes":{"name":{"type":"string","description":"Switch name","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Switching details","description_kind":"markdown","computed":true},"traffic":{"nested_type":{"attributes":{"input_quota_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly input traffic quota allowed","description_kind":"markdown","computed":true},"input_quota_used":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly input traffic consumed this month","description_kind":"markdown","computed":true},"is_throttled":{"type":"bool","description":"Is bandwidth throttleted for being over quota","description_kind":"markdown","computed":true},"output_quota_size":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly output traffic quota allowed","description_kind":"markdown","computed":true},"output_quota_used":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"Monthly output traffic consumed this month","description_kind":"markdown","computed":true},"reset_quota_date":{"type":"string","description":"Next reset quota date for traffic counter","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"Traffic details","description_kind":"markdown","computed":true},"vmac":{"nested_type":{"attributes":{"supported":{"type":"bool","description":"Server is compatible vmac or not","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"A structure describing VMAC Infos for this dedicated server","description_kind":"markdown","computed":true},"vrack":{"nested_type":{"attributes":{"bandwidth":{"nested_type":{"attributes":{"unit":{"type":"string","description_kind":"plain","computed":true},"value":{"type":"number","description_kind":"plain","computed":true}},"nesting_mode":"single"},"description":"vrack bandwidth limitation","description_kind":"markdown","computed":true},"type":{"type":"string","description":"bandwidth offer type","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"vRack details","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_domain_zone_dnssec":{"version":0,"block":{"attributes":{"status":{"type":"string","description":"DNSSEC Status","description_kind":"markdown","computed":true},"zone_name":{"type":"string","description":"The internal name of your zone","description_kind":"markdown","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","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_firewall":{"version":0,"block":{"attributes":{"enabled":{"type":"bool","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"state":{"type":"string","description":"Current state of your ip on firewall","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_firewall_rule":{"version":0,"block":{"attributes":{"action":{"type":"string","description":"Possible values for action","description_kind":"markdown","computed":true},"creation_date":{"type":"string","description_kind":"plain","computed":true},"destination":{"type":"string","description":"Destination ip for your rule","description_kind":"markdown","computed":true},"destination_port":{"type":"string","description":"Destination port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","computed":true},"fragments":{"type":"bool","description":"Fragments option","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_firewall":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"protocol":{"type":"string","description":"Possible values for protocol","description_kind":"markdown","computed":true},"rule":{"type":"string","description_kind":"plain","computed":true},"sequence":{"type":"number","description":"Possible values for action","description_kind":"markdown","required":true},"source":{"type":"string","description":"IPv4 CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","computed":true},"source_port":{"type":"string","description":"Source port for your rule. Only with TCP/UDP protocol","description_kind":"markdown","computed":true},"state":{"type":"string","description":"Current state of your rule","description_kind":"markdown","computed":true},"tcp_option":{"type":"string","description":"TCP option on your rule","description_kind":"markdown","computed":true}},"description_kind":"plain"}},"ovh_ip_mitigation":{"version":0,"block":{"attributes":{"auto":{"type":"bool","description":"Set on true if your ip is on auto-mitigation","description_kind":"markdown","computed":true},"ip":{"type":"string","description":"IP (v4 or v6) CIDR notation (e.g., 192.0.2.0/24)","description_kind":"markdown","required":true},"ip_on_mitigation":{"type":"string","description":"IPv4 address (e.g., 192.0.2.0)","description_kind":"markdown","required":true},"permanent":{"type":"bool","description":"Set on true if your ip is on permanent mitigation","description_kind":"markdown","computed":true},"state":{"type":"string","description":"Current state of your ip on mitigation","description_kind":"markdown","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},"urn":{"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":{"bit_format":{"type":"number","description":"Template bit format (32 or 64)","description_kind":"plain","computed":true},"category":{"type":"string","description":"Category of this template (informative only)","description_kind":"plain","computed":true},"customization":{"type":["list",["object",{"custom_hostname":"string"}]],"description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the template","description_kind":"plain","computed":true},"distribution":{"type":"string","description":"Distribution this template is based on","description_kind":"plain","computed":true},"end_of_install":{"type":"string","description":"After this date, install of this template will not be possible at OVH","description_kind":"plain","computed":true},"family":{"type":"string","description":"Template family type (bsd,linux,solaris,windows)","description_kind":"plain","computed":true},"filesystems":{"type":["list","string"],"description":"Filesystems available","description_kind":"plain","computed":true},"hard_raid_configuration":{"type":"bool","description":"Distribution supports hardware raid configuration through the OVH API","description_kind":"plain","deprecated":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inputs":{"type":["list",["object",{"default":"string","description":"string","enum":["list","string"],"mandatory":"bool","name":"string","type":"string"}]],"description_kind":"plain","computed":true},"lvm_ready":{"type":"bool","description":"Whether this Distribution supports Logical Volumes (Linux LVM)","description_kind":"plain","computed":true},"no_partitioning":{"type":"bool","description":"Template supports RAID0 and RAID1 on 2 disks","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},"soft_raid_only_mirroring":{"type":"bool","description":"Partitioning customization is available but limited to mirroring for this OS template","description_kind":"plain","computed":true},"subfamily":{"type":"string","description":"Template subfamily type","description_kind":"plain","computed":true},"template_name":{"type":"string","description":"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_okms_credential":{"version":0,"block":{"attributes":{"certificate_pem":{"type":"string","description":"Certificate PEM of the credential","description_kind":"markdown","computed":true},"created_at":{"type":"string","description":"Creation time of the credential","description_kind":"markdown","computed":true},"description":{"type":"string","description":"Description of the credential","description_kind":"markdown","computed":true},"expired_at":{"type":"string","description":"Expiration time of the credential","description_kind":"markdown","computed":true},"from_csr":{"type":"bool","description":"Is the credential generated from CSR","description_kind":"markdown","computed":true},"id":{"type":"string","description":"ID of the credential","description_kind":"markdown","required":true},"identity_urns":{"type":["list","string"],"description":"List of identity URNs associated with the credential","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Name of the credential","description_kind":"markdown","computed":true},"okms_id":{"type":"string","description":"Okms ID","description_kind":"markdown","required":true},"status":{"type":"string","description":"Status of the credential","description_kind":"markdown","computed":true}},"description":"Use this data source to retrieve data associated with a KMS credential, such as the PEM encoded certificate.","description_kind":"plain"}},"ovh_okms_resource":{"version":0,"block":{"attributes":{"iam":{"nested_type":{"attributes":{"display_name":{"type":"string","description":"Resource display name","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Unique identifier of the resource","description_kind":"markdown","computed":true},"tags":{"type":["map","string"],"description":"Resource tags. Tags that were internally computed are prefixed with ovh:","description_kind":"markdown","computed":true},"urn":{"type":"string","description":"Unique resource name used in policies","description_kind":"markdown","computed":true}},"nesting_mode":"single"},"description":"IAM resource metadata","description_kind":"markdown","computed":true},"id":{"type":"string","description":"OKMS ID","description_kind":"markdown","required":true},"kmip_endpoint":{"type":"string","description":"KMS kmip API endpoint","description_kind":"markdown","computed":true},"public_ca":{"type":"string","description":"KMS public CA (Certificate Authority)","description_kind":"markdown","computed":true},"region":{"type":"string","description":"Region","description_kind":"markdown","computed":true},"rest_endpoint":{"type":"string","description":"KMS rest API endpoint","description_kind":"markdown","computed":true},"swagger_endpoint":{"type":"string","description":"KMS rest API swagger UI","description_kind":"markdown","computed":true}},"description":"Use this data source to retrieve information about a KMS associated with this account","description_kind":"plain"}},"ovh_okms_service_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation time of the key","description_kind":"markdown","computed":true},"curve":{"type":"string","description":"Curve type for Elliptic Curve (EC) keys","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Key ID","description_kind":"markdown","required":true},"name":{"type":"string","description":"Key name","description_kind":"markdown","computed":true},"okms_id":{"type":"string","description":"Okms ID","description_kind":"markdown","required":true},"operations":{"type":["list","string"],"description":"The operations for which the key is intended to be used","description_kind":"markdown","computed":true},"size":{"type":"number","description":"Size of the key","description_kind":"markdown","computed":true},"state":{"type":"string","description":"State of the key","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Key type","description_kind":"markdown","computed":true}},"description":"Use this data source to retrieve information about a KMS service key.","description_kind":"plain"}},"ovh_okms_service_key_jwk":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation time of the key","description_kind":"markdown","computed":true},"id":{"type":"string","description":"Key ID","description_kind":"markdown","required":true},"keys":{"nested_type":{"attributes":{"alg":{"type":"string","description":"The algorithm intended to be used with the key","description_kind":"markdown","computed":true},"crv":{"type":"string","description":"The cryptographic curve used with the key","description_kind":"markdown","computed":true},"e":{"type":"string","description":"The exponent value for the RSA public key","description_kind":"markdown","computed":true},"key_ops":{"type":["list","string"],"description":"The operation for which the key is intended to be used","description_kind":"markdown","computed":true},"kid":{"type":"string","description":"key ID parameter used to match a specific key","description_kind":"markdown","computed":true},"kty":{"type":"string","description":"Key type parameter identifies the cryptographic algorithm family used with the key, such as RSA or EC","description_kind":"markdown","computed":true},"n":{"type":"string","description":"The modulus value for the RSA public key","description_kind":"markdown","computed":true},"use":{"type":"string","description":"The intended use of the public key","description_kind":"markdown","computed":true},"x":{"type":"string","description":"The x coordinate for the Elliptic Curve point","description_kind":"markdown","computed":true},"y":{"type":"string","description":"The y coordinate for the Elliptic Curve point","description_kind":"markdown","computed":true}},"nesting_mode":"list"},"description":"The key in JWK format","description_kind":"markdown","computed":true},"name":{"type":"string","description":"Key name","description_kind":"markdown","computed":true},"okms_id":{"type":"string","description":"Okms ID","description_kind":"markdown","required":true},"size":{"type":"number","description":"Size of the key","description_kind":"markdown","computed":true},"state":{"type":"string","description":"State of the key","description_kind":"markdown","computed":true},"type":{"type":"string","description":"Key type","description_kind":"markdown","computed":true}},"description":"Use this data source to retrieve information about a KMS service key, in the JWK format.","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/hack/fix.sh b/hack/fix.sh index c39646c..736551c 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/r" +DIRECTORY="./.work/ovh/ovh/website/docs/d" # Iterate over each file in the directory for file in "$DIRECTORY"/* diff --git a/internal/controller/cloud/projectregionloadbalancerlogsubscription/zz_controller.go b/internal/controller/lb/projectregionloadbalancerlogsubscription/zz_controller.go similarity index 98% rename from internal/controller/cloud/projectregionloadbalancerlogsubscription/zz_controller.go rename to internal/controller/lb/projectregionloadbalancerlogsubscription/zz_controller.go index f291138..fdedbc2 100755 --- a/internal/controller/cloud/projectregionloadbalancerlogsubscription/zz_controller.go +++ b/internal/controller/lb/projectregionloadbalancerlogsubscription/zz_controller.go @@ -20,7 +20,7 @@ import ( "github.com/pkg/errors" ctrl "sigs.k8s.io/controller-runtime" - v1alpha1 "github.com/edixos/provider-ovh/apis/cloud/v1alpha1" + v1alpha1 "github.com/edixos/provider-ovh/apis/lb/v1alpha1" features "github.com/edixos/provider-ovh/internal/features" ) diff --git a/internal/controller/lb/ssl/zz_controller.go b/internal/controller/lb/ssl/zz_controller.go new file mode 100755 index 0000000..bc678ad --- /dev/null +++ b/internal/controller/lb/ssl/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ssl + +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/lb/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles SSL managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SSL_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.SSL_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SSL_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_iploadbalancing_ssl"], 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.SSL + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.SSL{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.SSL") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SSL_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SSL{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/udpfarm/zz_controller.go b/internal/controller/lb/udpfarm/zz_controller.go new file mode 100755 index 0000000..7b23bf7 --- /dev/null +++ b/internal/controller/lb/udpfarm/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package udpfarm + +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/lb/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles UDPFarm managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UDPFarm_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.UDPFarm_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UDPFarm_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_iploadbalancing_udp_farm"], 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.UDPFarm + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.UDPFarm{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.UDPFarm") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UDPFarm_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UDPFarm{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/udpfarmserver/zz_controller.go b/internal/controller/lb/udpfarmserver/zz_controller.go new file mode 100755 index 0000000..6e82b6c --- /dev/null +++ b/internal/controller/lb/udpfarmserver/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package udpfarmserver + +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/lb/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles UDPFarmServer managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UDPFarmServer_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.UDPFarmServer_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UDPFarmServer_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_iploadbalancing_udp_farm_server"], 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.UDPFarmServer + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.UDPFarmServer{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.UDPFarmServer") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UDPFarmServer_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UDPFarmServer{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/logs/logsoutputopensearchalias/zz_controller.go b/internal/controller/logs/logsoutputopensearchalias/zz_controller.go new file mode 100755 index 0000000..f003850 --- /dev/null +++ b/internal/controller/logs/logsoutputopensearchalias/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package logsoutputopensearchalias + +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/logs/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles LogsOutputOpensearchAlias managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.LogsOutputOpensearchAlias_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.LogsOutputOpensearchAlias_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.LogsOutputOpensearchAlias_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dbaas_logs_output_opensearch_alias"], 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.LogsOutputOpensearchAlias + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.LogsOutputOpensearchAlias{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.LogsOutputOpensearchAlias") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.LogsOutputOpensearchAlias_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.LogsOutputOpensearchAlias{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/logs/logsoutputopensearchindex/zz_controller.go b/internal/controller/logs/logsoutputopensearchindex/zz_controller.go new file mode 100755 index 0000000..22e5521 --- /dev/null +++ b/internal/controller/logs/logsoutputopensearchindex/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package logsoutputopensearchindex + +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/logs/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles LogsOutputOpensearchIndex managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.LogsOutputOpensearchIndex_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.LogsOutputOpensearchIndex_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.LogsOutputOpensearchIndex_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dbaas_logs_output_opensearch_index"], 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.LogsOutputOpensearchIndex + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.LogsOutputOpensearchIndex{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.LogsOutputOpensearchIndex") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.LogsOutputOpensearchIndex_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.LogsOutputOpensearchIndex{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/network/subnetv2/zz_controller.go b/internal/controller/network/subnetv2/zz_controller.go new file mode 100755 index 0000000..507b2d9 --- /dev/null +++ b/internal/controller/network/subnetv2/zz_controller.go @@ -0,0 +1,74 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package subnetv2 + +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/network/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles SubnetV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SubnetV2_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.SubnetV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SubnetV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_network_private_subnet_v2"], 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.SubnetV2 + // if they're enabled. + if o.StartWebhooks { + if err := ctrl.NewWebhookManagedBy(mgr). + For(&v1alpha1.SubnetV2{}). + Complete(); err != nil { + return errors.Wrap(err, "cannot register webhook for the kind v1alpha1.SubnetV2") + } + } + + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SubnetV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SubnetV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 54e78c0..8c32b04 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -17,7 +17,6 @@ import ( reverse "github.com/edixos/provider-ovh/internal/controller/additionalip/reverse" service "github.com/edixos/provider-ovh/internal/controller/additionalip/service" project "github.com/edixos/provider-ovh/internal/controller/cloud/project" - projectregionloadbalancerlogsubscription "github.com/edixos/provider-ovh/internal/controller/cloud/projectregionloadbalancerlogsubscription" s3credentials "github.com/edixos/provider-ovh/internal/controller/cloud/s3credentials" s3policy "github.com/edixos/provider-ovh/internal/controller/cloud/s3policy" user "github.com/edixos/provider-ovh/internal/controller/cloud/user" @@ -64,16 +63,22 @@ import ( httproute "github.com/edixos/provider-ovh/internal/controller/lb/httproute" httprouterule "github.com/edixos/provider-ovh/internal/controller/lb/httprouterule" iploadbalancing "github.com/edixos/provider-ovh/internal/controller/lb/iploadbalancing" + projectregionloadbalancerlogsubscription "github.com/edixos/provider-ovh/internal/controller/lb/projectregionloadbalancerlogsubscription" refresh "github.com/edixos/provider-ovh/internal/controller/lb/refresh" + ssl "github.com/edixos/provider-ovh/internal/controller/lb/ssl" tcpfarm "github.com/edixos/provider-ovh/internal/controller/lb/tcpfarm" tcpfarmserver "github.com/edixos/provider-ovh/internal/controller/lb/tcpfarmserver" tcpfrontend "github.com/edixos/provider-ovh/internal/controller/lb/tcpfrontend" tcproute "github.com/edixos/provider-ovh/internal/controller/lb/tcproute" tcprouterule "github.com/edixos/provider-ovh/internal/controller/lb/tcprouterule" + udpfarm "github.com/edixos/provider-ovh/internal/controller/lb/udpfarm" + udpfarmserver "github.com/edixos/provider-ovh/internal/controller/lb/udpfarmserver" udpfrontend "github.com/edixos/provider-ovh/internal/controller/lb/udpfrontend" vracknetwork "github.com/edixos/provider-ovh/internal/controller/lb/vracknetwork" logscluster "github.com/edixos/provider-ovh/internal/controller/logs/logscluster" logsinput "github.com/edixos/provider-ovh/internal/controller/logs/logsinput" + logsoutputopensearchalias "github.com/edixos/provider-ovh/internal/controller/logs/logsoutputopensearchalias" + logsoutputopensearchindex "github.com/edixos/provider-ovh/internal/controller/logs/logsoutputopensearchindex" logstoken "github.com/edixos/provider-ovh/internal/controller/logs/logstoken" group "github.com/edixos/provider-ovh/internal/controller/me/group" oauth2client "github.com/edixos/provider-ovh/internal/controller/me/oauth2client" @@ -83,6 +88,7 @@ import ( nashapartitionsnapshot "github.com/edixos/provider-ovh/internal/controller/nas/nashapartitionsnapshot" privatenetwork "github.com/edixos/provider-ovh/internal/controller/network/privatenetwork" subnet "github.com/edixos/provider-ovh/internal/controller/network/subnet" + subnetv2 "github.com/edixos/provider-ovh/internal/controller/network/subnetv2" privatedatabase "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabase" privatedatabasedatabase "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabasedatabase" privatedatabaseuser "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabaseuser" @@ -116,7 +122,6 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { reverse.Setup, service.Setup, project.Setup, - projectregionloadbalancerlogsubscription.Setup, s3credentials.Setup, s3policy.Setup, user.Setup, @@ -163,16 +168,22 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { httproute.Setup, httprouterule.Setup, iploadbalancing.Setup, + projectregionloadbalancerlogsubscription.Setup, refresh.Setup, + ssl.Setup, tcpfarm.Setup, tcpfarmserver.Setup, tcpfrontend.Setup, tcproute.Setup, tcprouterule.Setup, + udpfarm.Setup, + udpfarmserver.Setup, udpfrontend.Setup, vracknetwork.Setup, logscluster.Setup, logsinput.Setup, + logsoutputopensearchalias.Setup, + logsoutputopensearchindex.Setup, logstoken.Setup, group.Setup, oauth2client.Setup, @@ -182,6 +193,7 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { nashapartitionsnapshot.Setup, privatenetwork.Setup, subnet.Setup, + subnetv2.Setup, privatedatabase.Setup, privatedatabasedatabase.Setup, privatedatabaseuser.Setup, diff --git a/package/crds/additionalip.ovh.edixos.io_firewallrules.yaml b/package/crds/additionalip.ovh.edixos.io_firewallrules.yaml index 51260ea..8d09411 100644 --- a/package/crds/additionalip.ovh.edixos.io_firewallrules.yaml +++ b/package/crds/additionalip.ovh.edixos.io_firewallrules.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: FirewallRule listKind: FirewallRuleList plural: firewallrules diff --git a/package/crds/additionalip.ovh.edixos.io_firewalls.yaml b/package/crds/additionalip.ovh.edixos.io_firewalls.yaml index df3e0ed..5d83201 100644 --- a/package/crds/additionalip.ovh.edixos.io_firewalls.yaml +++ b/package/crds/additionalip.ovh.edixos.io_firewalls.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Firewall listKind: FirewallList plural: firewalls diff --git a/package/crds/additionalip.ovh.edixos.io_mitigations.yaml b/package/crds/additionalip.ovh.edixos.io_mitigations.yaml index fbd8314..2b0b9cb 100644 --- a/package/crds/additionalip.ovh.edixos.io_mitigations.yaml +++ b/package/crds/additionalip.ovh.edixos.io_mitigations.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Mitigation listKind: MitigationList plural: mitigations diff --git a/package/crds/additionalip.ovh.edixos.io_moves.yaml b/package/crds/additionalip.ovh.edixos.io_moves.yaml index cb79d79..8efc72f 100644 --- a/package/crds/additionalip.ovh.edixos.io_moves.yaml +++ b/package/crds/additionalip.ovh.edixos.io_moves.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Move listKind: MoveList plural: moves diff --git a/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml b/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml index 9734373..b9d61ae 100644 --- a/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml +++ b/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectFailoverIPAttach listKind: ProjectFailoverIPAttachList plural: projectfailoveripattaches diff --git a/package/crds/additionalip.ovh.edixos.io_reverses.yaml b/package/crds/additionalip.ovh.edixos.io_reverses.yaml index 77e01a4..55758cc 100644 --- a/package/crds/additionalip.ovh.edixos.io_reverses.yaml +++ b/package/crds/additionalip.ovh.edixos.io_reverses.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Reverse listKind: ReverseList plural: reverses diff --git a/package/crds/additionalip.ovh.edixos.io_services.yaml b/package/crds/additionalip.ovh.edixos.io_services.yaml index c9e160f..0af3c77 100644 --- a/package/crds/additionalip.ovh.edixos.io_services.yaml +++ b/package/crds/additionalip.ovh.edixos.io_services.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Service listKind: ServiceList plural: services @@ -406,15 +406,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: ServiceStatus defines the observed state of Service. properties: diff --git a/package/crds/cloud.ovh.edixos.io_projects.yaml b/package/crds/cloud.ovh.edixos.io_projects.yaml index cdbb73c..ae437c5 100644 --- a/package/crds/cloud.ovh.edixos.io_projects.yaml +++ b/package/crds/cloud.ovh.edixos.io_projects.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Project listKind: ProjectList plural: projects @@ -404,15 +404,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: ProjectStatus defines the observed state of Project. properties: diff --git a/package/crds/cloud.ovh.edixos.io_s3credentials.yaml b/package/crds/cloud.ovh.edixos.io_s3credentials.yaml index debdf09..7817626 100644 --- a/package/crds/cloud.ovh.edixos.io_s3credentials.yaml +++ b/package/crds/cloud.ovh.edixos.io_s3credentials.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: S3Credentials listKind: S3CredentialsList plural: s3credentials diff --git a/package/crds/cloud.ovh.edixos.io_s3policies.yaml b/package/crds/cloud.ovh.edixos.io_s3policies.yaml index 90b056e..af34be7 100644 --- a/package/crds/cloud.ovh.edixos.io_s3policies.yaml +++ b/package/crds/cloud.ovh.edixos.io_s3policies.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: S3Policy listKind: S3PolicyList plural: s3policies diff --git a/package/crds/cloud.ovh.edixos.io_users.yaml b/package/crds/cloud.ovh.edixos.io_users.yaml index 4f47756..71c8e9a 100644 --- a/package/crds/cloud.ovh.edixos.io_users.yaml +++ b/package/crds/cloud.ovh.edixos.io_users.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: User listKind: UserList plural: users diff --git a/package/crds/clouddiskarray.ovh.edixos.io_cephacls.yaml b/package/crds/clouddiskarray.ovh.edixos.io_cephacls.yaml index ca1e64d..1295457 100644 --- a/package/crds/clouddiskarray.ovh.edixos.io_cephacls.yaml +++ b/package/crds/clouddiskarray.ovh.edixos.io_cephacls.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: CephACL listKind: CephACLList plural: cephacls diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasedatabases.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasedatabases.yaml index 5b1b598..8127cf5 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasedatabases.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasedatabases.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseDatabase listKind: ProjectDatabaseDatabaseList plural: projectdatabasedatabases diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseintegrations.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseintegrations.yaml index b1d4538..8db9321 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseintegrations.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseintegrations.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseIntegration listKind: ProjectDatabaseIntegrationList plural: projectdatabaseintegrations diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseiprestrictions.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseiprestrictions.yaml index c0cf231..4af51c8 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseiprestrictions.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseiprestrictions.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseIPRestriction listKind: ProjectDatabaseIPRestrictionList plural: projectdatabaseiprestrictions diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasekafkaacls.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasekafkaacls.yaml index d0ac669..8b9493f 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasekafkaacls.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasekafkaacls.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseKafkaACL listKind: ProjectDatabaseKafkaACLList plural: projectdatabasekafkaacls diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasekafkaschemaregistryacls.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasekafkaschemaregistryacls.yaml index 1f390ec..8a0a4a8 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasekafkaschemaregistryacls.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasekafkaschemaregistryacls.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseKafkaSchemaregistryacl listKind: ProjectDatabaseKafkaSchemaregistryaclList plural: projectdatabasekafkaschemaregistryacls diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasekafkatopics.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasekafkatopics.yaml index 172e150..fd11051 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasekafkatopics.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasekafkatopics.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseKafkaTopic listKind: ProjectDatabaseKafkaTopicList plural: projectdatabasekafkatopics diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasem3dbnamespaces.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasem3dbnamespaces.yaml index 9e9a29e..cabc791 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasem3dbnamespaces.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasem3dbnamespaces.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseM3DbNamespace listKind: ProjectDatabaseM3DbNamespaceList plural: projectdatabasem3dbnamespaces @@ -493,10 +493,6 @@ spec: rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.resolution) || (has(self.initProvider) && has(self.initProvider.resolution))' - - message: spec.forProvider.retentionPeriodDuration is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.retentionPeriodDuration) - || (has(self.initProvider) && has(self.initProvider.retentionPeriodDuration))' - message: spec.forProvider.serviceName is a required parameter rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceName) diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasem3dbusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasem3dbusers.yaml index d103d9d..cd4b22d 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasem3dbusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasem3dbusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseM3DbUser listKind: ProjectDatabaseM3DbUserList plural: projectdatabasem3dbusers diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasemongodbusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasemongodbusers.yaml index 081543c..0876c85 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasemongodbusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasemongodbusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseMongodbUser listKind: ProjectDatabaseMongodbUserList plural: projectdatabasemongodbusers diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchpatterns.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchpatterns.yaml index 6c9f1c3..12d554a 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchpatterns.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchpatterns.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseOpensearchPattern listKind: ProjectDatabaseOpensearchPatternList plural: projectdatabaseopensearchpatterns diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchusers.yaml index 9cb82c9..e7a2720 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseopensearchusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseOpensearchUser listKind: ProjectDatabaseOpensearchUserList plural: projectdatabaseopensearchusers diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlconnectionpools.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlconnectionpools.yaml index edcbe76..251db8b 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlconnectionpools.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlconnectionpools.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabasePostgresqlConnectionPool listKind: ProjectDatabasePostgresqlConnectionPoolList plural: projectdatabasepostgresqlconnectionpools diff --git a/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlusers.yaml index 974f8b1..8d230e9 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabasepostgresqlusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabasePostgresqlUser listKind: ProjectDatabasePostgresqlUserList plural: projectdatabasepostgresqlusers diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseredisusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseredisusers.yaml index 73bd4c0..1b30837 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseredisusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseredisusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseRedisUser listKind: ProjectDatabaseRedisUserList plural: projectdatabaseredisusers diff --git a/package/crds/databases.ovh.edixos.io_projectdatabases.yaml b/package/crds/databases.ovh.edixos.io_projectdatabases.yaml index 04378e0..62d1fe4 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabases.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabases.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabase listKind: ProjectDatabaseList plural: projectdatabases @@ -122,6 +122,9 @@ spec: description: Defines whether the schema registry is enabled on a Kafka cluster type: boolean + maintenanceTime: + description: Time on which maintenances can start every day + type: string nodes: description: List of nodes composing the service items: @@ -213,6 +216,9 @@ spec: description: Defines whether the schema registry is enabled on a Kafka cluster type: boolean + maintenanceTime: + description: Time on which maintenances can start every day + type: string nodes: description: List of nodes composing the service items: diff --git a/package/crds/databases.ovh.edixos.io_projectdatabaseusers.yaml b/package/crds/databases.ovh.edixos.io_projectdatabaseusers.yaml index fc6965a..c73b7e7 100644 --- a/package/crds/databases.ovh.edixos.io_projectdatabaseusers.yaml +++ b/package/crds/databases.ovh.edixos.io_projectdatabaseusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectDatabaseUser listKind: ProjectDatabaseUserList plural: projectdatabaseusers diff --git a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml index 8f3860e..8c34053 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: InstallationTemplatePartitionSchemeHardwareRaid listKind: InstallationTemplatePartitionSchemeHardwareRaidList plural: installationtemplatepartitionschemehardwareraids diff --git a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml index 4faa46e..d031ee2 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: InstallationTemplatePartitionSchemePartition listKind: InstallationTemplatePartitionSchemePartitionList plural: installationtemplatepartitionschemepartitions diff --git a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml index ae33f25..1df2cb5 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: InstallationTemplatePartitionScheme listKind: InstallationTemplatePartitionSchemeList plural: installationtemplatepartitionschemes diff --git a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml index 733c9da..0d268e3 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: InstallationTemplate listKind: InstallationTemplateList plural: installationtemplates diff --git a/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml index 03a5564..b6b5fab 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ServerInstallTask listKind: ServerInstallTaskList plural: serverinstalltasks diff --git a/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml b/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml index 3db84f5..55b2bb1 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ServerNetworking listKind: ServerNetworkingList plural: servernetworkings diff --git a/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml index 784a2b3..84357f1 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ServerRebootTask listKind: ServerRebootTaskList plural: serverreboottasks diff --git a/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml index 38a9854..fad600f 100644 --- a/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ServerUpdate listKind: ServerUpdateList plural: serverupdates diff --git a/package/crds/dns.ovh.edixos.io_zonednssecs.yaml b/package/crds/dns.ovh.edixos.io_zonednssecs.yaml index e8daad2..03f7a63 100644 --- a/package/crds/dns.ovh.edixos.io_zonednssecs.yaml +++ b/package/crds/dns.ovh.edixos.io_zonednssecs.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ZoneDNSSEC listKind: ZoneDNSSECList plural: zonednssecs diff --git a/package/crds/dns.ovh.edixos.io_zonerecords.yaml b/package/crds/dns.ovh.edixos.io_zonerecords.yaml index 32b652d..3fb424a 100644 --- a/package/crds/dns.ovh.edixos.io_zonerecords.yaml +++ b/package/crds/dns.ovh.edixos.io_zonerecords.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ZoneRecord listKind: ZoneRecordList plural: zonerecords diff --git a/package/crds/dns.ovh.edixos.io_zoneredirections.yaml b/package/crds/dns.ovh.edixos.io_zoneredirections.yaml index 1f0405f..f969893 100644 --- a/package/crds/dns.ovh.edixos.io_zoneredirections.yaml +++ b/package/crds/dns.ovh.edixos.io_zoneredirections.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ZoneRedirection listKind: ZoneRedirectionList plural: zoneredirections diff --git a/package/crds/dns.ovh.edixos.io_zones.yaml b/package/crds/dns.ovh.edixos.io_zones.yaml index 57a2a8b..b9b96e3 100644 --- a/package/crds/dns.ovh.edixos.io_zones.yaml +++ b/package/crds/dns.ovh.edixos.io_zones.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Zone listKind: ZoneList plural: zones @@ -400,15 +400,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: ZoneStatus defines the observed state of Zone. properties: diff --git a/package/crds/gateway.ovh.edixos.io_projectgateways.yaml b/package/crds/gateway.ovh.edixos.io_projectgateways.yaml index 1c6376f..f2a74fb 100644 --- a/package/crds/gateway.ovh.edixos.io_projectgateways.yaml +++ b/package/crds/gateway.ovh.edixos.io_projectgateways.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectGateway listKind: ProjectGatewayList plural: projectgateways diff --git a/package/crds/iam.ovh.edixos.io_iampermissionsgroups.yaml b/package/crds/iam.ovh.edixos.io_iampermissionsgroups.yaml index e720f8d..7d60f0e 100644 --- a/package/crds/iam.ovh.edixos.io_iampermissionsgroups.yaml +++ b/package/crds/iam.ovh.edixos.io_iampermissionsgroups.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: IAMPermissionsGroup listKind: IAMPermissionsGroupList plural: iampermissionsgroups diff --git a/package/crds/iam.ovh.edixos.io_iampolicies.yaml b/package/crds/iam.ovh.edixos.io_iampolicies.yaml index 49ffa0c..16448b0 100644 --- a/package/crds/iam.ovh.edixos.io_iampolicies.yaml +++ b/package/crds/iam.ovh.edixos.io_iampolicies.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: IAMPolicy listKind: IAMPolicyList plural: iampolicies diff --git a/package/crds/iam.ovh.edixos.io_iamresourcegroups.yaml b/package/crds/iam.ovh.edixos.io_iamresourcegroups.yaml index 3770746..5ea200f 100644 --- a/package/crds/iam.ovh.edixos.io_iamresourcegroups.yaml +++ b/package/crds/iam.ovh.edixos.io_iamresourcegroups.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: IAMResourceGroup listKind: IAMResourceGroupList plural: iamresourcegroups diff --git a/package/crds/kube.ovh.edixos.io_clusters.yaml b/package/crds/kube.ovh.edixos.io_clusters.yaml index 79e58a1..93dac08 100644 --- a/package/crds/kube.ovh.edixos.io_clusters.yaml +++ b/package/crds/kube.ovh.edixos.io_clusters.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Cluster listKind: ClusterList plural: clusters diff --git a/package/crds/kube.ovh.edixos.io_iprestrictions.yaml b/package/crds/kube.ovh.edixos.io_iprestrictions.yaml index 72134a4..2d5e3ff 100644 --- a/package/crds/kube.ovh.edixos.io_iprestrictions.yaml +++ b/package/crds/kube.ovh.edixos.io_iprestrictions.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: IpRestriction listKind: IpRestrictionList plural: iprestrictions diff --git a/package/crds/kube.ovh.edixos.io_nodepools.yaml b/package/crds/kube.ovh.edixos.io_nodepools.yaml index 22189b7..3502b9f 100644 --- a/package/crds/kube.ovh.edixos.io_nodepools.yaml +++ b/package/crds/kube.ovh.edixos.io_nodepools.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: NodePool listKind: NodePoolList plural: nodepools diff --git a/package/crds/kube.ovh.edixos.io_oidcconfigurations.yaml b/package/crds/kube.ovh.edixos.io_oidcconfigurations.yaml index 075469d..abce33a 100644 --- a/package/crds/kube.ovh.edixos.io_oidcconfigurations.yaml +++ b/package/crds/kube.ovh.edixos.io_oidcconfigurations.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: OIDCConfiguration listKind: OIDCConfigurationList plural: oidcconfigurations diff --git a/package/crds/lb.ovh.edixos.io_httpfarms.yaml b/package/crds/lb.ovh.edixos.io_httpfarms.yaml index 48b053c..413a6c9 100644 --- a/package/crds/lb.ovh.edixos.io_httpfarms.yaml +++ b/package/crds/lb.ovh.edixos.io_httpfarms.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: HTTPFarm listKind: HTTPFarmList plural: httpfarms diff --git a/package/crds/lb.ovh.edixos.io_httpfarmservers.yaml b/package/crds/lb.ovh.edixos.io_httpfarmservers.yaml index fedede9..5c6a1e8 100644 --- a/package/crds/lb.ovh.edixos.io_httpfarmservers.yaml +++ b/package/crds/lb.ovh.edixos.io_httpfarmservers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: HTTPFarmServer listKind: HTTPFarmServerList plural: httpfarmservers diff --git a/package/crds/lb.ovh.edixos.io_httpfrontends.yaml b/package/crds/lb.ovh.edixos.io_httpfrontends.yaml index 853cc5e..5f70bc8 100644 --- a/package/crds/lb.ovh.edixos.io_httpfrontends.yaml +++ b/package/crds/lb.ovh.edixos.io_httpfrontends.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: HTTPFrontend listKind: HTTPFrontendList plural: httpfrontends diff --git a/package/crds/lb.ovh.edixos.io_httprouterules.yaml b/package/crds/lb.ovh.edixos.io_httprouterules.yaml index a9f3e30..93c4d5d 100644 --- a/package/crds/lb.ovh.edixos.io_httprouterules.yaml +++ b/package/crds/lb.ovh.edixos.io_httprouterules.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: HTTPRouteRule listKind: HTTPRouteRuleList plural: httprouterules diff --git a/package/crds/lb.ovh.edixos.io_httproutes.yaml b/package/crds/lb.ovh.edixos.io_httproutes.yaml index 031f596..c1ac2cf 100644 --- a/package/crds/lb.ovh.edixos.io_httproutes.yaml +++ b/package/crds/lb.ovh.edixos.io_httproutes.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: HTTPRoute listKind: HTTPRouteList plural: httproutes diff --git a/package/crds/lb.ovh.edixos.io_iploadbalancings.yaml b/package/crds/lb.ovh.edixos.io_iploadbalancings.yaml index 103a587..67452e7 100644 --- a/package/crds/lb.ovh.edixos.io_iploadbalancings.yaml +++ b/package/crds/lb.ovh.edixos.io_iploadbalancings.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Iploadbalancing listKind: IploadbalancingList plural: iploadbalancings @@ -423,15 +423,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: IploadbalancingStatus defines the observed state of Iploadbalancing. properties: diff --git a/package/crds/cloud.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml b/package/crds/lb.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml similarity index 99% rename from package/crds/cloud.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml rename to package/crds/lb.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml index 81086a5..c654def 100644 --- a/package/crds/cloud.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml +++ b/package/crds/lb.ovh.edixos.io_projectregionloadbalancerlogsubscriptions.yaml @@ -4,14 +4,14 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.14.0 - name: projectregionloadbalancerlogsubscriptions.cloud.ovh.edixos.io + name: projectregionloadbalancerlogsubscriptions.lb.ovh.edixos.io spec: - group: cloud.ovh.edixos.io + group: lb.ovh.edixos.io names: categories: - crossplane - managed - - lb + - ovh kind: ProjectRegionLoadbalancerLogSubscription listKind: ProjectRegionLoadbalancerLogSubscriptionList plural: projectregionloadbalancerlogsubscriptions diff --git a/package/crds/lb.ovh.edixos.io_refreshes.yaml b/package/crds/lb.ovh.edixos.io_refreshes.yaml index 760e433..be828d4 100644 --- a/package/crds/lb.ovh.edixos.io_refreshes.yaml +++ b/package/crds/lb.ovh.edixos.io_refreshes.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Refresh listKind: RefreshList plural: refreshes diff --git a/package/crds/lb.ovh.edixos.io_ssls.yaml b/package/crds/lb.ovh.edixos.io_ssls.yaml new file mode 100644 index 0000000..795861d --- /dev/null +++ b/package/crds/lb.ovh.edixos.io_ssls.yaml @@ -0,0 +1,402 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: ssls.lb.ovh.edixos.io +spec: + group: lb.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: SSL + listKind: SSLList + plural: ssls + singular: ssl + 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: SSL is the Schema for the SSLs 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: SSLSpec defines the desired state of SSL + 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: + certificate: + description: Certificate + type: string + chain: + description: Certificate chain + type: string + displayName: + description: Human readable name for your ssl certificate, this + field is for you + type: string + keySecretRef: + description: Certificate key + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + serviceName: + description: The internal name of your IP load balancing + type: string + 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: + certificate: + description: Certificate + type: string + chain: + description: Certificate chain + type: string + displayName: + description: Human readable name for your ssl certificate, this + field is for you + type: string + serviceName: + description: The internal name of your IP load balancing + type: string + 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.certificate is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.certificate) + || (has(self.initProvider) && has(self.initProvider.certificate))' + - message: spec.forProvider.keySecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keySecretRef)' + - 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: SSLStatus defines the observed state of SSL. + properties: + atProvider: + properties: + certificate: + description: Certificate + type: string + chain: + description: Certificate chain + type: string + displayName: + description: Human readable name for your ssl certificate, this + field is for you + type: string + expireDate: + description: Expire date of your SSL certificate + type: string + fingerprint: + description: Fingerprint of your SSL certificate + type: string + id: + type: string + san: + description: Subject Alternative Name of your SSL certificate + items: + type: string + type: array + serial: + description: Serial of your SSL certificate (Deprecated, use fingerprint + instead!) + type: string + serviceName: + description: The internal name of your IP load balancing + type: string + subject: + description: Subject of your SSL certificate + type: string + type: + description: |- + Type of your SSL certificate. + 'built' for SSL certificates managed by the IP Load Balancing. 'custom' for user manager certificates. + 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/lb.ovh.edixos.io_tcpfarms.yaml b/package/crds/lb.ovh.edixos.io_tcpfarms.yaml index 25d0095..a4e9f45 100644 --- a/package/crds/lb.ovh.edixos.io_tcpfarms.yaml +++ b/package/crds/lb.ovh.edixos.io_tcpfarms.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: TCPFarm listKind: TCPFarmList plural: tcpfarms diff --git a/package/crds/lb.ovh.edixos.io_tcpfarmservers.yaml b/package/crds/lb.ovh.edixos.io_tcpfarmservers.yaml index d56f9c6..9b867bf 100644 --- a/package/crds/lb.ovh.edixos.io_tcpfarmservers.yaml +++ b/package/crds/lb.ovh.edixos.io_tcpfarmservers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: TCPFarmServer listKind: TCPFarmServerList plural: tcpfarmservers diff --git a/package/crds/lb.ovh.edixos.io_tcpfrontends.yaml b/package/crds/lb.ovh.edixos.io_tcpfrontends.yaml index 5626d0f..9cefe81 100644 --- a/package/crds/lb.ovh.edixos.io_tcpfrontends.yaml +++ b/package/crds/lb.ovh.edixos.io_tcpfrontends.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: TCPFrontend listKind: TCPFrontendList plural: tcpfrontends diff --git a/package/crds/lb.ovh.edixos.io_tcprouterules.yaml b/package/crds/lb.ovh.edixos.io_tcprouterules.yaml index cf62187..1f2fc70 100644 --- a/package/crds/lb.ovh.edixos.io_tcprouterules.yaml +++ b/package/crds/lb.ovh.edixos.io_tcprouterules.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: TCPRouteRule listKind: TCPRouteRuleList plural: tcprouterules diff --git a/package/crds/lb.ovh.edixos.io_tcproutes.yaml b/package/crds/lb.ovh.edixos.io_tcproutes.yaml index 8db14c3..6ebf73d 100644 --- a/package/crds/lb.ovh.edixos.io_tcproutes.yaml +++ b/package/crds/lb.ovh.edixos.io_tcproutes.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: TCPRoute listKind: TCPRouteList plural: tcproutes diff --git a/package/crds/lb.ovh.edixos.io_udpfarms.yaml b/package/crds/lb.ovh.edixos.io_udpfarms.yaml new file mode 100644 index 0000000..3cc260c --- /dev/null +++ b/package/crds/lb.ovh.edixos.io_udpfarms.yaml @@ -0,0 +1,384 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: udpfarms.lb.ovh.edixos.io +spec: + group: lb.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: UDPFarm + listKind: UDPFarmList + plural: udpfarms + singular: udpfarm + 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: UDPFarm is the Schema for the UDPFarms 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: UDPFarmSpec defines the desired state of UDPFarm + 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: + displayName: + description: Human readable name for your backend, this field + is for you + type: string + port: + description: Port attached to your farm ([1..49151]). Inherited + from frontend if null + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + vrackNetworkId: + description: Internal Load Balancer identifier of the vRack private + network to attach to your farm, mandatory when your Load Balancer + is attached to a vRack + type: number + zone: + description: Zone of your farm + type: string + 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: + displayName: + description: Human readable name for your backend, this field + is for you + type: string + port: + description: Port attached to your farm ([1..49151]). Inherited + from frontend if null + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + vrackNetworkId: + description: Internal Load Balancer identifier of the vRack private + network to attach to your farm, mandatory when your Load Balancer + is attached to a vRack + type: number + zone: + description: Zone of your farm + type: string + 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.port is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.port) + || (has(self.initProvider) && has(self.initProvider.port))' + - 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))' + - message: spec.forProvider.zone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.zone) + || (has(self.initProvider) && has(self.initProvider.zone))' + status: + description: UDPFarmStatus defines the observed state of UDPFarm. + properties: + atProvider: + properties: + displayName: + description: Human readable name for your backend, this field + is for you + type: string + farmId: + description: Id of your farm + type: number + id: + type: string + port: + description: Port attached to your farm ([1..49151]). Inherited + from frontend if null + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + vrackNetworkId: + description: Internal Load Balancer identifier of the vRack private + network to attach to your farm, mandatory when your Load Balancer + is attached to a vRack + type: number + zone: + description: Zone of your farm + 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/lb.ovh.edixos.io_udpfarmservers.yaml b/package/crds/lb.ovh.edixos.io_udpfarmservers.yaml new file mode 100644 index 0000000..349c42a --- /dev/null +++ b/package/crds/lb.ovh.edixos.io_udpfarmservers.yaml @@ -0,0 +1,394 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: udpfarmservers.lb.ovh.edixos.io +spec: + group: lb.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: UDPFarmServer + listKind: UDPFarmServerList + plural: udpfarmservers + singular: udpfarmserver + 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: UDPFarmServer is the Schema for the UDPFarmServers 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: UDPFarmServerSpec defines the desired state of UDPFarmServer + 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: + address: + description: IPv4 address (e.g., 192.0.2.0) + type: string + displayName: + description: Human readable name for your server, this field is + for you + type: string + farmId: + description: Id of your farm + type: number + port: + description: Port attached to your server ([1..49151]). Inherited + from farm if null + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + status: + description: Possible values for server status + type: string + 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: + address: + description: IPv4 address (e.g., 192.0.2.0) + type: string + displayName: + description: Human readable name for your server, this field is + for you + type: string + farmId: + description: Id of your farm + type: number + port: + description: Port attached to your server ([1..49151]). Inherited + from farm if null + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + status: + description: Possible values for server status + type: string + 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.address is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.address) + || (has(self.initProvider) && has(self.initProvider.address))' + - message: spec.forProvider.farmId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.farmId) + || (has(self.initProvider) && has(self.initProvider.farmId))' + - 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))' + - message: spec.forProvider.status is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.status) + || (has(self.initProvider) && has(self.initProvider.status))' + status: + description: UDPFarmServerStatus defines the observed state of UDPFarmServer. + properties: + atProvider: + properties: + address: + description: IPv4 address (e.g., 192.0.2.0) + type: string + backendId: + description: Synonym for farm_id + type: number + displayName: + description: Human readable name for your server, this field is + for you + type: string + farmId: + description: Id of your farm + type: number + id: + type: string + port: + description: Port attached to your server ([1..49151]). Inherited + from farm if null + type: number + serverId: + description: Id of your server + type: number + serviceName: + description: The internal name of your IP load balancing + type: string + status: + description: Possible values for server status + 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/lb.ovh.edixos.io_udpfrontends.yaml b/package/crds/lb.ovh.edixos.io_udpfrontends.yaml index 6345dbd..f7fb81f 100644 --- a/package/crds/lb.ovh.edixos.io_udpfrontends.yaml +++ b/package/crds/lb.ovh.edixos.io_udpfrontends.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: UDPFrontend listKind: UDPFrontendList plural: udpfrontends diff --git a/package/crds/lb.ovh.edixos.io_vracknetworks.yaml b/package/crds/lb.ovh.edixos.io_vracknetworks.yaml index c8214e2..4a07797 100644 --- a/package/crds/lb.ovh.edixos.io_vracknetworks.yaml +++ b/package/crds/lb.ovh.edixos.io_vracknetworks.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: VrackNetwork listKind: VrackNetworkList plural: vracknetworks diff --git a/package/crds/logs.ovh.edixos.io_logsclusters.yaml b/package/crds/logs.ovh.edixos.io_logsclusters.yaml index 5c0ae0e..b0d9fa5 100644 --- a/package/crds/logs.ovh.edixos.io_logsclusters.yaml +++ b/package/crds/logs.ovh.edixos.io_logsclusters.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: LogsCluster listKind: LogsClusterList plural: logsclusters diff --git a/package/crds/logs.ovh.edixos.io_logsinputs.yaml b/package/crds/logs.ovh.edixos.io_logsinputs.yaml index b2785ce..8dbde38 100644 --- a/package/crds/logs.ovh.edixos.io_logsinputs.yaml +++ b/package/crds/logs.ovh.edixos.io_logsinputs.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: LogsInput listKind: LogsInputList plural: logsinputs diff --git a/package/crds/logs.ovh.edixos.io_logsoutputopensearchaliases.yaml b/package/crds/logs.ovh.edixos.io_logsoutputopensearchaliases.yaml new file mode 100644 index 0000000..5db6a9d --- /dev/null +++ b/package/crds/logs.ovh.edixos.io_logsoutputopensearchaliases.yaml @@ -0,0 +1,426 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: logsoutputopensearchaliases.logs.ovh.edixos.io +spec: + group: logs.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: LogsOutputOpensearchAlias + listKind: LogsOutputOpensearchAliasList + plural: logsoutputopensearchaliases + singular: logsoutputopensearchalias + 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: LogsOutputOpensearchAlias is the Schema for the LogsOutputOpensearchAliass + 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: LogsOutputOpensearchAliasSpec defines the desired state of + LogsOutputOpensearchAlias + 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: Alias description + type: string + indexes: + description: Indexes attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + nbIndex: + description: Number of index + type: number + nbStream: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + streams: + description: Streams attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + suffix: + description: Alias suffix + type: string + 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: Alias description + type: string + indexes: + description: Indexes attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + nbIndex: + description: Number of index + type: number + nbStream: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + streams: + description: Streams attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + suffix: + description: Alias suffix + type: string + 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.description is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.description) + || (has(self.initProvider) && has(self.initProvider.description))' + - 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))' + - message: spec.forProvider.suffix is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.suffix) + || (has(self.initProvider) && has(self.initProvider.suffix))' + status: + description: LogsOutputOpensearchAliasStatus defines the observed state + of LogsOutputOpensearchAlias. + properties: + atProvider: + properties: + aliasId: + description: Alias used + type: string + createdAt: + description: Operation creation + type: string + currentSize: + description: Current alias size (in bytes) + type: number + description: + description: Alias description + type: string + id: + type: string + indexes: + description: Indexes attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + isEditable: + description: Indicates if you are allowed to edit entry + type: boolean + name: + description: Alias name + type: string + nbIndex: + description: Number of index + type: number + nbStream: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + streams: + description: Streams attached to alias + items: + type: string + type: array + x-kubernetes-list-type: set + suffix: + description: Alias suffix + type: string + updatedAt: + description: Operation last update + 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/logs.ovh.edixos.io_logsoutputopensearchindices.yaml b/package/crds/logs.ovh.edixos.io_logsoutputopensearchindices.yaml new file mode 100644 index 0000000..b044fe5 --- /dev/null +++ b/package/crds/logs.ovh.edixos.io_logsoutputopensearchindices.yaml @@ -0,0 +1,392 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: logsoutputopensearchindices.logs.ovh.edixos.io +spec: + group: logs.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: LogsOutputOpensearchIndex + listKind: LogsOutputOpensearchIndexList + plural: logsoutputopensearchindices + singular: logsoutputopensearchindex + 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: LogsOutputOpensearchIndex is the Schema for the LogsOutputOpensearchIndexs + 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: LogsOutputOpensearchIndexSpec defines the desired state of + LogsOutputOpensearchIndex + 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: Index description + type: string + nbShard: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + suffix: + description: Index suffix + type: string + 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: Index description + type: string + nbShard: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + suffix: + description: Index suffix + type: string + 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.description is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.description) + || (has(self.initProvider) && has(self.initProvider.description))' + - message: spec.forProvider.nbShard is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nbShard) + || (has(self.initProvider) && has(self.initProvider.nbShard))' + - 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))' + - message: spec.forProvider.suffix is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.suffix) + || (has(self.initProvider) && has(self.initProvider.suffix))' + status: + description: LogsOutputOpensearchIndexStatus defines the observed state + of LogsOutputOpensearchIndex. + properties: + atProvider: + properties: + alertNotifyEnabled: + description: If set, notify when size is near 80, 90 or 100 % + of its maximum capacity + type: boolean + createdAt: + description: Operation creation + type: string + currentSize: + description: Current Index size (in bytes) + type: number + description: + description: Index description + type: string + id: + type: string + indexId: + description: Index ID + type: string + isEditable: + description: Indicates if you are allowed to edit entry + type: boolean + maxSize: + description: Maximum index size (in bytes) + type: number + name: + description: Index name + type: string + nbShard: + description: Number of shard + type: number + serviceName: + description: The service name + type: string + suffix: + description: Index suffix + type: string + updatedAt: + description: Operation last update + 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/logs.ovh.edixos.io_logstokens.yaml b/package/crds/logs.ovh.edixos.io_logstokens.yaml index b95f846..0a8c4e4 100644 --- a/package/crds/logs.ovh.edixos.io_logstokens.yaml +++ b/package/crds/logs.ovh.edixos.io_logstokens.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: LogsToken listKind: LogsTokenList plural: logstokens diff --git a/package/crds/me.ovh.edixos.io_groups.yaml b/package/crds/me.ovh.edixos.io_groups.yaml index 9f71355..eb8ba0b 100644 --- a/package/crds/me.ovh.edixos.io_groups.yaml +++ b/package/crds/me.ovh.edixos.io_groups.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Group listKind: GroupList plural: groups diff --git a/package/crds/me.ovh.edixos.io_oauth2clients.yaml b/package/crds/me.ovh.edixos.io_oauth2clients.yaml index c6677fc..3483915 100644 --- a/package/crds/me.ovh.edixos.io_oauth2clients.yaml +++ b/package/crds/me.ovh.edixos.io_oauth2clients.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Oauth2Client listKind: Oauth2ClientList plural: oauth2clients diff --git a/package/crds/me.ovh.edixos.io_users.yaml b/package/crds/me.ovh.edixos.io_users.yaml index 03e88ed..7ae6438 100644 --- a/package/crds/me.ovh.edixos.io_users.yaml +++ b/package/crds/me.ovh.edixos.io_users.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: User listKind: UserList plural: users diff --git a/package/crds/nas.ovh.edixos.io_nashapartitionaccesses.yaml b/package/crds/nas.ovh.edixos.io_nashapartitionaccesses.yaml index 85fe248..48b31e9 100644 --- a/package/crds/nas.ovh.edixos.io_nashapartitionaccesses.yaml +++ b/package/crds/nas.ovh.edixos.io_nashapartitionaccesses.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: NashaPartitionAccess listKind: NashaPartitionAccessList plural: nashapartitionaccesses diff --git a/package/crds/nas.ovh.edixos.io_nashapartitions.yaml b/package/crds/nas.ovh.edixos.io_nashapartitions.yaml index 9ee0f6a..82faf77 100644 --- a/package/crds/nas.ovh.edixos.io_nashapartitions.yaml +++ b/package/crds/nas.ovh.edixos.io_nashapartitions.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: NashaPartition listKind: NashaPartitionList plural: nashapartitions diff --git a/package/crds/nas.ovh.edixos.io_nashapartitionsnapshots.yaml b/package/crds/nas.ovh.edixos.io_nashapartitionsnapshots.yaml index 2298e07..bfee327 100644 --- a/package/crds/nas.ovh.edixos.io_nashapartitionsnapshots.yaml +++ b/package/crds/nas.ovh.edixos.io_nashapartitionsnapshots.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: NashaPartitionSnapshot listKind: NashaPartitionSnapshotList plural: nashapartitionsnapshots diff --git a/package/crds/network.ovh.edixos.io_privatenetworks.yaml b/package/crds/network.ovh.edixos.io_privatenetworks.yaml index 90fcc9f..394f2e3 100644 --- a/package/crds/network.ovh.edixos.io_privatenetworks.yaml +++ b/package/crds/network.ovh.edixos.io_privatenetworks.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: PrivateNetwork listKind: PrivateNetworkList plural: privatenetworks diff --git a/package/crds/network.ovh.edixos.io_subnets.yaml b/package/crds/network.ovh.edixos.io_subnets.yaml index 5d06a2b..bfc32a5 100644 --- a/package/crds/network.ovh.edixos.io_subnets.yaml +++ b/package/crds/network.ovh.edixos.io_subnets.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Subnet listKind: SubnetList plural: subnets diff --git a/package/crds/network.ovh.edixos.io_subnetv2s.yaml b/package/crds/network.ovh.edixos.io_subnetv2s.yaml new file mode 100644 index 0000000..5e912a5 --- /dev/null +++ b/package/crds/network.ovh.edixos.io_subnetv2s.yaml @@ -0,0 +1,630 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: subnetv2s.network.ovh.edixos.io +spec: + group: network.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: SubnetV2 + listKind: SubnetV2List + plural: subnetv2s + singular: subnetv2 + 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: SubnetV2 is the Schema for the SubnetV2s 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: SubnetV2Spec defines the desired state of SubnetV2 + 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: + allocationPool: + description: DHCP allocation pools of subnet + items: + properties: + end: + type: string + start: + type: string + type: object + type: array + cidr: + description: CIDR of subnet + type: string + dhcp: + description: Enable DHCP in subnet + type: boolean + dnsNameservers: + description: 'List of DNS nameservers, default: 213.186.33.99' + items: + type: string + type: array + enableGatewayIp: + description: Enable gateway IP in subnet + type: boolean + gatewayIp: + description: Gateway IP of subnet + type: string + hostRoute: + description: Static host routes of subnet + items: + properties: + destination: + type: string + nexthop: + type: string + type: object + type: array + name: + description: Name of subnet + type: string + networkId: + description: Network ID of subnet + 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: + description: Region of network/subnet + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + 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: + allocationPool: + description: DHCP allocation pools of subnet + items: + properties: + end: + type: string + start: + type: string + type: object + type: array + cidr: + description: CIDR of subnet + type: string + dhcp: + description: Enable DHCP in subnet + type: boolean + dnsNameservers: + description: 'List of DNS nameservers, default: 213.186.33.99' + items: + type: string + type: array + enableGatewayIp: + description: Enable gateway IP in subnet + type: boolean + gatewayIp: + description: Gateway IP of subnet + type: string + hostRoute: + description: Static host routes of subnet + items: + properties: + destination: + type: string + nexthop: + type: string + type: object + type: array + name: + description: Name of subnet + type: string + networkId: + description: Network ID of subnet + 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: + description: Region of network/subnet + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + 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.cidr is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.cidr) + || (has(self.initProvider) && has(self.initProvider.cidr))' + - 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: SubnetV2Status defines the observed state of SubnetV2. + properties: + atProvider: + properties: + allocationPool: + description: DHCP allocation pools of subnet + items: + properties: + end: + type: string + start: + type: string + type: object + type: array + cidr: + description: CIDR of subnet + type: string + dhcp: + description: Enable DHCP in subnet + type: boolean + dnsNameservers: + description: 'List of DNS nameservers, default: 213.186.33.99' + items: + type: string + type: array + enableGatewayIp: + description: Enable gateway IP in subnet + type: boolean + gatewayIp: + description: Gateway IP of subnet + type: string + hostRoute: + description: Static host routes of subnet + items: + properties: + destination: + type: string + nexthop: + type: string + type: object + type: array + id: + type: string + name: + description: Name of subnet + type: string + networkId: + description: Network ID of subnet + type: string + region: + description: Region of network/subnet + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + 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/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml index 081157f..82e107a 100644 --- a/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: PrivatedatabaseDatabase listKind: PrivatedatabaseDatabaseList plural: privatedatabasedatabases diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml index f3e764c..623cdf9 100644 --- a/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Privatedatabase listKind: PrivatedatabaseList plural: privatedatabases @@ -413,15 +413,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: PrivatedatabaseStatus defines the observed state of Privatedatabase. properties: diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml index 344fadc..d97c847 100644 --- a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: PrivatedatabaseUserGrant listKind: PrivatedatabaseUserGrantList plural: privatedatabaseusergrants diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml index 0e300ea..b0276c9 100644 --- a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: PrivatedatabaseUser listKind: PrivatedatabaseUserList plural: privatedatabaseusers diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml index aac1579..867a029 100644 --- a/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: PrivatedatabaseWhitelist listKind: PrivatedatabaseWhitelistList plural: privatedatabasewhitelists diff --git a/package/crds/registry.ovh.edixos.io_containerregistries.yaml b/package/crds/registry.ovh.edixos.io_containerregistries.yaml index 10d8cd4..886c4d1 100644 --- a/package/crds/registry.ovh.edixos.io_containerregistries.yaml +++ b/package/crds/registry.ovh.edixos.io_containerregistries.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ContainerRegistry listKind: ContainerRegistryList plural: containerregistries diff --git a/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsmanagements.yaml b/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsmanagements.yaml index 7349833..4394678 100644 --- a/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsmanagements.yaml +++ b/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsmanagements.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ContainerRegistryIPRestrictionsManagement listKind: ContainerRegistryIPRestrictionsManagementList plural: containerregistryiprestrictionsmanagements diff --git a/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsregistries.yaml b/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsregistries.yaml index a1c972e..1dc7cef 100644 --- a/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsregistries.yaml +++ b/package/crds/registry.ovh.edixos.io_containerregistryiprestrictionsregistries.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ContainerRegistryIPRestrictionsRegistry listKind: ContainerRegistryIPRestrictionsRegistryList plural: containerregistryiprestrictionsregistries diff --git a/package/crds/registry.ovh.edixos.io_containerregistryoidcs.yaml b/package/crds/registry.ovh.edixos.io_containerregistryoidcs.yaml index 79286d0..5a2ee00 100644 --- a/package/crds/registry.ovh.edixos.io_containerregistryoidcs.yaml +++ b/package/crds/registry.ovh.edixos.io_containerregistryoidcs.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ContainerRegistryOIDC listKind: ContainerRegistryOIDCList plural: containerregistryoidcs diff --git a/package/crds/registry.ovh.edixos.io_containerregistryusers.yaml b/package/crds/registry.ovh.edixos.io_containerregistryusers.yaml index 99e5747..b1e0009 100644 --- a/package/crds/registry.ovh.edixos.io_containerregistryusers.yaml +++ b/package/crds/registry.ovh.edixos.io_containerregistryusers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ContainerRegistryUser listKind: ContainerRegistryUserList plural: containerregistryusers diff --git a/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml b/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml index 04b8201..3e54825 100644 --- a/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml +++ b/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectRegionStoragePresign listKind: ProjectRegionStoragePresignList plural: projectregionstoragepresigns @@ -75,22 +75,22 @@ spec: forProvider: properties: expire: - description: How long (in seconds) the URL will be valid. + description: How long (in seconds) the URL will be valid type: number method: type: string name: - description: The S3 storage container's name. + description: The S3 storage container's name type: string object: - description: Name of the object to download or upload. + description: Name of the object to download or upload type: string regionName: - description: Region name. + description: Region name type: string serviceName: description: Service name of the resource representing the ID - of the cloud project. + of the cloud project type: string type: object initProvider: @@ -107,22 +107,22 @@ spec: autoscaler. properties: expire: - description: How long (in seconds) the URL will be valid. + description: How long (in seconds) the URL will be valid type: number method: type: string name: - description: The S3 storage container's name. + description: The S3 storage container's name type: string object: - description: Name of the object to download or upload. + description: Name of the object to download or upload type: string regionName: - description: Region name. + description: Region name type: string serviceName: description: Service name of the resource representing the ID - of the cloud project. + of the cloud project type: string type: object managementPolicies: @@ -324,27 +324,27 @@ spec: atProvider: properties: expire: - description: How long (in seconds) the URL will be valid. + description: How long (in seconds) the URL will be valid type: number id: type: string method: type: string name: - description: The S3 storage container's name. + description: The S3 storage container's name type: string object: - description: Name of the object to download or upload. + description: Name of the object to download or upload type: string regionName: - description: Region name. + description: Region name type: string serviceName: description: Service name of the resource representing the ID - of the cloud project. + of the cloud project type: string url: - description: Presigned URL. + description: Presigned URL type: string type: object conditions: diff --git a/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml b/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml index 583f2f8..3aab4e3 100644 --- a/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml +++ b/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: ProjectWorkflowBackup listKind: ProjectWorkflowBackupList plural: projectworkflowbackups diff --git a/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml b/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml index 569d48a..6fb9ec0 100644 --- a/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml +++ b/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Cloudproject listKind: CloudprojectList plural: cloudprojects diff --git a/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml b/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml index 5b6dd2e..37401fd 100644 --- a/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml +++ b/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: DedicatedServerInterface listKind: DedicatedServerInterfaceList plural: dedicatedserverinterfaces diff --git a/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml b/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml index 1ecbedf..ac40439 100644 --- a/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml +++ b/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: DedicatedServer listKind: DedicatedServerList plural: dedicatedservers diff --git a/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml b/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml index ee43f5d..127d2b3 100644 --- a/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml +++ b/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Iploadbalancing listKind: IploadbalancingList plural: iploadbalancings diff --git a/package/crds/vrack.ovh.edixos.io_ips.yaml b/package/crds/vrack.ovh.edixos.io_ips.yaml index 888d6c8..5edde3d 100644 --- a/package/crds/vrack.ovh.edixos.io_ips.yaml +++ b/package/crds/vrack.ovh.edixos.io_ips.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: IP listKind: IPList plural: ips diff --git a/package/crds/vrack.ovh.edixos.io_vracks.yaml b/package/crds/vrack.ovh.edixos.io_vracks.yaml index d6251e0..f3ddac1 100644 --- a/package/crds/vrack.ovh.edixos.io_vracks.yaml +++ b/package/crds/vrack.ovh.edixos.io_vracks.yaml @@ -11,7 +11,7 @@ spec: categories: - crossplane - managed - - lb + - ovh kind: Vrack listKind: VrackList plural: vracks @@ -412,15 +412,6 @@ spec: required: - forProvider type: object - x-kubernetes-validations: - - message: spec.forProvider.ovhSubsidiary is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) - || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' - - message: spec.forProvider.plan is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) - || (has(self.initProvider) && has(self.initProvider.plan))' status: description: VrackStatus defines the observed state of Vrack. properties: