From 4bb212fe57770b11e25e683e2fcd871be48d0174 Mon Sep 17 00:00:00 2001 From: ISMAIL KABOUBI Date: Wed, 3 Jan 2024 19:02:04 +0100 Subject: [PATCH] feat(apis): adding dedicated_server apis --- .../v1alpha1/zz_generated.deepcopy.go | 2558 +++++++++++++++++ .../v1alpha1/zz_generated.managed.go | 548 ++++ .../v1alpha1/zz_generated.managedlist.go | 89 + .../v1alpha1/zz_generated_terraformed.go | 774 +++++ .../v1alpha1/zz_groupversion_info.go | 36 + .../v1alpha1/zz_installationtemplate_types.go | 260 ++ ...stallationtemplatepartitionscheme_types.go | 110 + ...mplatepartitionschemehardwareraid_types.go | 144 + ...ntemplatepartitionschemepartition_types.go | 186 ++ .../v1alpha1/zz_ipxescript_types.go | 110 + .../v1alpha1/zz_serverinstalltask_types.go | 284 ++ .../v1alpha1/zz_servernetworking_types.go | 160 ++ .../v1alpha1/zz_serverreboottask_types.go | 129 + .../v1alpha1/zz_serverupdate_types.go | 130 + apis/zz_register.go | 2 + config/cloud_disk_array/config.go | 1 - config/dedicated_server/config.go | 46 + config/external_name.go | 39 +- config/provider.go | 4 + .../dedicatedserver/servernetworking.yaml | 14 + .../installationtemplate/zz_controller.go | 67 + .../zz_controller.go | 67 + .../zz_controller.go | 67 + .../zz_controller.go | 67 + .../ipxescript/zz_controller.go | 67 + .../serverinstalltask/zz_controller.go | 67 + .../servernetworking/zz_controller.go | 67 + .../serverreboottask/zz_controller.go | 67 + .../serverupdate/zz_controller.go | 67 + internal/controller/zz_setup.go | 18 + ...ntemplatepartitionschemehardwareraids.yaml | 378 +++ ...tiontemplatepartitionschemepartitions.yaml | 410 +++ ..._installationtemplatepartitionschemes.yaml | 333 +++ ...r.ovh.edixos.io_installationtemplates.yaml | 502 ++++ ...catedserver.ovh.edixos.io_ipxescripts.yaml | 326 +++ ...rver.ovh.edixos.io_serverinstalltasks.yaml | 505 ++++ ...erver.ovh.edixos.io_servernetworkings.yaml | 380 +++ ...erver.ovh.edixos.io_serverreboottasks.yaml | 346 +++ ...tedserver.ovh.edixos.io_serverupdates.yaml | 335 +++ 39 files changed, 9744 insertions(+), 16 deletions(-) create mode 100644 apis/dedicatedserver/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/dedicatedserver/v1alpha1/zz_generated.managed.go create mode 100644 apis/dedicatedserver/v1alpha1/zz_generated.managedlist.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_generated_terraformed.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_groupversion_info.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_ipxescript_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go create mode 100755 apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go create mode 100644 config/dedicated_server/config.go create mode 100644 examples-generated/dedicatedserver/servernetworking.yaml create mode 100755 internal/controller/dedicatedserver/installationtemplate/zz_controller.go create mode 100755 internal/controller/dedicatedserver/installationtemplatepartitionscheme/zz_controller.go create mode 100755 internal/controller/dedicatedserver/installationtemplatepartitionschemehardwareraid/zz_controller.go create mode 100755 internal/controller/dedicatedserver/installationtemplatepartitionschemepartition/zz_controller.go create mode 100755 internal/controller/dedicatedserver/ipxescript/zz_controller.go create mode 100755 internal/controller/dedicatedserver/serverinstalltask/zz_controller.go create mode 100755 internal/controller/dedicatedserver/servernetworking/zz_controller.go create mode 100755 internal/controller/dedicatedserver/serverreboottask/zz_controller.go create mode 100755 internal/controller/dedicatedserver/serverupdate/zz_controller.go create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_ipxescripts.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml create mode 100644 package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml diff --git a/apis/dedicatedserver/v1alpha1/zz_generated.deepcopy.go b/apis/dedicatedserver/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..76ada78 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2558 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +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 *CustomizationInitParameters) DeepCopyInto(out *CustomizationInitParameters) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.Rating != nil { + in, out := &in.Rating, &out.Rating + *out = new(float64) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.UseDistributionKernel != nil { + in, out := &in.UseDistributionKernel, &out.UseDistributionKernel + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomizationInitParameters. +func (in *CustomizationInitParameters) DeepCopy() *CustomizationInitParameters { + if in == nil { + return nil + } + out := new(CustomizationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomizationObservation) DeepCopyInto(out *CustomizationObservation) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.Rating != nil { + in, out := &in.Rating, &out.Rating + *out = new(float64) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.UseDistributionKernel != nil { + in, out := &in.UseDistributionKernel, &out.UseDistributionKernel + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomizationObservation. +func (in *CustomizationObservation) DeepCopy() *CustomizationObservation { + if in == nil { + return nil + } + out := new(CustomizationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomizationParameters) DeepCopyInto(out *CustomizationParameters) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.Rating != nil { + in, out := &in.Rating, &out.Rating + *out = new(float64) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.UseDistributionKernel != nil { + in, out := &in.UseDistributionKernel, &out.UseDistributionKernel + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomizationParameters. +func (in *CustomizationParameters) DeepCopy() *CustomizationParameters { + if in == nil { + return nil + } + out := new(CustomizationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DetailsInitParameters) DeepCopyInto(out *DetailsInitParameters) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.DiskGroupID != nil { + in, out := &in.DiskGroupID, &out.DiskGroupID + *out = new(float64) + **out = **in + } + if in.InstallRtm != nil { + in, out := &in.InstallRtm, &out.InstallRtm + *out = new(bool) + **out = **in + } + if in.InstallSQLServer != nil { + in, out := &in.InstallSQLServer, &out.InstallSQLServer + *out = new(bool) + **out = **in + } + if in.Language != nil { + in, out := &in.Language, &out.Language + *out = new(string) + **out = **in + } + if in.NoRaid != nil { + in, out := &in.NoRaid, &out.NoRaid + *out = new(bool) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.ResetHwRaid != nil { + in, out := &in.ResetHwRaid, &out.ResetHwRaid + *out = new(bool) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.SoftRaidDevices != nil { + in, out := &in.SoftRaidDevices, &out.SoftRaidDevices + *out = new(float64) + **out = **in + } + if in.UseDistribKernel != nil { + in, out := &in.UseDistribKernel, &out.UseDistribKernel + *out = new(bool) + **out = **in + } + if in.UseSpla != nil { + in, out := &in.UseSpla, &out.UseSpla + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DetailsInitParameters. +func (in *DetailsInitParameters) DeepCopy() *DetailsInitParameters { + if in == nil { + return nil + } + out := new(DetailsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DetailsObservation) DeepCopyInto(out *DetailsObservation) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.DiskGroupID != nil { + in, out := &in.DiskGroupID, &out.DiskGroupID + *out = new(float64) + **out = **in + } + if in.InstallRtm != nil { + in, out := &in.InstallRtm, &out.InstallRtm + *out = new(bool) + **out = **in + } + if in.InstallSQLServer != nil { + in, out := &in.InstallSQLServer, &out.InstallSQLServer + *out = new(bool) + **out = **in + } + if in.Language != nil { + in, out := &in.Language, &out.Language + *out = new(string) + **out = **in + } + if in.NoRaid != nil { + in, out := &in.NoRaid, &out.NoRaid + *out = new(bool) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.ResetHwRaid != nil { + in, out := &in.ResetHwRaid, &out.ResetHwRaid + *out = new(bool) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.SoftRaidDevices != nil { + in, out := &in.SoftRaidDevices, &out.SoftRaidDevices + *out = new(float64) + **out = **in + } + if in.UseDistribKernel != nil { + in, out := &in.UseDistribKernel, &out.UseDistribKernel + *out = new(bool) + **out = **in + } + if in.UseSpla != nil { + in, out := &in.UseSpla, &out.UseSpla + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DetailsObservation. +func (in *DetailsObservation) DeepCopy() *DetailsObservation { + if in == nil { + return nil + } + out := new(DetailsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DetailsParameters) DeepCopyInto(out *DetailsParameters) { + *out = *in + if in.ChangeLog != nil { + in, out := &in.ChangeLog, &out.ChangeLog + *out = new(string) + **out = **in + } + if in.CustomHostname != nil { + in, out := &in.CustomHostname, &out.CustomHostname + *out = new(string) + **out = **in + } + if in.DiskGroupID != nil { + in, out := &in.DiskGroupID, &out.DiskGroupID + *out = new(float64) + **out = **in + } + if in.InstallRtm != nil { + in, out := &in.InstallRtm, &out.InstallRtm + *out = new(bool) + **out = **in + } + if in.InstallSQLServer != nil { + in, out := &in.InstallSQLServer, &out.InstallSQLServer + *out = new(bool) + **out = **in + } + if in.Language != nil { + in, out := &in.Language, &out.Language + *out = new(string) + **out = **in + } + if in.NoRaid != nil { + in, out := &in.NoRaid, &out.NoRaid + *out = new(bool) + **out = **in + } + if in.PostInstallationScriptLink != nil { + in, out := &in.PostInstallationScriptLink, &out.PostInstallationScriptLink + *out = new(string) + **out = **in + } + if in.PostInstallationScriptReturn != nil { + in, out := &in.PostInstallationScriptReturn, &out.PostInstallationScriptReturn + *out = new(string) + **out = **in + } + if in.ResetHwRaid != nil { + in, out := &in.ResetHwRaid, &out.ResetHwRaid + *out = new(bool) + **out = **in + } + if in.SSHKeyName != nil { + in, out := &in.SSHKeyName, &out.SSHKeyName + *out = new(string) + **out = **in + } + if in.SoftRaidDevices != nil { + in, out := &in.SoftRaidDevices, &out.SoftRaidDevices + *out = new(float64) + **out = **in + } + if in.UseDistribKernel != nil { + in, out := &in.UseDistribKernel, &out.UseDistribKernel + *out = new(bool) + **out = **in + } + if in.UseSpla != nil { + in, out := &in.UseSpla, &out.UseSpla + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DetailsParameters. +func (in *DetailsParameters) DeepCopy() *DetailsParameters { + if in == nil { + return nil + } + out := new(DetailsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplate) DeepCopyInto(out *InstallationTemplate) { + *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 InstallationTemplate. +func (in *InstallationTemplate) DeepCopy() *InstallationTemplate { + if in == nil { + return nil + } + out := new(InstallationTemplate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplate) 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 *InstallationTemplateInitParameters) DeepCopyInto(out *InstallationTemplateInitParameters) { + *out = *in + if in.BaseTemplateName != nil { + in, out := &in.BaseTemplateName, &out.BaseTemplateName + *out = new(string) + **out = **in + } + if in.Customization != nil { + in, out := &in.Customization, &out.Customization + *out = make([]CustomizationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DefaultLanguage != nil { + in, out := &in.DefaultLanguage, &out.DefaultLanguage + *out = new(string) + **out = **in + } + if in.RemoveDefaultPartitionSchemes != nil { + in, out := &in.RemoveDefaultPartitionSchemes, &out.RemoveDefaultPartitionSchemes + *out = new(bool) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplateInitParameters. +func (in *InstallationTemplateInitParameters) DeepCopy() *InstallationTemplateInitParameters { + if in == nil { + return nil + } + out := new(InstallationTemplateInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplateList) DeepCopyInto(out *InstallationTemplateList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstallationTemplate, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplateList. +func (in *InstallationTemplateList) DeepCopy() *InstallationTemplateList { + if in == nil { + return nil + } + out := new(InstallationTemplateList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplateList) 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 *InstallationTemplateObservation) DeepCopyInto(out *InstallationTemplateObservation) { + *out = *in + if in.AvailableLanguages != nil { + in, out := &in.AvailableLanguages, &out.AvailableLanguages + *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.BaseTemplateName != nil { + in, out := &in.BaseTemplateName, &out.BaseTemplateName + *out = new(string) + **out = **in + } + if in.Beta != nil { + in, out := &in.Beta, &out.Beta + *out = new(bool) + **out = **in + } + if in.BitFormat != nil { + in, out := &in.BitFormat, &out.BitFormat + *out = new(float64) + **out = **in + } + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Customization != nil { + in, out := &in.Customization, &out.Customization + *out = make([]CustomizationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DefaultLanguage != nil { + in, out := &in.DefaultLanguage, &out.DefaultLanguage + *out = new(string) + **out = **in + } + if in.Deprecated != nil { + in, out := &in.Deprecated, &out.Deprecated + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Distribution != nil { + in, out := &in.Distribution, &out.Distribution + *out = new(string) + **out = **in + } + if in.Family != nil { + in, out := &in.Family, &out.Family + *out = new(string) + **out = **in + } + if in.Filesystems != nil { + in, out := &in.Filesystems, &out.Filesystems + *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.HardRaidConfiguration != nil { + in, out := &in.HardRaidConfiguration, &out.HardRaidConfiguration + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastModification != nil { + in, out := &in.LastModification, &out.LastModification + *out = new(string) + **out = **in + } + if in.LvmReady != nil { + in, out := &in.LvmReady, &out.LvmReady + *out = new(bool) + **out = **in + } + if in.RemoveDefaultPartitionSchemes != nil { + in, out := &in.RemoveDefaultPartitionSchemes, &out.RemoveDefaultPartitionSchemes + *out = new(bool) + **out = **in + } + if in.SupportsDistributionKernel != nil { + in, out := &in.SupportsDistributionKernel, &out.SupportsDistributionKernel + *out = new(bool) + **out = **in + } + if in.SupportsRtm != nil { + in, out := &in.SupportsRtm, &out.SupportsRtm + *out = new(bool) + **out = **in + } + if in.SupportsSQLServer != nil { + in, out := &in.SupportsSQLServer, &out.SupportsSQLServer + *out = new(bool) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplateObservation. +func (in *InstallationTemplateObservation) DeepCopy() *InstallationTemplateObservation { + if in == nil { + return nil + } + out := new(InstallationTemplateObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplateParameters) DeepCopyInto(out *InstallationTemplateParameters) { + *out = *in + if in.BaseTemplateName != nil { + in, out := &in.BaseTemplateName, &out.BaseTemplateName + *out = new(string) + **out = **in + } + if in.Customization != nil { + in, out := &in.Customization, &out.Customization + *out = make([]CustomizationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DefaultLanguage != nil { + in, out := &in.DefaultLanguage, &out.DefaultLanguage + *out = new(string) + **out = **in + } + if in.RemoveDefaultPartitionSchemes != nil { + in, out := &in.RemoveDefaultPartitionSchemes, &out.RemoveDefaultPartitionSchemes + *out = new(bool) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplateParameters. +func (in *InstallationTemplateParameters) DeepCopy() *InstallationTemplateParameters { + if in == nil { + return nil + } + out := new(InstallationTemplateParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionScheme) DeepCopyInto(out *InstallationTemplatePartitionScheme) { + *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 InstallationTemplatePartitionScheme. +func (in *InstallationTemplatePartitionScheme) DeepCopy() *InstallationTemplatePartitionScheme { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionScheme) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionScheme) 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 *InstallationTemplatePartitionSchemeHardwareRaid) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaid) { + *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 InstallationTemplatePartitionSchemeHardwareRaid. +func (in *InstallationTemplatePartitionSchemeHardwareRaid) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaid { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaid) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionSchemeHardwareRaid) 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 *InstallationTemplatePartitionSchemeHardwareRaidInitParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidInitParameters) { + *out = *in + if in.Disks != nil { + in, out := &in.Disks, &out.Disks + *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.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Step != nil { + in, out := &in.Step, &out.Step + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeHardwareRaidInitParameters. +func (in *InstallationTemplatePartitionSchemeHardwareRaidInitParameters) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidInitParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeHardwareRaidList) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstallationTemplatePartitionSchemeHardwareRaid, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeHardwareRaidList. +func (in *InstallationTemplatePartitionSchemeHardwareRaidList) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidList { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionSchemeHardwareRaidList) 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 *InstallationTemplatePartitionSchemeHardwareRaidObservation) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidObservation) { + *out = *in + if in.Disks != nil { + in, out := &in.Disks, &out.Disks + *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.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Step != nil { + in, out := &in.Step, &out.Step + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeHardwareRaidObservation. +func (in *InstallationTemplatePartitionSchemeHardwareRaidObservation) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidObservation { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeHardwareRaidParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidParameters) { + *out = *in + if in.Disks != nil { + in, out := &in.Disks, &out.Disks + *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.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Step != nil { + in, out := &in.Step, &out.Step + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeHardwareRaidParameters. +func (in *InstallationTemplatePartitionSchemeHardwareRaidParameters) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeHardwareRaidSpec) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidSpec) { + *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 InstallationTemplatePartitionSchemeHardwareRaidSpec. +func (in *InstallationTemplatePartitionSchemeHardwareRaidSpec) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidSpec { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeHardwareRaidStatus) DeepCopyInto(out *InstallationTemplatePartitionSchemeHardwareRaidStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeHardwareRaidStatus. +func (in *InstallationTemplatePartitionSchemeHardwareRaidStatus) DeepCopy() *InstallationTemplatePartitionSchemeHardwareRaidStatus { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeHardwareRaidStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeInitParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemeInitParameters) { + *out = *in + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeInitParameters. +func (in *InstallationTemplatePartitionSchemeInitParameters) DeepCopy() *InstallationTemplatePartitionSchemeInitParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeList) DeepCopyInto(out *InstallationTemplatePartitionSchemeList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstallationTemplatePartitionScheme, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeList. +func (in *InstallationTemplatePartitionSchemeList) DeepCopy() *InstallationTemplatePartitionSchemeList { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionSchemeList) 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 *InstallationTemplatePartitionSchemeObservation) DeepCopyInto(out *InstallationTemplatePartitionSchemeObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeObservation. +func (in *InstallationTemplatePartitionSchemeObservation) DeepCopy() *InstallationTemplatePartitionSchemeObservation { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemeParameters) { + *out = *in + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeParameters. +func (in *InstallationTemplatePartitionSchemeParameters) DeepCopy() *InstallationTemplatePartitionSchemeParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemePartition) DeepCopyInto(out *InstallationTemplatePartitionSchemePartition) { + *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 InstallationTemplatePartitionSchemePartition. +func (in *InstallationTemplatePartitionSchemePartition) DeepCopy() *InstallationTemplatePartitionSchemePartition { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionSchemePartition) 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 *InstallationTemplatePartitionSchemePartitionInitParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionInitParameters) { + *out = *in + if in.Filesystem != nil { + in, out := &in.Filesystem, &out.Filesystem + *out = new(string) + **out = **in + } + if in.Mountpoint != nil { + in, out := &in.Mountpoint, &out.Mountpoint + *out = new(string) + **out = **in + } + if in.Order != nil { + in, out := &in.Order, &out.Order + *out = new(float64) + **out = **in + } + if in.Raid != nil { + in, out := &in.Raid, &out.Raid + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VolumeName != nil { + in, out := &in.VolumeName, &out.VolumeName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemePartitionInitParameters. +func (in *InstallationTemplatePartitionSchemePartitionInitParameters) DeepCopy() *InstallationTemplatePartitionSchemePartitionInitParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemePartitionList) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstallationTemplatePartitionSchemePartition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemePartitionList. +func (in *InstallationTemplatePartitionSchemePartitionList) DeepCopy() *InstallationTemplatePartitionSchemePartitionList { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstallationTemplatePartitionSchemePartitionList) 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 *InstallationTemplatePartitionSchemePartitionObservation) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionObservation) { + *out = *in + if in.Filesystem != nil { + in, out := &in.Filesystem, &out.Filesystem + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Mountpoint != nil { + in, out := &in.Mountpoint, &out.Mountpoint + *out = new(string) + **out = **in + } + if in.Order != nil { + in, out := &in.Order, &out.Order + *out = new(float64) + **out = **in + } + if in.Raid != nil { + in, out := &in.Raid, &out.Raid + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VolumeName != nil { + in, out := &in.VolumeName, &out.VolumeName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemePartitionObservation. +func (in *InstallationTemplatePartitionSchemePartitionObservation) DeepCopy() *InstallationTemplatePartitionSchemePartitionObservation { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemePartitionParameters) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionParameters) { + *out = *in + if in.Filesystem != nil { + in, out := &in.Filesystem, &out.Filesystem + *out = new(string) + **out = **in + } + if in.Mountpoint != nil { + in, out := &in.Mountpoint, &out.Mountpoint + *out = new(string) + **out = **in + } + if in.Order != nil { + in, out := &in.Order, &out.Order + *out = new(float64) + **out = **in + } + if in.Raid != nil { + in, out := &in.Raid, &out.Raid + *out = new(string) + **out = **in + } + if in.SchemeName != nil { + in, out := &in.SchemeName, &out.SchemeName + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VolumeName != nil { + in, out := &in.VolumeName, &out.VolumeName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemePartitionParameters. +func (in *InstallationTemplatePartitionSchemePartitionParameters) DeepCopy() *InstallationTemplatePartitionSchemePartitionParameters { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemePartitionSpec) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionSpec) { + *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 InstallationTemplatePartitionSchemePartitionSpec. +func (in *InstallationTemplatePartitionSchemePartitionSpec) DeepCopy() *InstallationTemplatePartitionSchemePartitionSpec { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemePartitionStatus) DeepCopyInto(out *InstallationTemplatePartitionSchemePartitionStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemePartitionStatus. +func (in *InstallationTemplatePartitionSchemePartitionStatus) DeepCopy() *InstallationTemplatePartitionSchemePartitionStatus { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemePartitionStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeSpec) DeepCopyInto(out *InstallationTemplatePartitionSchemeSpec) { + *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 InstallationTemplatePartitionSchemeSpec. +func (in *InstallationTemplatePartitionSchemeSpec) DeepCopy() *InstallationTemplatePartitionSchemeSpec { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplatePartitionSchemeStatus) DeepCopyInto(out *InstallationTemplatePartitionSchemeStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplatePartitionSchemeStatus. +func (in *InstallationTemplatePartitionSchemeStatus) DeepCopy() *InstallationTemplatePartitionSchemeStatus { + if in == nil { + return nil + } + out := new(InstallationTemplatePartitionSchemeStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplateSpec) DeepCopyInto(out *InstallationTemplateSpec) { + *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 InstallationTemplateSpec. +func (in *InstallationTemplateSpec) DeepCopy() *InstallationTemplateSpec { + if in == nil { + return nil + } + out := new(InstallationTemplateSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstallationTemplateStatus) DeepCopyInto(out *InstallationTemplateStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstallationTemplateStatus. +func (in *InstallationTemplateStatus) DeepCopy() *InstallationTemplateStatus { + if in == nil { + return nil + } + out := new(InstallationTemplateStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InterfacesInitParameters) DeepCopyInto(out *InterfacesInitParameters) { + *out = *in + if in.Macs != nil { + in, out := &in.Macs, &out.Macs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfacesInitParameters. +func (in *InterfacesInitParameters) DeepCopy() *InterfacesInitParameters { + if in == nil { + return nil + } + out := new(InterfacesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InterfacesObservation) DeepCopyInto(out *InterfacesObservation) { + *out = *in + if in.Macs != nil { + in, out := &in.Macs, &out.Macs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfacesObservation. +func (in *InterfacesObservation) DeepCopy() *InterfacesObservation { + if in == nil { + return nil + } + out := new(InterfacesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InterfacesParameters) DeepCopyInto(out *InterfacesParameters) { + *out = *in + if in.Macs != nil { + in, out := &in.Macs, &out.Macs + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterfacesParameters. +func (in *InterfacesParameters) DeepCopy() *InterfacesParameters { + if in == nil { + return nil + } + out := new(InterfacesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpxeScript) DeepCopyInto(out *IpxeScript) { + *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 IpxeScript. +func (in *IpxeScript) DeepCopy() *IpxeScript { + if in == nil { + return nil + } + out := new(IpxeScript) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpxeScript) 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 *IpxeScriptInitParameters) DeepCopyInto(out *IpxeScriptInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Script != nil { + in, out := &in.Script, &out.Script + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpxeScriptInitParameters. +func (in *IpxeScriptInitParameters) DeepCopy() *IpxeScriptInitParameters { + if in == nil { + return nil + } + out := new(IpxeScriptInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpxeScriptList) DeepCopyInto(out *IpxeScriptList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IpxeScript, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpxeScriptList. +func (in *IpxeScriptList) DeepCopy() *IpxeScriptList { + if in == nil { + return nil + } + out := new(IpxeScriptList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpxeScriptList) 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 *IpxeScriptObservation) DeepCopyInto(out *IpxeScriptObservation) { + *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.Script != nil { + in, out := &in.Script, &out.Script + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpxeScriptObservation. +func (in *IpxeScriptObservation) DeepCopy() *IpxeScriptObservation { + if in == nil { + return nil + } + out := new(IpxeScriptObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpxeScriptParameters) DeepCopyInto(out *IpxeScriptParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Script != nil { + in, out := &in.Script, &out.Script + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpxeScriptParameters. +func (in *IpxeScriptParameters) DeepCopy() *IpxeScriptParameters { + if in == nil { + return nil + } + out := new(IpxeScriptParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpxeScriptSpec) DeepCopyInto(out *IpxeScriptSpec) { + *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 IpxeScriptSpec. +func (in *IpxeScriptSpec) DeepCopy() *IpxeScriptSpec { + if in == nil { + return nil + } + out := new(IpxeScriptSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpxeScriptStatus) DeepCopyInto(out *IpxeScriptStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpxeScriptStatus. +func (in *IpxeScriptStatus) DeepCopy() *IpxeScriptStatus { + if in == nil { + return nil + } + out := new(IpxeScriptStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInstallTask) DeepCopyInto(out *ServerInstallTask) { + *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 ServerInstallTask. +func (in *ServerInstallTask) DeepCopy() *ServerInstallTask { + if in == nil { + return nil + } + out := new(ServerInstallTask) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerInstallTask) 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 *ServerInstallTaskInitParameters) DeepCopyInto(out *ServerInstallTaskInitParameters) { + *out = *in + if in.BootidOnDestroy != nil { + in, out := &in.BootidOnDestroy, &out.BootidOnDestroy + *out = new(float64) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]DetailsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PartitionSchemeName != nil { + in, out := &in.PartitionSchemeName, &out.PartitionSchemeName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInstallTaskInitParameters. +func (in *ServerInstallTaskInitParameters) DeepCopy() *ServerInstallTaskInitParameters { + if in == nil { + return nil + } + out := new(ServerInstallTaskInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInstallTaskList) DeepCopyInto(out *ServerInstallTaskList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServerInstallTask, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInstallTaskList. +func (in *ServerInstallTaskList) DeepCopy() *ServerInstallTaskList { + if in == nil { + return nil + } + out := new(ServerInstallTaskList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerInstallTaskList) 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 *ServerInstallTaskObservation) DeepCopyInto(out *ServerInstallTaskObservation) { + *out = *in + if in.BootidOnDestroy != nil { + in, out := &in.BootidOnDestroy, &out.BootidOnDestroy + *out = new(float64) + **out = **in + } + if in.Comment != nil { + in, out := &in.Comment, &out.Comment + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]DetailsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DoneDate != nil { + in, out := &in.DoneDate, &out.DoneDate + *out = new(string) + **out = **in + } + if in.Function != nil { + in, out := &in.Function, &out.Function + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = new(string) + **out = **in + } + if in.PartitionSchemeName != nil { + in, out := &in.PartitionSchemeName, &out.PartitionSchemeName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.StartDate != nil { + in, out := &in.StartDate, &out.StartDate + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInstallTaskObservation. +func (in *ServerInstallTaskObservation) DeepCopy() *ServerInstallTaskObservation { + if in == nil { + return nil + } + out := new(ServerInstallTaskObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInstallTaskParameters) DeepCopyInto(out *ServerInstallTaskParameters) { + *out = *in + if in.BootidOnDestroy != nil { + in, out := &in.BootidOnDestroy, &out.BootidOnDestroy + *out = new(float64) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]DetailsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PartitionSchemeName != nil { + in, out := &in.PartitionSchemeName, &out.PartitionSchemeName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInstallTaskParameters. +func (in *ServerInstallTaskParameters) DeepCopy() *ServerInstallTaskParameters { + if in == nil { + return nil + } + out := new(ServerInstallTaskParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInstallTaskSpec) DeepCopyInto(out *ServerInstallTaskSpec) { + *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 ServerInstallTaskSpec. +func (in *ServerInstallTaskSpec) DeepCopy() *ServerInstallTaskSpec { + if in == nil { + return nil + } + out := new(ServerInstallTaskSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInstallTaskStatus) DeepCopyInto(out *ServerInstallTaskStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInstallTaskStatus. +func (in *ServerInstallTaskStatus) DeepCopy() *ServerInstallTaskStatus { + if in == nil { + return nil + } + out := new(ServerInstallTaskStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerNetworking) DeepCopyInto(out *ServerNetworking) { + *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 ServerNetworking. +func (in *ServerNetworking) DeepCopy() *ServerNetworking { + if in == nil { + return nil + } + out := new(ServerNetworking) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerNetworking) 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 *ServerNetworkingInitParameters) DeepCopyInto(out *ServerNetworkingInitParameters) { + *out = *in + if in.Interfaces != nil { + in, out := &in.Interfaces, &out.Interfaces + *out = make([]InterfacesInitParameters, 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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerNetworkingInitParameters. +func (in *ServerNetworkingInitParameters) DeepCopy() *ServerNetworkingInitParameters { + if in == nil { + return nil + } + out := new(ServerNetworkingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerNetworkingList) DeepCopyInto(out *ServerNetworkingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServerNetworking, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerNetworkingList. +func (in *ServerNetworkingList) DeepCopy() *ServerNetworkingList { + if in == nil { + return nil + } + out := new(ServerNetworkingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerNetworkingList) 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 *ServerNetworkingObservation) DeepCopyInto(out *ServerNetworkingObservation) { + *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.Interfaces != nil { + in, out := &in.Interfaces, &out.Interfaces + *out = make([]InterfacesObservation, 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.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 ServerNetworkingObservation. +func (in *ServerNetworkingObservation) DeepCopy() *ServerNetworkingObservation { + if in == nil { + return nil + } + out := new(ServerNetworkingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerNetworkingParameters) DeepCopyInto(out *ServerNetworkingParameters) { + *out = *in + if in.Interfaces != nil { + in, out := &in.Interfaces, &out.Interfaces + *out = make([]InterfacesParameters, 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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerNetworkingParameters. +func (in *ServerNetworkingParameters) DeepCopy() *ServerNetworkingParameters { + if in == nil { + return nil + } + out := new(ServerNetworkingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerNetworkingSpec) DeepCopyInto(out *ServerNetworkingSpec) { + *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 ServerNetworkingSpec. +func (in *ServerNetworkingSpec) DeepCopy() *ServerNetworkingSpec { + if in == nil { + return nil + } + out := new(ServerNetworkingSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerNetworkingStatus) DeepCopyInto(out *ServerNetworkingStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerNetworkingStatus. +func (in *ServerNetworkingStatus) DeepCopy() *ServerNetworkingStatus { + if in == nil { + return nil + } + out := new(ServerNetworkingStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerRebootTask) DeepCopyInto(out *ServerRebootTask) { + *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 ServerRebootTask. +func (in *ServerRebootTask) DeepCopy() *ServerRebootTask { + if in == nil { + return nil + } + out := new(ServerRebootTask) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerRebootTask) 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 *ServerRebootTaskInitParameters) DeepCopyInto(out *ServerRebootTaskInitParameters) { + *out = *in + if in.Keepers != nil { + in, out := &in.Keepers, &out.Keepers + *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.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 ServerRebootTaskInitParameters. +func (in *ServerRebootTaskInitParameters) DeepCopy() *ServerRebootTaskInitParameters { + if in == nil { + return nil + } + out := new(ServerRebootTaskInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerRebootTaskList) DeepCopyInto(out *ServerRebootTaskList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServerRebootTask, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerRebootTaskList. +func (in *ServerRebootTaskList) DeepCopy() *ServerRebootTaskList { + if in == nil { + return nil + } + out := new(ServerRebootTaskList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerRebootTaskList) 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 *ServerRebootTaskObservation) DeepCopyInto(out *ServerRebootTaskObservation) { + *out = *in + if in.Comment != nil { + in, out := &in.Comment, &out.Comment + *out = new(string) + **out = **in + } + if in.DoneDate != nil { + in, out := &in.DoneDate, &out.DoneDate + *out = new(string) + **out = **in + } + if in.Function != nil { + in, out := &in.Function, &out.Function + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Keepers != nil { + in, out := &in.Keepers, &out.Keepers + *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.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.StartDate != nil { + in, out := &in.StartDate, &out.StartDate + *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 ServerRebootTaskObservation. +func (in *ServerRebootTaskObservation) DeepCopy() *ServerRebootTaskObservation { + if in == nil { + return nil + } + out := new(ServerRebootTaskObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerRebootTaskParameters) DeepCopyInto(out *ServerRebootTaskParameters) { + *out = *in + if in.Keepers != nil { + in, out := &in.Keepers, &out.Keepers + *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.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 ServerRebootTaskParameters. +func (in *ServerRebootTaskParameters) DeepCopy() *ServerRebootTaskParameters { + if in == nil { + return nil + } + out := new(ServerRebootTaskParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerRebootTaskSpec) DeepCopyInto(out *ServerRebootTaskSpec) { + *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 ServerRebootTaskSpec. +func (in *ServerRebootTaskSpec) DeepCopy() *ServerRebootTaskSpec { + if in == nil { + return nil + } + out := new(ServerRebootTaskSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerRebootTaskStatus) DeepCopyInto(out *ServerRebootTaskStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerRebootTaskStatus. +func (in *ServerRebootTaskStatus) DeepCopy() *ServerRebootTaskStatus { + if in == nil { + return nil + } + out := new(ServerRebootTaskStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerUpdate) DeepCopyInto(out *ServerUpdate) { + *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 ServerUpdate. +func (in *ServerUpdate) DeepCopy() *ServerUpdate { + if in == nil { + return nil + } + out := new(ServerUpdate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerUpdate) 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 *ServerUpdateInitParameters) DeepCopyInto(out *ServerUpdateInitParameters) { + *out = *in + if in.BootID != nil { + in, out := &in.BootID, &out.BootID + *out = new(float64) + **out = **in + } + if in.Monitoring != nil { + in, out := &in.Monitoring, &out.Monitoring + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerUpdateInitParameters. +func (in *ServerUpdateInitParameters) DeepCopy() *ServerUpdateInitParameters { + if in == nil { + return nil + } + out := new(ServerUpdateInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerUpdateList) DeepCopyInto(out *ServerUpdateList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServerUpdate, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerUpdateList. +func (in *ServerUpdateList) DeepCopy() *ServerUpdateList { + if in == nil { + return nil + } + out := new(ServerUpdateList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServerUpdateList) 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 *ServerUpdateObservation) DeepCopyInto(out *ServerUpdateObservation) { + *out = *in + if in.BootID != nil { + in, out := &in.BootID, &out.BootID + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Monitoring != nil { + in, out := &in.Monitoring, &out.Monitoring + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerUpdateObservation. +func (in *ServerUpdateObservation) DeepCopy() *ServerUpdateObservation { + if in == nil { + return nil + } + out := new(ServerUpdateObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerUpdateParameters) DeepCopyInto(out *ServerUpdateParameters) { + *out = *in + if in.BootID != nil { + in, out := &in.BootID, &out.BootID + *out = new(float64) + **out = **in + } + if in.Monitoring != nil { + in, out := &in.Monitoring, &out.Monitoring + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.State != nil { + in, out := &in.State, &out.State + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerUpdateParameters. +func (in *ServerUpdateParameters) DeepCopy() *ServerUpdateParameters { + if in == nil { + return nil + } + out := new(ServerUpdateParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerUpdateSpec) DeepCopyInto(out *ServerUpdateSpec) { + *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 ServerUpdateSpec. +func (in *ServerUpdateSpec) DeepCopy() *ServerUpdateSpec { + if in == nil { + return nil + } + out := new(ServerUpdateSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerUpdateStatus) DeepCopyInto(out *ServerUpdateStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerUpdateStatus. +func (in *ServerUpdateStatus) DeepCopy() *ServerUpdateStatus { + if in == nil { + return nil + } + out := new(ServerUpdateStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dedicatedserver/v1alpha1/zz_generated.managed.go b/apis/dedicatedserver/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..9b1b0a4 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_generated.managed.go @@ -0,0 +1,548 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this InstallationTemplate. +func (mg *InstallationTemplate) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstallationTemplate. +func (mg *InstallationTemplate) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstallationTemplate. +func (mg *InstallationTemplate) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstallationTemplate. +func (mg *InstallationTemplate) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstallationTemplate. +func (mg *InstallationTemplate) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstallationTemplate. +func (mg *InstallationTemplate) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstallationTemplate. +func (mg *InstallationTemplate) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstallationTemplate. +func (mg *InstallationTemplate) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstallationTemplate. +func (mg *InstallationTemplate) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstallationTemplate. +func (mg *InstallationTemplate) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstallationTemplate. +func (mg *InstallationTemplate) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstallationTemplate. +func (mg *InstallationTemplate) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstallationTemplatePartitionScheme. +func (mg *InstallationTemplatePartitionScheme) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstallationTemplatePartitionSchemeHardwareRaid. +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstallationTemplatePartitionSchemePartition. +func (mg *InstallationTemplatePartitionSchemePartition) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this IpxeScript. +func (mg *IpxeScript) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this IpxeScript. +func (mg *IpxeScript) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this IpxeScript. +func (mg *IpxeScript) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this IpxeScript. +func (mg *IpxeScript) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this IpxeScript. +func (mg *IpxeScript) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this IpxeScript. +func (mg *IpxeScript) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this IpxeScript. +func (mg *IpxeScript) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this IpxeScript. +func (mg *IpxeScript) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this IpxeScript. +func (mg *IpxeScript) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this IpxeScript. +func (mg *IpxeScript) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this IpxeScript. +func (mg *IpxeScript) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this IpxeScript. +func (mg *IpxeScript) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ServerInstallTask. +func (mg *ServerInstallTask) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ServerInstallTask. +func (mg *ServerInstallTask) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ServerInstallTask. +func (mg *ServerInstallTask) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ServerInstallTask. +func (mg *ServerInstallTask) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ServerInstallTask. +func (mg *ServerInstallTask) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ServerInstallTask. +func (mg *ServerInstallTask) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ServerInstallTask. +func (mg *ServerInstallTask) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ServerInstallTask. +func (mg *ServerInstallTask) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ServerInstallTask. +func (mg *ServerInstallTask) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ServerInstallTask. +func (mg *ServerInstallTask) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ServerInstallTask. +func (mg *ServerInstallTask) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ServerInstallTask. +func (mg *ServerInstallTask) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ServerNetworking. +func (mg *ServerNetworking) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ServerNetworking. +func (mg *ServerNetworking) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ServerNetworking. +func (mg *ServerNetworking) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ServerNetworking. +func (mg *ServerNetworking) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ServerNetworking. +func (mg *ServerNetworking) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ServerNetworking. +func (mg *ServerNetworking) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ServerNetworking. +func (mg *ServerNetworking) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ServerNetworking. +func (mg *ServerNetworking) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ServerNetworking. +func (mg *ServerNetworking) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ServerNetworking. +func (mg *ServerNetworking) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ServerNetworking. +func (mg *ServerNetworking) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ServerNetworking. +func (mg *ServerNetworking) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ServerRebootTask. +func (mg *ServerRebootTask) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ServerRebootTask. +func (mg *ServerRebootTask) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ServerRebootTask. +func (mg *ServerRebootTask) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ServerRebootTask. +func (mg *ServerRebootTask) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ServerRebootTask. +func (mg *ServerRebootTask) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ServerRebootTask. +func (mg *ServerRebootTask) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ServerRebootTask. +func (mg *ServerRebootTask) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ServerRebootTask. +func (mg *ServerRebootTask) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ServerRebootTask. +func (mg *ServerRebootTask) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ServerRebootTask. +func (mg *ServerRebootTask) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ServerRebootTask. +func (mg *ServerRebootTask) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ServerRebootTask. +func (mg *ServerRebootTask) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ServerUpdate. +func (mg *ServerUpdate) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ServerUpdate. +func (mg *ServerUpdate) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ServerUpdate. +func (mg *ServerUpdate) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ServerUpdate. +func (mg *ServerUpdate) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ServerUpdate. +func (mg *ServerUpdate) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ServerUpdate. +func (mg *ServerUpdate) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ServerUpdate. +func (mg *ServerUpdate) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ServerUpdate. +func (mg *ServerUpdate) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ServerUpdate. +func (mg *ServerUpdate) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ServerUpdate. +func (mg *ServerUpdate) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ServerUpdate. +func (mg *ServerUpdate) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ServerUpdate. +func (mg *ServerUpdate) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dedicatedserver/v1alpha1/zz_generated.managedlist.go b/apis/dedicatedserver/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..88a9cc8 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,89 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this InstallationTemplateList. +func (l *InstallationTemplateList) 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 InstallationTemplatePartitionSchemeHardwareRaidList. +func (l *InstallationTemplatePartitionSchemeHardwareRaidList) 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 InstallationTemplatePartitionSchemeList. +func (l *InstallationTemplatePartitionSchemeList) 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 InstallationTemplatePartitionSchemePartitionList. +func (l *InstallationTemplatePartitionSchemePartitionList) 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 IpxeScriptList. +func (l *IpxeScriptList) 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 ServerInstallTaskList. +func (l *ServerInstallTaskList) 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 ServerNetworkingList. +func (l *ServerNetworkingList) 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 ServerRebootTaskList. +func (l *ServerRebootTaskList) 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 ServerUpdateList. +func (l *ServerUpdateList) 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/dedicatedserver/v1alpha1/zz_generated_terraformed.go b/apis/dedicatedserver/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..f654885 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,774 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this ServerInstallTask +func (mg *ServerInstallTask) GetTerraformResourceType() string { + return "ovh_dedicated_server_install_task" +} + +// GetConnectionDetailsMapping for this ServerInstallTask +func (tr *ServerInstallTask) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServerInstallTask +func (tr *ServerInstallTask) 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 ServerInstallTask +func (tr *ServerInstallTask) 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 ServerInstallTask +func (tr *ServerInstallTask) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServerInstallTask +func (tr *ServerInstallTask) 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 ServerInstallTask +func (tr *ServerInstallTask) 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 ServerInstallTask +func (tr *ServerInstallTask) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this ServerInstallTask using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServerInstallTask) LateInitialize(attrs []byte) (bool, error) { + params := &ServerInstallTaskParameters{} + 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 *ServerInstallTask) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServerNetworking +func (mg *ServerNetworking) GetTerraformResourceType() string { + return "ovh_dedicated_server_networking" +} + +// GetConnectionDetailsMapping for this ServerNetworking +func (tr *ServerNetworking) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServerNetworking +func (tr *ServerNetworking) 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 ServerNetworking +func (tr *ServerNetworking) 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 ServerNetworking +func (tr *ServerNetworking) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServerNetworking +func (tr *ServerNetworking) 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 ServerNetworking +func (tr *ServerNetworking) 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 ServerNetworking +func (tr *ServerNetworking) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this ServerNetworking using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServerNetworking) LateInitialize(attrs []byte) (bool, error) { + params := &ServerNetworkingParameters{} + 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 *ServerNetworking) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServerRebootTask +func (mg *ServerRebootTask) GetTerraformResourceType() string { + return "ovh_dedicated_server_reboot_task" +} + +// GetConnectionDetailsMapping for this ServerRebootTask +func (tr *ServerRebootTask) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServerRebootTask +func (tr *ServerRebootTask) 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 ServerRebootTask +func (tr *ServerRebootTask) 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 ServerRebootTask +func (tr *ServerRebootTask) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServerRebootTask +func (tr *ServerRebootTask) 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 ServerRebootTask +func (tr *ServerRebootTask) 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 ServerRebootTask +func (tr *ServerRebootTask) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this ServerRebootTask using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServerRebootTask) LateInitialize(attrs []byte) (bool, error) { + params := &ServerRebootTaskParameters{} + 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 *ServerRebootTask) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServerUpdate +func (mg *ServerUpdate) GetTerraformResourceType() string { + return "ovh_dedicated_server_update" +} + +// GetConnectionDetailsMapping for this ServerUpdate +func (tr *ServerUpdate) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServerUpdate +func (tr *ServerUpdate) 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 ServerUpdate +func (tr *ServerUpdate) 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 ServerUpdate +func (tr *ServerUpdate) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServerUpdate +func (tr *ServerUpdate) 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 ServerUpdate +func (tr *ServerUpdate) 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 ServerUpdate +func (tr *ServerUpdate) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this ServerUpdate using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServerUpdate) LateInitialize(attrs []byte) (bool, error) { + params := &ServerUpdateParameters{} + 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 *ServerUpdate) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstallationTemplate +func (mg *InstallationTemplate) GetTerraformResourceType() string { + return "ovh_me_installation_template" +} + +// GetConnectionDetailsMapping for this InstallationTemplate +func (tr *InstallationTemplate) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this InstallationTemplate +func (tr *InstallationTemplate) 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 InstallationTemplate +func (tr *InstallationTemplate) 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 InstallationTemplate +func (tr *InstallationTemplate) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstallationTemplate +func (tr *InstallationTemplate) 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 InstallationTemplate +func (tr *InstallationTemplate) 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 InstallationTemplate +func (tr *InstallationTemplate) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this InstallationTemplate using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstallationTemplate) LateInitialize(attrs []byte) (bool, error) { + params := &InstallationTemplateParameters{} + 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 *InstallationTemplate) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstallationTemplatePartitionScheme +func (mg *InstallationTemplatePartitionScheme) GetTerraformResourceType() string { + return "ovh_me_installation_template_partition_scheme" +} + +// GetConnectionDetailsMapping for this InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) 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 InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) 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 InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) 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 InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) 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 InstallationTemplatePartitionScheme +func (tr *InstallationTemplatePartitionScheme) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this InstallationTemplatePartitionScheme using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstallationTemplatePartitionScheme) LateInitialize(attrs []byte) (bool, error) { + params := &InstallationTemplatePartitionSchemeParameters{} + 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 *InstallationTemplatePartitionScheme) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstallationTemplatePartitionSchemeHardwareRaid +func (mg *InstallationTemplatePartitionSchemeHardwareRaid) GetTerraformResourceType() string { + return "ovh_me_installation_template_partition_scheme_hardware_raid" +} + +// GetConnectionDetailsMapping for this InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) 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 InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) 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 InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) 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 InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) 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 InstallationTemplatePartitionSchemeHardwareRaid +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this InstallationTemplatePartitionSchemeHardwareRaid using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstallationTemplatePartitionSchemeHardwareRaid) LateInitialize(attrs []byte) (bool, error) { + params := &InstallationTemplatePartitionSchemeHardwareRaidParameters{} + 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 *InstallationTemplatePartitionSchemeHardwareRaid) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstallationTemplatePartitionSchemePartition +func (mg *InstallationTemplatePartitionSchemePartition) GetTerraformResourceType() string { + return "ovh_me_installation_template_partition_scheme_partition" +} + +// GetConnectionDetailsMapping for this InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) 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 InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) 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 InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) 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 InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) 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 InstallationTemplatePartitionSchemePartition +func (tr *InstallationTemplatePartitionSchemePartition) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this InstallationTemplatePartitionSchemePartition using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstallationTemplatePartitionSchemePartition) LateInitialize(attrs []byte) (bool, error) { + params := &InstallationTemplatePartitionSchemePartitionParameters{} + 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 *InstallationTemplatePartitionSchemePartition) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IpxeScript +func (mg *IpxeScript) GetTerraformResourceType() string { + return "ovh_me_ipxe_script" +} + +// GetConnectionDetailsMapping for this IpxeScript +func (tr *IpxeScript) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IpxeScript +func (tr *IpxeScript) 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 IpxeScript +func (tr *IpxeScript) 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 IpxeScript +func (tr *IpxeScript) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IpxeScript +func (tr *IpxeScript) 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 IpxeScript +func (tr *IpxeScript) 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 IpxeScript +func (tr *IpxeScript) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this IpxeScript using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IpxeScript) LateInitialize(attrs []byte) (bool, error) { + params := &IpxeScriptParameters{} + 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 *IpxeScript) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dedicatedserver/v1alpha1/zz_groupversion_info.go b/apis/dedicatedserver/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..c428c8b --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dedicatedserver.ovh.edixos.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dedicatedserver.ovh.edixos.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go new file mode 100755 index 0000000..90f2931 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplate_types.go @@ -0,0 +1,260 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type CustomizationInitParameters struct { + + // Template change log details + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + Rating *float64 `json:"rating,omitempty" tf:"rating,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + UseDistributionKernel *bool `json:"useDistributionKernel,omitempty" tf:"use_distribution_kernel,omitempty"` +} + +type CustomizationObservation struct { + + // Template change log details + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + Rating *float64 `json:"rating,omitempty" tf:"rating,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + UseDistributionKernel *bool `json:"useDistributionKernel,omitempty" tf:"use_distribution_kernel,omitempty"` +} + +type CustomizationParameters struct { + + // Template change log details + // +kubebuilder:validation:Optional + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + // +kubebuilder:validation:Optional + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + // +kubebuilder:validation:Optional + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + // +kubebuilder:validation:Optional + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + // +kubebuilder:validation:Optional + Rating *float64 `json:"rating,omitempty" tf:"rating,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + // +kubebuilder:validation:Optional + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + // +kubebuilder:validation:Optional + UseDistributionKernel *bool `json:"useDistributionKernel,omitempty" tf:"use_distribution_kernel,omitempty"` +} + +type InstallationTemplateInitParameters struct { + + // OVH template name yours will be based on, choose one among the list given by compatibleTemplates function + BaseTemplateName *string `json:"baseTemplateName,omitempty" tf:"base_template_name,omitempty"` + + Customization []CustomizationInitParameters `json:"customization,omitempty" tf:"customization,omitempty"` + + // The default language of this template + DefaultLanguage *string `json:"defaultLanguage,omitempty" tf:"default_language,omitempty"` + + // Remove default partition schemes at creation + RemoveDefaultPartitionSchemes *bool `json:"removeDefaultPartitionSchemes,omitempty" tf:"remove_default_partition_schemes,omitempty"` + + // This template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplateObservation struct { + + // List of all language available for this template + AvailableLanguages []*string `json:"availableLanguages,omitempty" tf:"available_languages,omitempty"` + + // OVH template name yours will be based on, choose one among the list given by compatibleTemplates function + BaseTemplateName *string `json:"baseTemplateName,omitempty" tf:"base_template_name,omitempty"` + + // This distribution is new and, although tested and functional, may still display odd behaviour + Beta *bool `json:"beta,omitempty" tf:"beta,omitempty"` + + // This template bit format (32 or 64) + BitFormat *float64 `json:"bitFormat,omitempty" tf:"bit_format,omitempty"` + + // Category of this template (informative only). (basic, customer, hosting, other, readyToUse, virtualisation) + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + Customization []CustomizationObservation `json:"customization,omitempty" tf:"customization,omitempty"` + + // The default language of this template + DefaultLanguage *string `json:"defaultLanguage,omitempty" tf:"default_language,omitempty"` + + // is this distribution deprecated + Deprecated *bool `json:"deprecated,omitempty" tf:"deprecated,omitempty"` + + // information about this template + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // the distribution this template is based on + Distribution *string `json:"distribution,omitempty" tf:"distribution,omitempty"` + + // this template family type (bsd,linux,solaris,windows) + Family *string `json:"family,omitempty" tf:"family,omitempty"` + + // Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs) + Filesystems []*string `json:"filesystems,omitempty" tf:"filesystems,omitempty"` + + // This distribution supports hardware raid configuration through the OVH API + HardRaidConfiguration *bool `json:"hardRaidConfiguration,omitempty" tf:"hard_raid_configuration,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Date of last modification of the base image + LastModification *string `json:"lastModification,omitempty" tf:"last_modification,omitempty"` + + // This distribution supports Logical Volumes (Linux LVM) + LvmReady *bool `json:"lvmReady,omitempty" tf:"lvm_ready,omitempty"` + + // Remove default partition schemes at creation + RemoveDefaultPartitionSchemes *bool `json:"removeDefaultPartitionSchemes,omitempty" tf:"remove_default_partition_schemes,omitempty"` + + // This distribution supports installation using the distribution's native kernel instead of the recommended OVH kernel + SupportsDistributionKernel *bool `json:"supportsDistributionKernel,omitempty" tf:"supports_distribution_kernel,omitempty"` + + // This distribution supports RTM software + SupportsRtm *bool `json:"supportsRtm,omitempty" tf:"supports_rtm,omitempty"` + + // This distribution supports the microsoft SQL server + SupportsSQLServer *bool `json:"supportsSqlServer,omitempty" tf:"supports_sql_server,omitempty"` + + // This template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplateParameters struct { + + // OVH template name yours will be based on, choose one among the list given by compatibleTemplates function + // +kubebuilder:validation:Optional + BaseTemplateName *string `json:"baseTemplateName,omitempty" tf:"base_template_name,omitempty"` + + // +kubebuilder:validation:Optional + Customization []CustomizationParameters `json:"customization,omitempty" tf:"customization,omitempty"` + + // The default language of this template + // +kubebuilder:validation:Optional + DefaultLanguage *string `json:"defaultLanguage,omitempty" tf:"default_language,omitempty"` + + // Remove default partition schemes at creation + // +kubebuilder:validation:Optional + RemoveDefaultPartitionSchemes *bool `json:"removeDefaultPartitionSchemes,omitempty" tf:"remove_default_partition_schemes,omitempty"` + + // This template name + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +// InstallationTemplateSpec defines the desired state of InstallationTemplate +type InstallationTemplateSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstallationTemplateParameters `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 InstallationTemplateInitParameters `json:"initProvider,omitempty"` +} + +// InstallationTemplateStatus defines the observed state of InstallationTemplate. +type InstallationTemplateStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstallationTemplateObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplate is the Schema for the InstallationTemplates API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type InstallationTemplate 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.baseTemplateName) || (has(self.initProvider) && has(self.initProvider.baseTemplateName))",message="spec.forProvider.baseTemplateName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.defaultLanguage) || (has(self.initProvider) && has(self.initProvider.defaultLanguage))",message="spec.forProvider.defaultLanguage is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + Spec InstallationTemplateSpec `json:"spec"` + Status InstallationTemplateStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplateList contains a list of InstallationTemplates +type InstallationTemplateList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstallationTemplate `json:"items"` +} + +// Repository type metadata. +var ( + InstallationTemplate_Kind = "InstallationTemplate" + InstallationTemplate_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstallationTemplate_Kind}.String() + InstallationTemplate_KindAPIVersion = InstallationTemplate_Kind + "." + CRDGroupVersion.String() + InstallationTemplate_GroupVersionKind = CRDGroupVersion.WithKind(InstallationTemplate_Kind) +) + +func init() { + SchemeBuilder.Register(&InstallationTemplate{}, &InstallationTemplateList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go new file mode 100755 index 0000000..ec9246f --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionscheme_types.go @@ -0,0 +1,110 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type InstallationTemplatePartitionSchemeInitParameters struct { + + // 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) + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // This template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplatePartitionSchemeObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // 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) + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // This template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplatePartitionSchemeParameters struct { + + // 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) + // +kubebuilder:validation:Optional + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // This template name + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +// InstallationTemplatePartitionSchemeSpec defines the desired state of InstallationTemplatePartitionScheme +type InstallationTemplatePartitionSchemeSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstallationTemplatePartitionSchemeParameters `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 InstallationTemplatePartitionSchemeInitParameters `json:"initProvider,omitempty"` +} + +// InstallationTemplatePartitionSchemeStatus defines the observed state of InstallationTemplatePartitionScheme. +type InstallationTemplatePartitionSchemeStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstallationTemplatePartitionSchemeObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionScheme is the Schema for the InstallationTemplatePartitionSchemes API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type InstallationTemplatePartitionScheme 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.priority) || (has(self.initProvider) && has(self.initProvider.priority))",message="spec.forProvider.priority is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + Spec InstallationTemplatePartitionSchemeSpec `json:"spec"` + Status InstallationTemplatePartitionSchemeStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionSchemeList contains a list of InstallationTemplatePartitionSchemes +type InstallationTemplatePartitionSchemeList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstallationTemplatePartitionScheme `json:"items"` +} + +// Repository type metadata. +var ( + InstallationTemplatePartitionScheme_Kind = "InstallationTemplatePartitionScheme" + InstallationTemplatePartitionScheme_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstallationTemplatePartitionScheme_Kind}.String() + InstallationTemplatePartitionScheme_KindAPIVersion = InstallationTemplatePartitionScheme_Kind + "." + CRDGroupVersion.String() + InstallationTemplatePartitionScheme_GroupVersionKind = CRDGroupVersion.WithKind(InstallationTemplatePartitionScheme_Kind) +) + +func init() { + SchemeBuilder.Register(&InstallationTemplatePartitionScheme{}, &InstallationTemplatePartitionSchemeList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go new file mode 100755 index 0000000..1f28afd --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemehardwareraid_types.go @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type InstallationTemplatePartitionSchemeHardwareRaidInitParameters struct { + + // 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 + Disks []*string `json:"disks,omitempty" tf:"disks,omitempty"` + + // RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60) + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // name of this partitioning scheme + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // Specifies the creation order of the hardware RAID + Step *float64 `json:"step,omitempty" tf:"step,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplatePartitionSchemeHardwareRaidObservation struct { + + // 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 + Disks []*string `json:"disks,omitempty" tf:"disks,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60) + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // name of this partitioning scheme + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // Specifies the creation order of the hardware RAID + Step *float64 `json:"step,omitempty" tf:"step,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type InstallationTemplatePartitionSchemeHardwareRaidParameters struct { + + // 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 + // +kubebuilder:validation:Optional + Disks []*string `json:"disks,omitempty" tf:"disks,omitempty"` + + // RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, raid60) + // +kubebuilder:validation:Optional + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // name of this partitioning scheme + // +kubebuilder:validation:Optional + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // Specifies the creation order of the hardware RAID + // +kubebuilder:validation:Optional + Step *float64 `json:"step,omitempty" tf:"step,omitempty"` + + // Template name + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +// InstallationTemplatePartitionSchemeHardwareRaidSpec defines the desired state of InstallationTemplatePartitionSchemeHardwareRaid +type InstallationTemplatePartitionSchemeHardwareRaidSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstallationTemplatePartitionSchemeHardwareRaidParameters `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 InstallationTemplatePartitionSchemeHardwareRaidInitParameters `json:"initProvider,omitempty"` +} + +// InstallationTemplatePartitionSchemeHardwareRaidStatus defines the observed state of InstallationTemplatePartitionSchemeHardwareRaid. +type InstallationTemplatePartitionSchemeHardwareRaidStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstallationTemplatePartitionSchemeHardwareRaidObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionSchemeHardwareRaid is the Schema for the InstallationTemplatePartitionSchemeHardwareRaids API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type InstallationTemplatePartitionSchemeHardwareRaid 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.disks) || (has(self.initProvider) && has(self.initProvider.disks))",message="spec.forProvider.disks is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mode) || (has(self.initProvider) && has(self.initProvider.mode))",message="spec.forProvider.mode is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.schemeName) || (has(self.initProvider) && has(self.initProvider.schemeName))",message="spec.forProvider.schemeName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.step) || (has(self.initProvider) && has(self.initProvider.step))",message="spec.forProvider.step is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + Spec InstallationTemplatePartitionSchemeHardwareRaidSpec `json:"spec"` + Status InstallationTemplatePartitionSchemeHardwareRaidStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionSchemeHardwareRaidList contains a list of InstallationTemplatePartitionSchemeHardwareRaids +type InstallationTemplatePartitionSchemeHardwareRaidList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstallationTemplatePartitionSchemeHardwareRaid `json:"items"` +} + +// Repository type metadata. +var ( + InstallationTemplatePartitionSchemeHardwareRaid_Kind = "InstallationTemplatePartitionSchemeHardwareRaid" + InstallationTemplatePartitionSchemeHardwareRaid_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstallationTemplatePartitionSchemeHardwareRaid_Kind}.String() + InstallationTemplatePartitionSchemeHardwareRaid_KindAPIVersion = InstallationTemplatePartitionSchemeHardwareRaid_Kind + "." + CRDGroupVersion.String() + InstallationTemplatePartitionSchemeHardwareRaid_GroupVersionKind = CRDGroupVersion.WithKind(InstallationTemplatePartitionSchemeHardwareRaid_Kind) +) + +func init() { + SchemeBuilder.Register(&InstallationTemplatePartitionSchemeHardwareRaid{}, &InstallationTemplatePartitionSchemeHardwareRaidList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go new file mode 100755 index 0000000..91bf3d0 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_installationtemplatepartitionschemepartition_types.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type InstallationTemplatePartitionSchemePartitionInitParameters struct { + + // Partition filesystem + Filesystem *string `json:"filesystem,omitempty" tf:"filesystem,omitempty"` + + // partition mount point + Mountpoint *string `json:"mountpoint,omitempty" tf:"mountpoint,omitempty"` + + // step or order. specifies the creation order of the partition on the disk + Order *float64 `json:"order,omitempty" tf:"order,omitempty"` + + // raid partition type + Raid *string `json:"raid,omitempty" tf:"raid,omitempty"` + + // name of this partitioning scheme + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // size of partition in MB, 0 => rest of the space + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // partition type + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The volume name needed for proxmox distribution + VolumeName *string `json:"volumeName,omitempty" tf:"volume_name,omitempty"` +} + +type InstallationTemplatePartitionSchemePartitionObservation struct { + + // Partition filesystem + Filesystem *string `json:"filesystem,omitempty" tf:"filesystem,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // partition mount point + Mountpoint *string `json:"mountpoint,omitempty" tf:"mountpoint,omitempty"` + + // step or order. specifies the creation order of the partition on the disk + Order *float64 `json:"order,omitempty" tf:"order,omitempty"` + + // raid partition type + Raid *string `json:"raid,omitempty" tf:"raid,omitempty"` + + // name of this partitioning scheme + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // size of partition in MB, 0 => rest of the space + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // partition type + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The volume name needed for proxmox distribution + VolumeName *string `json:"volumeName,omitempty" tf:"volume_name,omitempty"` +} + +type InstallationTemplatePartitionSchemePartitionParameters struct { + + // Partition filesystem + // +kubebuilder:validation:Optional + Filesystem *string `json:"filesystem,omitempty" tf:"filesystem,omitempty"` + + // partition mount point + // +kubebuilder:validation:Optional + Mountpoint *string `json:"mountpoint,omitempty" tf:"mountpoint,omitempty"` + + // step or order. specifies the creation order of the partition on the disk + // +kubebuilder:validation:Optional + Order *float64 `json:"order,omitempty" tf:"order,omitempty"` + + // raid partition type + // +kubebuilder:validation:Optional + Raid *string `json:"raid,omitempty" tf:"raid,omitempty"` + + // name of this partitioning scheme + // +kubebuilder:validation:Optional + SchemeName *string `json:"schemeName,omitempty" tf:"scheme_name,omitempty"` + + // size of partition in MB, 0 => rest of the space + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Template name + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // partition type + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The volume name needed for proxmox distribution + // +kubebuilder:validation:Optional + VolumeName *string `json:"volumeName,omitempty" tf:"volume_name,omitempty"` +} + +// InstallationTemplatePartitionSchemePartitionSpec defines the desired state of InstallationTemplatePartitionSchemePartition +type InstallationTemplatePartitionSchemePartitionSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstallationTemplatePartitionSchemePartitionParameters `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 InstallationTemplatePartitionSchemePartitionInitParameters `json:"initProvider,omitempty"` +} + +// InstallationTemplatePartitionSchemePartitionStatus defines the observed state of InstallationTemplatePartitionSchemePartition. +type InstallationTemplatePartitionSchemePartitionStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstallationTemplatePartitionSchemePartitionObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionSchemePartition is the Schema for the InstallationTemplatePartitionSchemePartitions API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type InstallationTemplatePartitionSchemePartition 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.filesystem) || (has(self.initProvider) && has(self.initProvider.filesystem))",message="spec.forProvider.filesystem is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mountpoint) || (has(self.initProvider) && has(self.initProvider.mountpoint))",message="spec.forProvider.mountpoint is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.order) || (has(self.initProvider) && has(self.initProvider.order))",message="spec.forProvider.order is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.schemeName) || (has(self.initProvider) && has(self.initProvider.schemeName))",message="spec.forProvider.schemeName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.size) || (has(self.initProvider) && has(self.initProvider.size))",message="spec.forProvider.size is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter" + Spec InstallationTemplatePartitionSchemePartitionSpec `json:"spec"` + Status InstallationTemplatePartitionSchemePartitionStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstallationTemplatePartitionSchemePartitionList contains a list of InstallationTemplatePartitionSchemePartitions +type InstallationTemplatePartitionSchemePartitionList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstallationTemplatePartitionSchemePartition `json:"items"` +} + +// Repository type metadata. +var ( + InstallationTemplatePartitionSchemePartition_Kind = "InstallationTemplatePartitionSchemePartition" + InstallationTemplatePartitionSchemePartition_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstallationTemplatePartitionSchemePartition_Kind}.String() + InstallationTemplatePartitionSchemePartition_KindAPIVersion = InstallationTemplatePartitionSchemePartition_Kind + "." + CRDGroupVersion.String() + InstallationTemplatePartitionSchemePartition_GroupVersionKind = CRDGroupVersion.WithKind(InstallationTemplatePartitionSchemePartition_Kind) +) + +func init() { + SchemeBuilder.Register(&InstallationTemplatePartitionSchemePartition{}, &InstallationTemplatePartitionSchemePartitionList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_ipxescript_types.go b/apis/dedicatedserver/v1alpha1/zz_ipxescript_types.go new file mode 100755 index 0000000..8819342 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_ipxescript_types.go @@ -0,0 +1,110 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type IpxeScriptInitParameters struct { + + // For documentation purpose only. This attribute is not passed to the OVH API as it cannot be retrieved back. Instead a fake description ('$name auto description') is passed at creation time. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Content of your IPXE script + Script *string `json:"script,omitempty" tf:"script,omitempty"` +} + +type IpxeScriptObservation struct { + + // For documentation purpose only. This attribute is not passed to the OVH API as it cannot be retrieved back. Instead a fake description ('$name auto description') is passed at creation time. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Content of your IPXE script + Script *string `json:"script,omitempty" tf:"script,omitempty"` +} + +type IpxeScriptParameters struct { + + // For documentation purpose only. This attribute is not passed to the OVH API as it cannot be retrieved back. Instead a fake description ('$name auto description') is passed at creation time. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Content of your IPXE script + // +kubebuilder:validation:Optional + Script *string `json:"script,omitempty" tf:"script,omitempty"` +} + +// IpxeScriptSpec defines the desired state of IpxeScript +type IpxeScriptSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IpxeScriptParameters `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 IpxeScriptInitParameters `json:"initProvider,omitempty"` +} + +// IpxeScriptStatus defines the observed state of IpxeScript. +type IpxeScriptStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider IpxeScriptObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpxeScript is the Schema for the IpxeScripts API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type IpxeScript 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.script) || (has(self.initProvider) && has(self.initProvider.script))",message="spec.forProvider.script is a required parameter" + Spec IpxeScriptSpec `json:"spec"` + Status IpxeScriptStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpxeScriptList contains a list of IpxeScripts +type IpxeScriptList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IpxeScript `json:"items"` +} + +// Repository type metadata. +var ( + IpxeScript_Kind = "IpxeScript" + IpxeScript_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IpxeScript_Kind}.String() + IpxeScript_KindAPIVersion = IpxeScript_Kind + "." + CRDGroupVersion.String() + IpxeScript_GroupVersionKind = CRDGroupVersion.WithKind(IpxeScript_Kind) +) + +func init() { + SchemeBuilder.Register(&IpxeScript{}, &IpxeScriptList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go b/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go new file mode 100755 index 0000000..6174c0a --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_serverinstalltask_types.go @@ -0,0 +1,284 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type DetailsInitParameters struct { + + // Template change log details + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + DiskGroupID *float64 `json:"diskGroupId,omitempty" tf:"disk_group_id,omitempty"` + + InstallRtm *bool `json:"installRtm,omitempty" tf:"install_rtm,omitempty"` + + InstallSQLServer *bool `json:"installSqlServer,omitempty" tf:"install_sql_server,omitempty"` + + // language + Language *string `json:"language,omitempty" tf:"language,omitempty"` + + NoRaid *bool `json:"noRaid,omitempty" tf:"no_raid,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + ResetHwRaid *bool `json:"resetHwRaid,omitempty" tf:"reset_hw_raid,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + SoftRaidDevices *float64 `json:"softRaidDevices,omitempty" tf:"soft_raid_devices,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + UseDistribKernel *bool `json:"useDistribKernel,omitempty" tf:"use_distrib_kernel,omitempty"` + + UseSpla *bool `json:"useSpla,omitempty" tf:"use_spla,omitempty"` +} + +type DetailsObservation struct { + + // Template change log details + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + DiskGroupID *float64 `json:"diskGroupId,omitempty" tf:"disk_group_id,omitempty"` + + InstallRtm *bool `json:"installRtm,omitempty" tf:"install_rtm,omitempty"` + + InstallSQLServer *bool `json:"installSqlServer,omitempty" tf:"install_sql_server,omitempty"` + + // language + Language *string `json:"language,omitempty" tf:"language,omitempty"` + + NoRaid *bool `json:"noRaid,omitempty" tf:"no_raid,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + ResetHwRaid *bool `json:"resetHwRaid,omitempty" tf:"reset_hw_raid,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + SoftRaidDevices *float64 `json:"softRaidDevices,omitempty" tf:"soft_raid_devices,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + UseDistribKernel *bool `json:"useDistribKernel,omitempty" tf:"use_distrib_kernel,omitempty"` + + UseSpla *bool `json:"useSpla,omitempty" tf:"use_spla,omitempty"` +} + +type DetailsParameters struct { + + // Template change log details + // +kubebuilder:validation:Optional + ChangeLog *string `json:"changeLog,omitempty" tf:"change_log,omitempty"` + + // Set up the server using the provided hostname instead of the default hostname + // +kubebuilder:validation:Optional + CustomHostname *string `json:"customHostname,omitempty" tf:"custom_hostname,omitempty"` + + // +kubebuilder:validation:Optional + DiskGroupID *float64 `json:"diskGroupId,omitempty" tf:"disk_group_id,omitempty"` + + // +kubebuilder:validation:Optional + InstallRtm *bool `json:"installRtm,omitempty" tf:"install_rtm,omitempty"` + + // +kubebuilder:validation:Optional + InstallSQLServer *bool `json:"installSqlServer,omitempty" tf:"install_sql_server,omitempty"` + + // language + // +kubebuilder:validation:Optional + Language *string `json:"language,omitempty" tf:"language,omitempty"` + + // +kubebuilder:validation:Optional + NoRaid *bool `json:"noRaid,omitempty" tf:"no_raid,omitempty"` + + // Indicate the URL where your postinstall customisation script is located + // +kubebuilder:validation:Optional + PostInstallationScriptLink *string `json:"postInstallationScriptLink,omitempty" tf:"post_installation_script_link,omitempty"` + + // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu' + // +kubebuilder:validation:Optional + PostInstallationScriptReturn *string `json:"postInstallationScriptReturn,omitempty" tf:"post_installation_script_return,omitempty"` + + // +kubebuilder:validation:Optional + ResetHwRaid *bool `json:"resetHwRaid,omitempty" tf:"reset_hw_raid,omitempty"` + + // Name of the ssh key that should be installed. Password login will be disabled + // +kubebuilder:validation:Optional + SSHKeyName *string `json:"sshKeyName,omitempty" tf:"ssh_key_name,omitempty"` + + // +kubebuilder:validation:Optional + SoftRaidDevices *float64 `json:"softRaidDevices,omitempty" tf:"soft_raid_devices,omitempty"` + + // Use the distribution's native kernel instead of the recommended OVH Kernel + // +kubebuilder:validation:Optional + UseDistribKernel *bool `json:"useDistribKernel,omitempty" tf:"use_distrib_kernel,omitempty"` + + // +kubebuilder:validation:Optional + UseSpla *bool `json:"useSpla,omitempty" tf:"use_spla,omitempty"` +} + +type ServerInstallTaskInitParameters struct { + + // If set, reboot the server on the specified boot id during destroy phase + BootidOnDestroy *float64 `json:"bootidOnDestroy,omitempty" tf:"bootid_on_destroy,omitempty"` + + Details []DetailsInitParameters `json:"details,omitempty" tf:"details,omitempty"` + + // Partition scheme name. + PartitionSchemeName *string `json:"partitionSchemeName,omitempty" tf:"partition_scheme_name,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type ServerInstallTaskObservation struct { + + // If set, reboot the server on the specified boot id during destroy phase + BootidOnDestroy *float64 `json:"bootidOnDestroy,omitempty" tf:"bootid_on_destroy,omitempty"` + + // Details of this task + Comment *string `json:"comment,omitempty" tf:"comment,omitempty"` + + Details []DetailsObservation `json:"details,omitempty" tf:"details,omitempty"` + + // Completion date + DoneDate *string `json:"doneDate,omitempty" tf:"done_date,omitempty"` + + // Function name + Function *string `json:"function,omitempty" tf:"function,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Last update + LastUpdate *string `json:"lastUpdate,omitempty" tf:"last_update,omitempty"` + + // Partition scheme name. + PartitionSchemeName *string `json:"partitionSchemeName,omitempty" tf:"partition_scheme_name,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Task Creation date + StartDate *string `json:"startDate,omitempty" tf:"start_date,omitempty"` + + // Task status + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Template name + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +type ServerInstallTaskParameters struct { + + // If set, reboot the server on the specified boot id during destroy phase + // +kubebuilder:validation:Optional + BootidOnDestroy *float64 `json:"bootidOnDestroy,omitempty" tf:"bootid_on_destroy,omitempty"` + + // +kubebuilder:validation:Optional + Details []DetailsParameters `json:"details,omitempty" tf:"details,omitempty"` + + // Partition scheme name. + // +kubebuilder:validation:Optional + PartitionSchemeName *string `json:"partitionSchemeName,omitempty" tf:"partition_scheme_name,omitempty"` + + // The internal name of your dedicated server. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Template name + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` +} + +// ServerInstallTaskSpec defines the desired state of ServerInstallTask +type ServerInstallTaskSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServerInstallTaskParameters `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 ServerInstallTaskInitParameters `json:"initProvider,omitempty"` +} + +// ServerInstallTaskStatus defines the observed state of ServerInstallTask. +type ServerInstallTaskStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServerInstallTaskObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerInstallTask is the Schema for the ServerInstallTasks API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type ServerInstallTask 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.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.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + Spec ServerInstallTaskSpec `json:"spec"` + Status ServerInstallTaskStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerInstallTaskList contains a list of ServerInstallTasks +type ServerInstallTaskList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServerInstallTask `json:"items"` +} + +// Repository type metadata. +var ( + ServerInstallTask_Kind = "ServerInstallTask" + ServerInstallTask_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServerInstallTask_Kind}.String() + ServerInstallTask_KindAPIVersion = ServerInstallTask_Kind + "." + CRDGroupVersion.String() + ServerInstallTask_GroupVersionKind = CRDGroupVersion.WithKind(ServerInstallTask_Kind) +) + +func init() { + SchemeBuilder.Register(&ServerInstallTask{}, &ServerInstallTaskList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go b/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go new file mode 100755 index 0000000..40f0ae1 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_servernetworking_types.go @@ -0,0 +1,160 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type InterfacesInitParameters struct { + + // (List of String) List of mac addresses to bind together. + // Interface Mac address + Macs []*string `json:"macs,omitempty" tf:"macs,omitempty"` + + // (String) Type of bonding to create. + // Interface type + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type InterfacesObservation struct { + + // (List of String) List of mac addresses to bind together. + // Interface Mac address + Macs []*string `json:"macs,omitempty" tf:"macs,omitempty"` + + // (String) Type of bonding to create. + // Interface type + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type InterfacesParameters struct { + + // (List of String) List of mac addresses to bind together. + // Interface Mac address + // +kubebuilder:validation:Optional + Macs []*string `json:"macs" tf:"macs,omitempty"` + + // (String) Type of bonding to create. + // Interface type + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type ServerNetworkingInitParameters struct { + + // (Block List, Min: 1, Max: 2) Interface or interfaces aggregation. + // Interface or interfaces aggregation. + Interfaces []InterfacesInitParameters `json:"interfaces,omitempty" tf:"interfaces,omitempty"` + + // (String) The service_name of your dedicated server. The full list of available dedicated servers can be found using the ovh_dedicated_servers datasource. + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ServerNetworkingObservation struct { + + // Operation description. + // Operation description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // (Block List, Min: 1, Max: 2) Interface or interfaces aggregation. + // Interface or interfaces aggregation. + Interfaces []InterfacesObservation `json:"interfaces,omitempty" tf:"interfaces,omitempty"` + + // (String) The service_name of your dedicated server. The full list of available dedicated servers can be found using the ovh_dedicated_servers datasource. + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // status of the networking configuration (should be active). + // Operation status + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ServerNetworkingParameters struct { + + // (Block List, Min: 1, Max: 2) Interface or interfaces aggregation. + // Interface or interfaces aggregation. + // +kubebuilder:validation:Optional + Interfaces []InterfacesParameters `json:"interfaces,omitempty" tf:"interfaces,omitempty"` + + // (String) The service_name of your dedicated server. The full list of available dedicated servers can be found using the ovh_dedicated_servers datasource. + // The internal name of your dedicated server. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// ServerNetworkingSpec defines the desired state of ServerNetworking +type ServerNetworkingSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServerNetworkingParameters `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 ServerNetworkingInitParameters `json:"initProvider,omitempty"` +} + +// ServerNetworkingStatus defines the observed state of ServerNetworking. +type ServerNetworkingStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServerNetworkingObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerNetworking is the Schema for the ServerNetworkings API. ovh_dedicated_server_networking.html.markdownsubcategory : "Dedicated Server" +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type ServerNetworking 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.interfaces) || (has(self.initProvider) && has(self.initProvider.interfaces))",message="spec.forProvider.interfaces 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 ServerNetworkingSpec `json:"spec"` + Status ServerNetworkingStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerNetworkingList contains a list of ServerNetworkings +type ServerNetworkingList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServerNetworking `json:"items"` +} + +// Repository type metadata. +var ( + ServerNetworking_Kind = "ServerNetworking" + ServerNetworking_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServerNetworking_Kind}.String() + ServerNetworking_KindAPIVersion = ServerNetworking_Kind + "." + CRDGroupVersion.String() + ServerNetworking_GroupVersionKind = CRDGroupVersion.WithKind(ServerNetworking_Kind) +) + +func init() { + SchemeBuilder.Register(&ServerNetworking{}, &ServerNetworkingList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go b/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go new file mode 100755 index 0000000..91d2d66 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_serverreboottask_types.go @@ -0,0 +1,129 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type ServerRebootTaskInitParameters struct { + + // Change this value to recreate a reboot task. + Keepers []*string `json:"keepers,omitempty" tf:"keepers,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ServerRebootTaskObservation struct { + + // Details of this task + Comment *string `json:"comment,omitempty" tf:"comment,omitempty"` + + // Completion date + DoneDate *string `json:"doneDate,omitempty" tf:"done_date,omitempty"` + + // Function name + Function *string `json:"function,omitempty" tf:"function,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Change this value to recreate a reboot task. + Keepers []*string `json:"keepers,omitempty" tf:"keepers,omitempty"` + + // Last update + LastUpdate *string `json:"lastUpdate,omitempty" tf:"last_update,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Task Creation date + StartDate *string `json:"startDate,omitempty" tf:"start_date,omitempty"` + + // Task status + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ServerRebootTaskParameters struct { + + // Change this value to recreate a reboot task. + // +kubebuilder:validation:Optional + Keepers []*string `json:"keepers,omitempty" tf:"keepers,omitempty"` + + // The internal name of your dedicated server. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// ServerRebootTaskSpec defines the desired state of ServerRebootTask +type ServerRebootTaskSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServerRebootTaskParameters `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 ServerRebootTaskInitParameters `json:"initProvider,omitempty"` +} + +// ServerRebootTaskStatus defines the observed state of ServerRebootTask. +type ServerRebootTaskStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServerRebootTaskObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerRebootTask is the Schema for the ServerRebootTasks API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type ServerRebootTask 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.keepers) || (has(self.initProvider) && has(self.initProvider.keepers))",message="spec.forProvider.keepers 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 ServerRebootTaskSpec `json:"spec"` + Status ServerRebootTaskStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerRebootTaskList contains a list of ServerRebootTasks +type ServerRebootTaskList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServerRebootTask `json:"items"` +} + +// Repository type metadata. +var ( + ServerRebootTask_Kind = "ServerRebootTask" + ServerRebootTask_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServerRebootTask_Kind}.String() + ServerRebootTask_KindAPIVersion = ServerRebootTask_Kind + "." + CRDGroupVersion.String() + ServerRebootTask_GroupVersionKind = CRDGroupVersion.WithKind(ServerRebootTask_Kind) +) + +func init() { + SchemeBuilder.Register(&ServerRebootTask{}, &ServerRebootTaskList{}) +} diff --git a/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go b/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go new file mode 100755 index 0000000..fe50778 --- /dev/null +++ b/apis/dedicatedserver/v1alpha1/zz_serverupdate_types.go @@ -0,0 +1,130 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type ServerUpdateInitParameters struct { + + // The boot id of your dedicated server. + BootID *float64 `json:"bootId,omitempty" tf:"boot_id,omitempty"` + + // Icmp monitoring state + Monitoring *bool `json:"monitoring,omitempty" tf:"monitoring,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // error, hacked, hackedBlocked, ok + State *string `json:"state,omitempty" tf:"state,omitempty"` +} + +type ServerUpdateObservation struct { + + // The boot id of your dedicated server. + BootID *float64 `json:"bootId,omitempty" tf:"boot_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Icmp monitoring state + Monitoring *bool `json:"monitoring,omitempty" tf:"monitoring,omitempty"` + + // The internal name of your dedicated server. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // error, hacked, hackedBlocked, ok + State *string `json:"state,omitempty" tf:"state,omitempty"` +} + +type ServerUpdateParameters struct { + + // The boot id of your dedicated server. + // +kubebuilder:validation:Optional + BootID *float64 `json:"bootId,omitempty" tf:"boot_id,omitempty"` + + // Icmp monitoring state + // +kubebuilder:validation:Optional + Monitoring *bool `json:"monitoring,omitempty" tf:"monitoring,omitempty"` + + // The internal name of your dedicated server. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // error, hacked, hackedBlocked, ok + // +kubebuilder:validation:Optional + State *string `json:"state,omitempty" tf:"state,omitempty"` +} + +// ServerUpdateSpec defines the desired state of ServerUpdate +type ServerUpdateSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServerUpdateParameters `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 ServerUpdateInitParameters `json:"initProvider,omitempty"` +} + +// ServerUpdateStatus defines the observed state of ServerUpdate. +type ServerUpdateStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServerUpdateObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerUpdate is the Schema for the ServerUpdates API. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +// +kubebuilder:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,ovh} +type ServerUpdate 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.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + Spec ServerUpdateSpec `json:"spec"` + Status ServerUpdateStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServerUpdateList contains a list of ServerUpdates +type ServerUpdateList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServerUpdate `json:"items"` +} + +// Repository type metadata. +var ( + ServerUpdate_Kind = "ServerUpdate" + ServerUpdate_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServerUpdate_Kind}.String() + ServerUpdate_KindAPIVersion = ServerUpdate_Kind + "." + CRDGroupVersion.String() + ServerUpdate_GroupVersionKind = CRDGroupVersion.WithKind(ServerUpdate_Kind) +) + +func init() { + SchemeBuilder.Register(&ServerUpdate{}, &ServerUpdateList{}) +} diff --git a/apis/zz_register.go b/apis/zz_register.go index da5cf75..95c84a8 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -17,6 +17,7 @@ import ( v1alpha1 "github.com/edixos/provider-ovh/apis/accountmanagement/v1alpha1" v1alpha1additionalip "github.com/edixos/provider-ovh/apis/additionalip/v1alpha1" v1alpha1clouddiskarray "github.com/edixos/provider-ovh/apis/clouddiskarray/v1alpha1" + v1alpha1dedicatedserver "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" v1alpha1publiccloudnetwork "github.com/edixos/provider-ovh/apis/publiccloudnetwork/v1alpha1" v1alpha1apis "github.com/edixos/provider-ovh/apis/v1alpha1" v1beta1 "github.com/edixos/provider-ovh/apis/v1beta1" @@ -29,6 +30,7 @@ func init() { v1alpha1.SchemeBuilder.AddToScheme, v1alpha1additionalip.SchemeBuilder.AddToScheme, v1alpha1clouddiskarray.SchemeBuilder.AddToScheme, + v1alpha1dedicatedserver.SchemeBuilder.AddToScheme, v1alpha1publiccloudnetwork.SchemeBuilder.AddToScheme, v1alpha1apis.SchemeBuilder.AddToScheme, v1beta1.SchemeBuilder.AddToScheme, diff --git a/config/cloud_disk_array/config.go b/config/cloud_disk_array/config.go index 1edb42a..665a077 100644 --- a/config/cloud_disk_array/config.go +++ b/config/cloud_disk_array/config.go @@ -7,5 +7,4 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("ovh_dedicated_ceph_acl", func(r *config.Resource) { r.ShortGroup = "clouddiskarray" }) - } diff --git a/config/dedicated_server/config.go b/config/dedicated_server/config.go new file mode 100644 index 0000000..ddc83dd --- /dev/null +++ b/config/dedicated_server/config.go @@ -0,0 +1,46 @@ +package dedicated_server + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "dedicatedserver" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_dedicated_server_install_task", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_dedicated_server_reboot_task", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_dedicated_server_update", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_me_installation_template", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_me_installation_template_partition_scheme", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_me_installation_template_partition_scheme_hardware_raid", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_me_installation_template_partition_scheme_partition", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_me_ipxe_script", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + + p.AddResourceConfigurator("ovh_dedicated_server_networking", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) +} diff --git a/config/external_name.go b/config/external_name.go index 1fb133c..abd41fb 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -10,21 +10,30 @@ import "github.com/crossplane/upjet/pkg/config" // provider. var ExternalNameConfigs = map[string]config.ExternalName{ // Import requires using a randomly generated ID from provider: nl-2e21sda - "ovh_cloud_project_network_private": config.NameAsIdentifier, - "ovh_cloud_project_network_private_subnet": config.NameAsIdentifier, - "ovh_cloud_project_workflow_backup": config.NameAsIdentifier, - "ovh_cloud_project": config.NameAsIdentifier, - "ovh_cloud_project_user": config.NameAsIdentifier, - "ovh_cloud_project_user_s3_credential": config.NameAsIdentifier, - "ovh_cloud_project_user_s3_policy": config.NameAsIdentifier, - "ovh_iam_policy": config.NameAsIdentifier, - "ovh_me_identity_group": config.NameAsIdentifier, - "ovh_me_identity_user": config.NameAsIdentifier, - "ovh_me_ssh_key": config.NameAsIdentifier, - "ovh_cloud_project_failover_ip_attach": config.NameAsIdentifier, - "ovh_ip_reverse": config.NameAsIdentifier, - "ovh_ip_service": config.NameAsIdentifier, - "ovh_dedicated_ceph_acl": config.NameAsIdentifier, + "ovh_cloud_project_network_private": config.NameAsIdentifier, + "ovh_cloud_project_network_private_subnet": config.NameAsIdentifier, + "ovh_cloud_project_workflow_backup": config.NameAsIdentifier, + "ovh_cloud_project": config.NameAsIdentifier, + "ovh_cloud_project_user": config.NameAsIdentifier, + "ovh_cloud_project_user_s3_credential": config.NameAsIdentifier, + "ovh_cloud_project_user_s3_policy": config.NameAsIdentifier, + "ovh_iam_policy": config.NameAsIdentifier, + "ovh_me_identity_group": config.NameAsIdentifier, + "ovh_me_identity_user": config.NameAsIdentifier, + "ovh_me_ssh_key": config.NameAsIdentifier, + "ovh_cloud_project_failover_ip_attach": config.NameAsIdentifier, + "ovh_ip_reverse": config.NameAsIdentifier, + "ovh_ip_service": config.NameAsIdentifier, + "ovh_dedicated_ceph_acl": config.NameAsIdentifier, + "ovh_dedicated_server_install_task": config.NameAsIdentifier, + "ovh_dedicated_server_reboot_task": config.NameAsIdentifier, + "ovh_dedicated_server_update": config.NameAsIdentifier, + "ovh_me_installation_template": config.NameAsIdentifier, + "ovh_me_installation_template_partition_scheme": config.NameAsIdentifier, + "ovh_me_installation_template_partition_scheme_hardware_raid": config.NameAsIdentifier, + "ovh_me_installation_template_partition_scheme_partition": config.NameAsIdentifier, + "ovh_me_ipxe_script": config.NameAsIdentifier, + "ovh_dedicated_server_networking": config.NameAsIdentifier, } // ExternalNameConfigurations applies all external name configs listed in the diff --git a/config/provider.go b/config/provider.go index 34581bc..8a08b67 100644 --- a/config/provider.go +++ b/config/provider.go @@ -7,6 +7,9 @@ package config import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" + + "github.com/edixos/provider-ovh/config/dedicated_server" + "github.com/edixos/provider-ovh/config/cloud_disk_array" "github.com/edixos/provider-ovh/config/account_management" @@ -46,6 +49,7 @@ func GetProvider() *ujconfig.Provider { additional_ip.Configure, vm_instances.Configure, cloud_disk_array.Configure, + dedicated_server.Configure, } { configure(pc) } diff --git a/examples-generated/dedicatedserver/servernetworking.yaml b/examples-generated/dedicatedserver/servernetworking.yaml new file mode 100644 index 0000000..e6c3071 --- /dev/null +++ b/examples-generated/dedicatedserver/servernetworking.yaml @@ -0,0 +1,14 @@ +apiVersion: dedicatedserver.ovh.edixos.io/v1alpha1 +kind: ServerNetworking +metadata: + annotations: + meta.upbound.io/example-id: dedicatedserver/v1alpha1/servernetworking + labels: + testing.upbound.io/example-name: server + name: server +spec: + forProvider: + interfaces: + - macs: ${sort(flatten(data.ovh_dedicated_server.server.vnis.*.nics))} + type: vrack + serviceName: ${local.dedicated_server} diff --git a/internal/controller/dedicatedserver/installationtemplate/zz_controller.go b/internal/controller/dedicatedserver/installationtemplate/zz_controller.go new file mode 100755 index 0000000..99bfe62 --- /dev/null +++ b/internal/controller/dedicatedserver/installationtemplate/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package installationtemplate + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles InstallationTemplate managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstallationTemplate_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.InstallationTemplate_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplate_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_installation_template"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplate_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstallationTemplate{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/installationtemplatepartitionscheme/zz_controller.go b/internal/controller/dedicatedserver/installationtemplatepartitionscheme/zz_controller.go new file mode 100755 index 0000000..1ea5549 --- /dev/null +++ b/internal/controller/dedicatedserver/installationtemplatepartitionscheme/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package installationtemplatepartitionscheme + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles InstallationTemplatePartitionScheme managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstallationTemplatePartitionScheme_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.InstallationTemplatePartitionScheme_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionScheme_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_installation_template_partition_scheme"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionScheme_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstallationTemplatePartitionScheme{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/installationtemplatepartitionschemehardwareraid/zz_controller.go b/internal/controller/dedicatedserver/installationtemplatepartitionschemehardwareraid/zz_controller.go new file mode 100755 index 0000000..7b29e69 --- /dev/null +++ b/internal/controller/dedicatedserver/installationtemplatepartitionschemehardwareraid/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package installationtemplatepartitionschemehardwareraid + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles InstallationTemplatePartitionSchemeHardwareRaid managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstallationTemplatePartitionSchemeHardwareRaid_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.InstallationTemplatePartitionSchemeHardwareRaid_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionSchemeHardwareRaid_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_installation_template_partition_scheme_hardware_raid"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionSchemeHardwareRaid_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstallationTemplatePartitionSchemeHardwareRaid{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/installationtemplatepartitionschemepartition/zz_controller.go b/internal/controller/dedicatedserver/installationtemplatepartitionschemepartition/zz_controller.go new file mode 100755 index 0000000..38a56e4 --- /dev/null +++ b/internal/controller/dedicatedserver/installationtemplatepartitionschemepartition/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package installationtemplatepartitionschemepartition + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles InstallationTemplatePartitionSchemePartition managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstallationTemplatePartitionSchemePartition_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.InstallationTemplatePartitionSchemePartition_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionSchemePartition_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_installation_template_partition_scheme_partition"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstallationTemplatePartitionSchemePartition_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstallationTemplatePartitionSchemePartition{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/ipxescript/zz_controller.go b/internal/controller/dedicatedserver/ipxescript/zz_controller.go new file mode 100755 index 0000000..a76160a --- /dev/null +++ b/internal/controller/dedicatedserver/ipxescript/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ipxescript + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles IpxeScript managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IpxeScript_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.IpxeScript_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IpxeScript_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_ipxe_script"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.IpxeScript_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IpxeScript{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/serverinstalltask/zz_controller.go b/internal/controller/dedicatedserver/serverinstalltask/zz_controller.go new file mode 100755 index 0000000..369c336 --- /dev/null +++ b/internal/controller/dedicatedserver/serverinstalltask/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package serverinstalltask + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ServerInstallTask managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServerInstallTask_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.ServerInstallTask_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServerInstallTask_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dedicated_server_install_task"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServerInstallTask_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServerInstallTask{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/servernetworking/zz_controller.go b/internal/controller/dedicatedserver/servernetworking/zz_controller.go new file mode 100755 index 0000000..edb61e6 --- /dev/null +++ b/internal/controller/dedicatedserver/servernetworking/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package servernetworking + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ServerNetworking managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServerNetworking_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.ServerNetworking_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServerNetworking_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dedicated_server_networking"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServerNetworking_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServerNetworking{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/serverreboottask/zz_controller.go b/internal/controller/dedicatedserver/serverreboottask/zz_controller.go new file mode 100755 index 0000000..66497fe --- /dev/null +++ b/internal/controller/dedicatedserver/serverreboottask/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package serverreboottask + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ServerRebootTask managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServerRebootTask_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.ServerRebootTask_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServerRebootTask_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dedicated_server_reboot_task"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServerRebootTask_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServerRebootTask{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dedicatedserver/serverupdate/zz_controller.go b/internal/controller/dedicatedserver/serverupdate/zz_controller.go new file mode 100755 index 0000000..3f8db55 --- /dev/null +++ b/internal/controller/dedicatedserver/serverupdate/zz_controller.go @@ -0,0 +1,67 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package serverupdate + +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" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/edixos/provider-ovh/apis/dedicatedserver/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ServerUpdate managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServerUpdate_GroupVersionKind.String()) + var initializers managed.InitializerChain + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + 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.ServerUpdate_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServerUpdate_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_dedicated_server_update"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServerUpdate_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServerUpdate{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index efbb882..6217f85 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -21,6 +21,15 @@ import ( reverse "github.com/edixos/provider-ovh/internal/controller/additionalip/reverse" service "github.com/edixos/provider-ovh/internal/controller/additionalip/service" cephacl "github.com/edixos/provider-ovh/internal/controller/clouddiskarray/cephacl" + installationtemplate "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/installationtemplate" + installationtemplatepartitionscheme "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/installationtemplatepartitionscheme" + installationtemplatepartitionschemehardwareraid "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/installationtemplatepartitionschemehardwareraid" + installationtemplatepartitionschemepartition "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/installationtemplatepartitionschemepartition" + ipxescript "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/ipxescript" + serverinstalltask "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/serverinstalltask" + servernetworking "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/servernetworking" + serverreboottask "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/serverreboottask" + serverupdate "github.com/edixos/provider-ovh/internal/controller/dedicatedserver/serverupdate" providerconfig "github.com/edixos/provider-ovh/internal/controller/providerconfig" projectnetworkprivate "github.com/edixos/provider-ovh/internal/controller/publiccloudnetwork/projectnetworkprivate" projectnetworkprivatesubnet "github.com/edixos/provider-ovh/internal/controller/publiccloudnetwork/projectnetworkprivatesubnet" @@ -43,6 +52,15 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { reverse.Setup, service.Setup, cephacl.Setup, + installationtemplate.Setup, + installationtemplatepartitionscheme.Setup, + installationtemplatepartitionschemehardwareraid.Setup, + installationtemplatepartitionschemepartition.Setup, + ipxescript.Setup, + serverinstalltask.Setup, + servernetworking.Setup, + serverreboottask.Setup, + serverupdate.Setup, providerconfig.Setup, projectnetworkprivate.Setup, projectnetworkprivatesubnet.Setup, diff --git a/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml new file mode 100644 index 0000000..2490377 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemehardwareraids.yaml @@ -0,0 +1,378 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: installationtemplatepartitionschemehardwareraids.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: InstallationTemplatePartitionSchemeHardwareRaid + listKind: InstallationTemplatePartitionSchemeHardwareRaidList + plural: installationtemplatepartitionschemehardwareraids + singular: installationtemplatepartitionschemehardwareraid + 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: InstallationTemplatePartitionSchemeHardwareRaid is the Schema + for the InstallationTemplatePartitionSchemeHardwareRaids 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: InstallationTemplatePartitionSchemeHardwareRaidSpec defines + the desired state of InstallationTemplatePartitionSchemeHardwareRaid + 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: + disks: + 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 + items: + type: string + type: array + mode: + description: RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, + raid60) + type: string + schemeName: + description: name of this partitioning scheme + type: string + step: + description: Specifies the creation order of the hardware RAID + type: number + templateName: + description: Template name + 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: + disks: + 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 + items: + type: string + type: array + mode: + description: RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, + raid60) + type: string + schemeName: + description: name of this partitioning scheme + type: string + step: + description: Specifies the creation order of the hardware RAID + type: number + templateName: + description: Template name + 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.disks is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.disks) + || (has(self.initProvider) && has(self.initProvider.disks))' + - message: spec.forProvider.mode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mode) + || (has(self.initProvider) && has(self.initProvider.mode))' + - message: spec.forProvider.schemeName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.schemeName) + || (has(self.initProvider) && has(self.initProvider.schemeName))' + - message: spec.forProvider.step is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.step) + || (has(self.initProvider) && has(self.initProvider.step))' + - message: spec.forProvider.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + status: + description: InstallationTemplatePartitionSchemeHardwareRaidStatus defines + the observed state of InstallationTemplatePartitionSchemeHardwareRaid. + properties: + atProvider: + properties: + disks: + 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 + items: + type: string + type: array + id: + type: string + mode: + description: RAID mode (raid0, raid1, raid10, raid5, raid50, raid6, + raid60) + type: string + schemeName: + description: name of this partitioning scheme + type: string + step: + description: Specifies the creation order of the hardware RAID + type: number + templateName: + description: Template name + 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/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml new file mode 100644 index 0000000..4616572 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemepartitions.yaml @@ -0,0 +1,410 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: installationtemplatepartitionschemepartitions.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: InstallationTemplatePartitionSchemePartition + listKind: InstallationTemplatePartitionSchemePartitionList + plural: installationtemplatepartitionschemepartitions + singular: installationtemplatepartitionschemepartition + 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: InstallationTemplatePartitionSchemePartition is the Schema for + the InstallationTemplatePartitionSchemePartitions 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: InstallationTemplatePartitionSchemePartitionSpec defines + the desired state of InstallationTemplatePartitionSchemePartition + 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: + filesystem: + description: Partition filesystem + type: string + mountpoint: + description: partition mount point + type: string + order: + description: step or order. specifies the creation order of the + partition on the disk + type: number + raid: + description: raid partition type + type: string + schemeName: + description: name of this partitioning scheme + type: string + size: + description: size of partition in MB, 0 => rest of the space + type: number + templateName: + description: Template name + type: string + type: + description: partition type + type: string + volumeName: + description: The volume name needed for proxmox distribution + 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: + filesystem: + description: Partition filesystem + type: string + mountpoint: + description: partition mount point + type: string + order: + description: step or order. specifies the creation order of the + partition on the disk + type: number + raid: + description: raid partition type + type: string + schemeName: + description: name of this partitioning scheme + type: string + size: + description: size of partition in MB, 0 => rest of the space + type: number + templateName: + description: Template name + type: string + type: + description: partition type + type: string + volumeName: + description: The volume name needed for proxmox distribution + 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.filesystem is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.filesystem) + || (has(self.initProvider) && has(self.initProvider.filesystem))' + - message: spec.forProvider.mountpoint is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mountpoint) + || (has(self.initProvider) && has(self.initProvider.mountpoint))' + - message: spec.forProvider.order is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.order) + || (has(self.initProvider) && has(self.initProvider.order))' + - message: spec.forProvider.schemeName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.schemeName) + || (has(self.initProvider) && has(self.initProvider.schemeName))' + - message: spec.forProvider.size is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.size) + || (has(self.initProvider) && has(self.initProvider.size))' + - message: spec.forProvider.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + - message: spec.forProvider.type is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.type) + || (has(self.initProvider) && has(self.initProvider.type))' + status: + description: InstallationTemplatePartitionSchemePartitionStatus defines + the observed state of InstallationTemplatePartitionSchemePartition. + properties: + atProvider: + properties: + filesystem: + description: Partition filesystem + type: string + id: + type: string + mountpoint: + description: partition mount point + type: string + order: + description: step or order. specifies the creation order of the + partition on the disk + type: number + raid: + description: raid partition type + type: string + schemeName: + description: name of this partitioning scheme + type: string + size: + description: size of partition in MB, 0 => rest of the space + type: number + templateName: + description: Template name + type: string + type: + description: partition type + type: string + volumeName: + description: The volume name needed for proxmox distribution + 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/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml new file mode 100644 index 0000000..992da3f --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplatepartitionschemes.yaml @@ -0,0 +1,333 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: installationtemplatepartitionschemes.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: InstallationTemplatePartitionScheme + listKind: InstallationTemplatePartitionSchemeList + plural: installationtemplatepartitionschemes + singular: installationtemplatepartitionscheme + 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: InstallationTemplatePartitionScheme is the Schema for the InstallationTemplatePartitionSchemes + 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: InstallationTemplatePartitionSchemeSpec defines the desired + state of InstallationTemplatePartitionScheme + 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: + priority: + 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) + type: number + templateName: + description: This template name + 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: + priority: + 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) + type: number + templateName: + description: This template name + 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.priority is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.priority) + || (has(self.initProvider) && has(self.initProvider.priority))' + - message: spec.forProvider.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + status: + description: InstallationTemplatePartitionSchemeStatus defines the observed + state of InstallationTemplatePartitionScheme. + properties: + atProvider: + properties: + id: + type: string + priority: + 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) + type: number + templateName: + description: This template name + 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/dedicatedserver.ovh.edixos.io_installationtemplates.yaml b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml new file mode 100644 index 0000000..bfec640 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_installationtemplates.yaml @@ -0,0 +1,502 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: installationtemplates.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: InstallationTemplate + listKind: InstallationTemplateList + plural: installationtemplates + singular: installationtemplate + 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: InstallationTemplate is the Schema for the InstallationTemplates + 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: InstallationTemplateSpec defines the desired state of InstallationTemplate + 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: + baseTemplateName: + description: OVH template name yours will be based on, choose + one among the list given by compatibleTemplates function + type: string + customization: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + rating: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistributionKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + type: object + type: array + defaultLanguage: + description: The default language of this template + type: string + removeDefaultPartitionSchemes: + description: Remove default partition schemes at creation + type: boolean + templateName: + description: This template name + 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: + baseTemplateName: + description: OVH template name yours will be based on, choose + one among the list given by compatibleTemplates function + type: string + customization: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + rating: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistributionKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + type: object + type: array + defaultLanguage: + description: The default language of this template + type: string + removeDefaultPartitionSchemes: + description: Remove default partition schemes at creation + type: boolean + templateName: + description: This template name + 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.baseTemplateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.baseTemplateName) + || (has(self.initProvider) && has(self.initProvider.baseTemplateName))' + - message: spec.forProvider.defaultLanguage is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.defaultLanguage) + || (has(self.initProvider) && has(self.initProvider.defaultLanguage))' + - message: spec.forProvider.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + status: + description: InstallationTemplateStatus defines the observed state of + InstallationTemplate. + properties: + atProvider: + properties: + availableLanguages: + description: List of all language available for this template + items: + type: string + type: array + baseTemplateName: + description: OVH template name yours will be based on, choose + one among the list given by compatibleTemplates function + type: string + beta: + description: This distribution is new and, although tested and + functional, may still display odd behaviour + type: boolean + bitFormat: + description: This template bit format (32 or 64) + type: number + category: + description: Category of this template (informative only). (basic, + customer, hosting, other, readyToUse, virtualisation) + type: string + customization: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + rating: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistributionKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + type: object + type: array + defaultLanguage: + description: The default language of this template + type: string + deprecated: + description: is this distribution deprecated + type: boolean + description: + description: information about this template + type: string + distribution: + description: the distribution this template is based on + type: string + family: + description: this template family type (bsd,linux,solaris,windows) + type: string + filesystems: + description: Filesystems available (btrfs,ext3,ext4,ntfs,reiserfs,swap,ufs,xfs,zfs) + items: + type: string + type: array + hardRaidConfiguration: + description: This distribution supports hardware raid configuration + through the OVH API + type: boolean + id: + type: string + lastModification: + description: Date of last modification of the base image + type: string + lvmReady: + description: This distribution supports Logical Volumes (Linux + LVM) + type: boolean + removeDefaultPartitionSchemes: + description: Remove default partition schemes at creation + type: boolean + supportsDistributionKernel: + description: This distribution supports installation using the + distribution's native kernel instead of the recommended OVH + kernel + type: boolean + supportsRtm: + description: This distribution supports RTM software + type: boolean + supportsSqlServer: + description: This distribution supports the microsoft SQL server + type: boolean + templateName: + description: This template name + 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/dedicatedserver.ovh.edixos.io_ipxescripts.yaml b/package/crds/dedicatedserver.ovh.edixos.io_ipxescripts.yaml new file mode 100644 index 0000000..8f0e2ac --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_ipxescripts.yaml @@ -0,0 +1,326 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ipxescripts.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: IpxeScript + listKind: IpxeScriptList + plural: ipxescripts + singular: ipxescript + 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: IpxeScript is the Schema for the IpxeScripts 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: IpxeScriptSpec defines the desired state of IpxeScript + 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: For documentation purpose only. This attribute is + not passed to the OVH API as it cannot be retrieved back. Instead + a fake description ('$name auto description') is passed at creation + time. + type: string + script: + description: Content of your IPXE script + 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: For documentation purpose only. This attribute is + not passed to the OVH API as it cannot be retrieved back. Instead + a fake description ('$name auto description') is passed at creation + time. + type: string + script: + description: Content of your IPXE script + 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.script is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.script) + || (has(self.initProvider) && has(self.initProvider.script))' + status: + description: IpxeScriptStatus defines the observed state of IpxeScript. + properties: + atProvider: + properties: + description: + description: For documentation purpose only. This attribute is + not passed to the OVH API as it cannot be retrieved back. Instead + a fake description ('$name auto description') is passed at creation + time. + type: string + id: + type: string + script: + description: Content of your IPXE script + 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/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml new file mode 100644 index 0000000..83fd859 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverinstalltasks.yaml @@ -0,0 +1,505 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: serverinstalltasks.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ServerInstallTask + listKind: ServerInstallTaskList + plural: serverinstalltasks + singular: serverinstalltask + 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: ServerInstallTask is the Schema for the ServerInstallTasks 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: ServerInstallTaskSpec defines the desired state of ServerInstallTask + 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: + bootidOnDestroy: + description: If set, reboot the server on the specified boot id + during destroy phase + type: number + details: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + diskGroupId: + type: number + installRtm: + type: boolean + installSqlServer: + type: boolean + language: + description: language + type: string + noRaid: + type: boolean + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + resetHwRaid: + type: boolean + softRaidDevices: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistribKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + useSpla: + type: boolean + type: object + type: array + partitionSchemeName: + description: Partition scheme name. + type: string + serviceName: + description: The internal name of your dedicated server. + type: string + templateName: + description: Template name + 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: + bootidOnDestroy: + description: If set, reboot the server on the specified boot id + during destroy phase + type: number + details: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + diskGroupId: + type: number + installRtm: + type: boolean + installSqlServer: + type: boolean + language: + description: language + type: string + noRaid: + type: boolean + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + resetHwRaid: + type: boolean + softRaidDevices: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistribKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + useSpla: + type: boolean + type: object + type: array + partitionSchemeName: + description: Partition scheme name. + type: string + serviceName: + description: The internal name of your dedicated server. + type: string + templateName: + description: Template name + 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.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.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + status: + description: ServerInstallTaskStatus defines the observed state of ServerInstallTask. + properties: + atProvider: + properties: + bootidOnDestroy: + description: If set, reboot the server on the specified boot id + during destroy phase + type: number + comment: + description: Details of this task + type: string + details: + items: + properties: + changeLog: + description: Template change log details + type: string + customHostname: + description: Set up the server using the provided hostname + instead of the default hostname + type: string + diskGroupId: + type: number + installRtm: + type: boolean + installSqlServer: + type: boolean + language: + description: language + type: string + noRaid: + type: boolean + postInstallationScriptLink: + description: Indicate the URL where your postinstall customisation + script is located + type: string + postInstallationScriptReturn: + description: 'indicate the string returned by your postinstall + customisation script on successful execution. Advice: + your script should return a unique validation string in + case of succes. A good example is ''loh1Xee7eo OK OK OK + UGh8Ang1Gu''' + type: string + resetHwRaid: + type: boolean + softRaidDevices: + type: number + sshKeyName: + description: Name of the ssh key that should be installed. + Password login will be disabled + type: string + useDistribKernel: + description: Use the distribution's native kernel instead + of the recommended OVH Kernel + type: boolean + useSpla: + type: boolean + type: object + type: array + doneDate: + description: Completion date + type: string + function: + description: Function name + type: string + id: + type: string + lastUpdate: + description: Last update + type: string + partitionSchemeName: + description: Partition scheme name. + type: string + serviceName: + description: The internal name of your dedicated server. + type: string + startDate: + description: Task Creation date + type: string + status: + description: Task status + type: string + templateName: + description: Template name + 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/dedicatedserver.ovh.edixos.io_servernetworkings.yaml b/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml new file mode 100644 index 0000000..83be6f1 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_servernetworkings.yaml @@ -0,0 +1,380 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: servernetworkings.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ServerNetworking + listKind: ServerNetworkingList + plural: servernetworkings + singular: servernetworking + 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: 'ServerNetworking is the Schema for the ServerNetworkings API. + ovh_dedicated_server_networking.html.markdownsubcategory : "Dedicated Server"' + 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: ServerNetworkingSpec defines the desired state of ServerNetworking + 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: + interfaces: + description: '(Block List, Min: 1, Max: 2) Interface or interfaces + aggregation. Interface or interfaces aggregation.' + items: + properties: + macs: + description: (List of String) List of mac addresses to bind + together. Interface Mac address + items: + type: string + type: array + type: + description: (String) Type of bonding to create. Interface + type + type: string + type: object + type: array + serviceName: + description: (String) The service_name of your dedicated server. + The full list of available dedicated servers can be found using + the ovh_dedicated_servers datasource. The internal name of your + dedicated server. + 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: + interfaces: + description: '(Block List, Min: 1, Max: 2) Interface or interfaces + aggregation. Interface or interfaces aggregation.' + items: + properties: + macs: + description: (List of String) List of mac addresses to bind + together. Interface Mac address + items: + type: string + type: array + type: + description: (String) Type of bonding to create. Interface + type + type: string + type: object + type: array + serviceName: + description: (String) The service_name of your dedicated server. + The full list of available dedicated servers can be found using + the ovh_dedicated_servers datasource. The internal name of your + dedicated server. + 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.interfaces is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.interfaces) + || (has(self.initProvider) && has(self.initProvider.interfaces))' + - 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: ServerNetworkingStatus defines the observed state of ServerNetworking. + properties: + atProvider: + properties: + description: + description: Operation description. Operation description + type: string + id: + type: string + interfaces: + description: '(Block List, Min: 1, Max: 2) Interface or interfaces + aggregation. Interface or interfaces aggregation.' + items: + properties: + macs: + description: (List of String) List of mac addresses to bind + together. Interface Mac address + items: + type: string + type: array + type: + description: (String) Type of bonding to create. Interface + type + type: string + type: object + type: array + serviceName: + description: (String) The service_name of your dedicated server. + The full list of available dedicated servers can be found using + the ovh_dedicated_servers datasource. The internal name of your + dedicated server. + type: string + status: + description: status of the networking configuration (should be + active). Operation 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/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml new file mode 100644 index 0000000..8977c85 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverreboottasks.yaml @@ -0,0 +1,346 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: serverreboottasks.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ServerRebootTask + listKind: ServerRebootTaskList + plural: serverreboottasks + singular: serverreboottask + 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: ServerRebootTask is the Schema for the ServerRebootTasks 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: ServerRebootTaskSpec defines the desired state of ServerRebootTask + 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: + keepers: + description: Change this value to recreate a reboot task. + items: + type: string + type: array + serviceName: + description: The internal name of your dedicated server. + 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: + keepers: + description: Change this value to recreate a reboot task. + items: + type: string + type: array + serviceName: + description: The internal name of your dedicated server. + 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.keepers is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keepers) + || (has(self.initProvider) && has(self.initProvider.keepers))' + - 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: ServerRebootTaskStatus defines the observed state of ServerRebootTask. + properties: + atProvider: + properties: + comment: + description: Details of this task + type: string + doneDate: + description: Completion date + type: string + function: + description: Function name + type: string + id: + type: string + keepers: + description: Change this value to recreate a reboot task. + items: + type: string + type: array + lastUpdate: + description: Last update + type: string + serviceName: + description: The internal name of your dedicated server. + type: string + startDate: + description: Task Creation date + type: string + status: + description: Task 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/dedicatedserver.ovh.edixos.io_serverupdates.yaml b/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml new file mode 100644 index 0000000..ac2f5a7 --- /dev/null +++ b/package/crds/dedicatedserver.ovh.edixos.io_serverupdates.yaml @@ -0,0 +1,335 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: serverupdates.dedicatedserver.ovh.edixos.io +spec: + group: dedicatedserver.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ServerUpdate + listKind: ServerUpdateList + plural: serverupdates + singular: serverupdate + 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: ServerUpdate is the Schema for the ServerUpdates 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: ServerUpdateSpec defines the desired state of ServerUpdate + 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: + bootId: + description: The boot id of your dedicated server. + type: number + monitoring: + description: Icmp monitoring state + type: boolean + serviceName: + description: The internal name of your dedicated server. + type: string + state: + description: error, hacked, hackedBlocked, ok + 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: + bootId: + description: The boot id of your dedicated server. + type: number + monitoring: + description: Icmp monitoring state + type: boolean + serviceName: + description: The internal name of your dedicated server. + type: string + state: + description: error, hacked, hackedBlocked, ok + 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.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: ServerUpdateStatus defines the observed state of ServerUpdate. + properties: + atProvider: + properties: + bootId: + description: The boot id of your dedicated server. + type: number + id: + type: string + monitoring: + description: Icmp monitoring state + type: boolean + serviceName: + description: The internal name of your dedicated server. + type: string + state: + description: error, hacked, hackedBlocked, ok + 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: {}