diff --git a/apis/privatesql/v1alpha1/zz_generated.deepcopy.go b/apis/privatesql/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..16d14e9 --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1647 @@ +//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 *ConfigurationInitParameters) DeepCopyInto(out *ConfigurationInitParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationInitParameters. +func (in *ConfigurationInitParameters) DeepCopy() *ConfigurationInitParameters { + if in == nil { + return nil + } + out := new(ConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationObservation) DeepCopyInto(out *ConfigurationObservation) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationObservation. +func (in *ConfigurationObservation) DeepCopy() *ConfigurationObservation { + if in == nil { + return nil + } + out := new(ConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParameters) DeepCopyInto(out *ConfigurationParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParameters. +func (in *ConfigurationParameters) DeepCopy() *ConfigurationParameters { + if in == nil { + return nil + } + out := new(ConfigurationParameters) + 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 +} + +// 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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.OrderDetailID != nil { + in, out := &in.OrderDetailID, &out.OrderDetailID + *out = new(float64) + **out = **in + } + if in.Quantity != nil { + in, out := &in.Quantity, &out.Quantity + *out = new(string) + **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 +} + +// 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 *OrderInitParameters) DeepCopyInto(out *OrderInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderInitParameters. +func (in *OrderInitParameters) DeepCopy() *OrderInitParameters { + if in == nil { + return nil + } + out := new(OrderInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrderObservation) DeepCopyInto(out *OrderObservation) { + *out = *in + if in.Date != nil { + in, out := &in.Date, &out.Date + *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.ExpirationDate != nil { + in, out := &in.ExpirationDate, &out.ExpirationDate + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderObservation. +func (in *OrderObservation) DeepCopy() *OrderObservation { + if in == nil { + return nil + } + out := new(OrderObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrderParameters) DeepCopyInto(out *OrderParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderParameters. +func (in *OrderParameters) DeepCopy() *OrderParameters { + if in == nil { + return nil + } + out := new(OrderParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanInitParameters) DeepCopyInto(out *PlanInitParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanInitParameters. +func (in *PlanInitParameters) DeepCopy() *PlanInitParameters { + if in == nil { + return nil + } + out := new(PlanInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanObservation) DeepCopyInto(out *PlanObservation) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanObservation. +func (in *PlanObservation) DeepCopy() *PlanObservation { + if in == nil { + return nil + } + out := new(PlanObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationInitParameters) DeepCopyInto(out *PlanOptionConfigurationInitParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationInitParameters. +func (in *PlanOptionConfigurationInitParameters) DeepCopy() *PlanOptionConfigurationInitParameters { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationObservation) DeepCopyInto(out *PlanOptionConfigurationObservation) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationObservation. +func (in *PlanOptionConfigurationObservation) DeepCopy() *PlanOptionConfigurationObservation { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationParameters) DeepCopyInto(out *PlanOptionConfigurationParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationParameters. +func (in *PlanOptionConfigurationParameters) DeepCopy() *PlanOptionConfigurationParameters { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionInitParameters) DeepCopyInto(out *PlanOptionInitParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionInitParameters. +func (in *PlanOptionInitParameters) DeepCopy() *PlanOptionInitParameters { + if in == nil { + return nil + } + out := new(PlanOptionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionObservation) DeepCopyInto(out *PlanOptionObservation) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionObservation. +func (in *PlanOptionObservation) DeepCopy() *PlanOptionObservation { + if in == nil { + return nil + } + out := new(PlanOptionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionParameters) DeepCopyInto(out *PlanOptionParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionParameters. +func (in *PlanOptionParameters) DeepCopy() *PlanOptionParameters { + if in == nil { + return nil + } + out := new(PlanOptionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanParameters) DeepCopyInto(out *PlanParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanParameters. +func (in *PlanParameters) DeepCopy() *PlanParameters { + if in == nil { + return nil + } + out := new(PlanParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Privatedatabase) DeepCopyInto(out *Privatedatabase) { + *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 Privatedatabase. +func (in *Privatedatabase) DeepCopy() *Privatedatabase { + if in == nil { + return nil + } + out := new(Privatedatabase) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Privatedatabase) 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 *PrivatedatabaseDatabase) DeepCopyInto(out *PrivatedatabaseDatabase) { + *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 PrivatedatabaseDatabase. +func (in *PrivatedatabaseDatabase) DeepCopy() *PrivatedatabaseDatabase { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabase) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseDatabase) 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 *PrivatedatabaseDatabaseInitParameters) DeepCopyInto(out *PrivatedatabaseDatabaseInitParameters) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *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 PrivatedatabaseDatabaseInitParameters. +func (in *PrivatedatabaseDatabaseInitParameters) DeepCopy() *PrivatedatabaseDatabaseInitParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseDatabaseList) DeepCopyInto(out *PrivatedatabaseDatabaseList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrivatedatabaseDatabase, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseDatabaseList. +func (in *PrivatedatabaseDatabaseList) DeepCopy() *PrivatedatabaseDatabaseList { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseDatabaseList) 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 *PrivatedatabaseDatabaseObservation) DeepCopyInto(out *PrivatedatabaseDatabaseObservation) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *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 PrivatedatabaseDatabaseObservation. +func (in *PrivatedatabaseDatabaseObservation) DeepCopy() *PrivatedatabaseDatabaseObservation { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseDatabaseParameters) DeepCopyInto(out *PrivatedatabaseDatabaseParameters) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *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 PrivatedatabaseDatabaseParameters. +func (in *PrivatedatabaseDatabaseParameters) DeepCopy() *PrivatedatabaseDatabaseParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseDatabaseSpec) DeepCopyInto(out *PrivatedatabaseDatabaseSpec) { + *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 PrivatedatabaseDatabaseSpec. +func (in *PrivatedatabaseDatabaseSpec) DeepCopy() *PrivatedatabaseDatabaseSpec { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseDatabaseStatus) DeepCopyInto(out *PrivatedatabaseDatabaseStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseDatabaseStatus. +func (in *PrivatedatabaseDatabaseStatus) DeepCopy() *PrivatedatabaseDatabaseStatus { + if in == nil { + return nil + } + out := new(PrivatedatabaseDatabaseStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseInitParameters) DeepCopyInto(out *PrivatedatabaseInitParameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionInitParameters, 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 PrivatedatabaseInitParameters. +func (in *PrivatedatabaseInitParameters) DeepCopy() *PrivatedatabaseInitParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseList) DeepCopyInto(out *PrivatedatabaseList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Privatedatabase, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseList. +func (in *PrivatedatabaseList) DeepCopy() *PrivatedatabaseList { + if in == nil { + return nil + } + out := new(PrivatedatabaseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseList) 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 *PrivatedatabaseObservation) DeepCopyInto(out *PrivatedatabaseObservation) { + *out = *in + if in.CPU != nil { + in, out := &in.CPU, &out.CPU + *out = new(float64) + **out = **in + } + if in.Datacenter != nil { + in, out := &in.Datacenter, &out.Datacenter + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.HostnameFtp != nil { + in, out := &in.HostnameFtp, &out.HostnameFtp + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Infrastructure != nil { + in, out := &in.Infrastructure, &out.Infrastructure + *out = new(string) + **out = **in + } + if in.Offer != nil { + in, out := &in.Offer, &out.Offer + *out = new(string) + **out = **in + } + if in.Order != nil { + in, out := &in.Order, &out.Order + *out = make([]OrderObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.PortFtp != nil { + in, out := &in.PortFtp, &out.PortFtp + *out = new(float64) + **out = **in + } + if in.QuotaSize != nil { + in, out := &in.QuotaSize, &out.QuotaSize + *out = new(float64) + **out = **in + } + if in.QuotaUsed != nil { + in, out := &in.QuotaUsed, &out.QuotaUsed + *out = new(float64) + **out = **in + } + if in.RAM != nil { + in, out := &in.RAM, &out.RAM + *out = new(float64) + **out = **in + } + if in.Server != nil { + in, out := &in.Server, &out.Server + *out = new(string) + **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 + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Urn != nil { + in, out := &in.Urn, &out.Urn + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } + if in.VersionLabel != nil { + in, out := &in.VersionLabel, &out.VersionLabel + *out = new(string) + **out = **in + } + if in.VersionNumber != nil { + in, out := &in.VersionNumber, &out.VersionNumber + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseObservation. +func (in *PrivatedatabaseObservation) DeepCopy() *PrivatedatabaseObservation { + if in == nil { + return nil + } + out := new(PrivatedatabaseObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseParameters) DeepCopyInto(out *PrivatedatabaseParameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionParameters, 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 PrivatedatabaseParameters. +func (in *PrivatedatabaseParameters) DeepCopy() *PrivatedatabaseParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseSpec) DeepCopyInto(out *PrivatedatabaseSpec) { + *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 PrivatedatabaseSpec. +func (in *PrivatedatabaseSpec) DeepCopy() *PrivatedatabaseSpec { + if in == nil { + return nil + } + out := new(PrivatedatabaseSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseStatus) DeepCopyInto(out *PrivatedatabaseStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseStatus. +func (in *PrivatedatabaseStatus) DeepCopy() *PrivatedatabaseStatus { + if in == nil { + return nil + } + out := new(PrivatedatabaseStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUser) DeepCopyInto(out *PrivatedatabaseUser) { + *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 PrivatedatabaseUser. +func (in *PrivatedatabaseUser) DeepCopy() *PrivatedatabaseUser { + if in == nil { + return nil + } + out := new(PrivatedatabaseUser) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseUser) 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 *PrivatedatabaseUserGrant) DeepCopyInto(out *PrivatedatabaseUserGrant) { + *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 PrivatedatabaseUserGrant. +func (in *PrivatedatabaseUserGrant) DeepCopy() *PrivatedatabaseUserGrant { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrant) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseUserGrant) 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 *PrivatedatabaseUserGrantInitParameters) DeepCopyInto(out *PrivatedatabaseUserGrantInitParameters) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *out = new(string) + **out = **in + } + if in.Grant != nil { + in, out := &in.Grant, &out.Grant + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserGrantInitParameters. +func (in *PrivatedatabaseUserGrantInitParameters) DeepCopy() *PrivatedatabaseUserGrantInitParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserGrantList) DeepCopyInto(out *PrivatedatabaseUserGrantList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrivatedatabaseUserGrant, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserGrantList. +func (in *PrivatedatabaseUserGrantList) DeepCopy() *PrivatedatabaseUserGrantList { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseUserGrantList) 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 *PrivatedatabaseUserGrantObservation) DeepCopyInto(out *PrivatedatabaseUserGrantObservation) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *out = new(string) + **out = **in + } + if in.Grant != nil { + in, out := &in.Grant, &out.Grant + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserGrantObservation. +func (in *PrivatedatabaseUserGrantObservation) DeepCopy() *PrivatedatabaseUserGrantObservation { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserGrantParameters) DeepCopyInto(out *PrivatedatabaseUserGrantParameters) { + *out = *in + if in.DatabaseName != nil { + in, out := &in.DatabaseName, &out.DatabaseName + *out = new(string) + **out = **in + } + if in.Grant != nil { + in, out := &in.Grant, &out.Grant + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserGrantParameters. +func (in *PrivatedatabaseUserGrantParameters) DeepCopy() *PrivatedatabaseUserGrantParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserGrantSpec) DeepCopyInto(out *PrivatedatabaseUserGrantSpec) { + *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 PrivatedatabaseUserGrantSpec. +func (in *PrivatedatabaseUserGrantSpec) DeepCopy() *PrivatedatabaseUserGrantSpec { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserGrantStatus) DeepCopyInto(out *PrivatedatabaseUserGrantStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserGrantStatus. +func (in *PrivatedatabaseUserGrantStatus) DeepCopy() *PrivatedatabaseUserGrantStatus { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserGrantStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserInitParameters) DeepCopyInto(out *PrivatedatabaseUserInitParameters) { + *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserInitParameters. +func (in *PrivatedatabaseUserInitParameters) DeepCopy() *PrivatedatabaseUserInitParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserList) DeepCopyInto(out *PrivatedatabaseUserList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrivatedatabaseUser, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserList. +func (in *PrivatedatabaseUserList) DeepCopy() *PrivatedatabaseUserList { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseUserList) 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 *PrivatedatabaseUserObservation) DeepCopyInto(out *PrivatedatabaseUserObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserObservation. +func (in *PrivatedatabaseUserObservation) DeepCopy() *PrivatedatabaseUserObservation { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserParameters) DeepCopyInto(out *PrivatedatabaseUserParameters) { + *out = *in + out.PasswordSecretRef = in.PasswordSecretRef + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserParameters. +func (in *PrivatedatabaseUserParameters) DeepCopy() *PrivatedatabaseUserParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserSpec) DeepCopyInto(out *PrivatedatabaseUserSpec) { + *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 PrivatedatabaseUserSpec. +func (in *PrivatedatabaseUserSpec) DeepCopy() *PrivatedatabaseUserSpec { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseUserStatus) DeepCopyInto(out *PrivatedatabaseUserStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseUserStatus. +func (in *PrivatedatabaseUserStatus) DeepCopy() *PrivatedatabaseUserStatus { + if in == nil { + return nil + } + out := new(PrivatedatabaseUserStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseWhitelist) DeepCopyInto(out *PrivatedatabaseWhitelist) { + *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 PrivatedatabaseWhitelist. +func (in *PrivatedatabaseWhitelist) DeepCopy() *PrivatedatabaseWhitelist { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelist) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseWhitelist) 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 *PrivatedatabaseWhitelistInitParameters) DeepCopyInto(out *PrivatedatabaseWhitelistInitParameters) { + *out = *in + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Sftp != nil { + in, out := &in.Sftp, &out.Sftp + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseWhitelistInitParameters. +func (in *PrivatedatabaseWhitelistInitParameters) DeepCopy() *PrivatedatabaseWhitelistInitParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseWhitelistList) DeepCopyInto(out *PrivatedatabaseWhitelistList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrivatedatabaseWhitelist, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseWhitelistList. +func (in *PrivatedatabaseWhitelistList) DeepCopy() *PrivatedatabaseWhitelistList { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrivatedatabaseWhitelistList) 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 *PrivatedatabaseWhitelistObservation) DeepCopyInto(out *PrivatedatabaseWhitelistObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Sftp != nil { + in, out := &in.Sftp, &out.Sftp + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseWhitelistObservation. +func (in *PrivatedatabaseWhitelistObservation) DeepCopy() *PrivatedatabaseWhitelistObservation { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseWhitelistParameters) DeepCopyInto(out *PrivatedatabaseWhitelistParameters) { + *out = *in + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = new(bool) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Sftp != nil { + in, out := &in.Sftp, &out.Sftp + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseWhitelistParameters. +func (in *PrivatedatabaseWhitelistParameters) DeepCopy() *PrivatedatabaseWhitelistParameters { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseWhitelistSpec) DeepCopyInto(out *PrivatedatabaseWhitelistSpec) { + *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 PrivatedatabaseWhitelistSpec. +func (in *PrivatedatabaseWhitelistSpec) DeepCopy() *PrivatedatabaseWhitelistSpec { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivatedatabaseWhitelistStatus) DeepCopyInto(out *PrivatedatabaseWhitelistStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivatedatabaseWhitelistStatus. +func (in *PrivatedatabaseWhitelistStatus) DeepCopy() *PrivatedatabaseWhitelistStatus { + if in == nil { + return nil + } + out := new(PrivatedatabaseWhitelistStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/privatesql/v1alpha1/zz_generated.managed.go b/apis/privatesql/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..103d27a --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_generated.managed.go @@ -0,0 +1,308 @@ +/* +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 Privatedatabase. +func (mg *Privatedatabase) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Privatedatabase. +func (mg *Privatedatabase) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Privatedatabase. +func (mg *Privatedatabase) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Privatedatabase. +func (mg *Privatedatabase) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Privatedatabase. +func (mg *Privatedatabase) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Privatedatabase. +func (mg *Privatedatabase) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Privatedatabase. +func (mg *Privatedatabase) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Privatedatabase. +func (mg *Privatedatabase) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Privatedatabase. +func (mg *Privatedatabase) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Privatedatabase. +func (mg *Privatedatabase) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Privatedatabase. +func (mg *Privatedatabase) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Privatedatabase. +func (mg *Privatedatabase) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PrivatedatabaseDatabase. +func (mg *PrivatedatabaseDatabase) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PrivatedatabaseUser. +func (mg *PrivatedatabaseUser) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PrivatedatabaseUserGrant. +func (mg *PrivatedatabaseUserGrant) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PrivatedatabaseWhitelist. +func (mg *PrivatedatabaseWhitelist) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/privatesql/v1alpha1/zz_generated.managedlist.go b/apis/privatesql/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..2767cea --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,53 @@ +/* +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 PrivatedatabaseDatabaseList. +func (l *PrivatedatabaseDatabaseList) 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 PrivatedatabaseList. +func (l *PrivatedatabaseList) 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 PrivatedatabaseUserGrantList. +func (l *PrivatedatabaseUserGrantList) 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 PrivatedatabaseUserList. +func (l *PrivatedatabaseUserList) 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 PrivatedatabaseWhitelistList. +func (l *PrivatedatabaseWhitelistList) 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/privatesql/v1alpha1/zz_generated_terraformed.go b/apis/privatesql/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..b92d00a --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,438 @@ +// 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 Privatedatabase +func (mg *Privatedatabase) GetTerraformResourceType() string { + return "ovh_hosting_privatedatabase" +} + +// GetConnectionDetailsMapping for this Privatedatabase +func (tr *Privatedatabase) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Privatedatabase +func (tr *Privatedatabase) 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 Privatedatabase +func (tr *Privatedatabase) 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 Privatedatabase +func (tr *Privatedatabase) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Privatedatabase +func (tr *Privatedatabase) 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 Privatedatabase +func (tr *Privatedatabase) 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 Privatedatabase +func (tr *Privatedatabase) 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 Privatedatabase using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Privatedatabase) LateInitialize(attrs []byte) (bool, error) { + params := &PrivatedatabaseParameters{} + 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 *Privatedatabase) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PrivatedatabaseDatabase +func (mg *PrivatedatabaseDatabase) GetTerraformResourceType() string { + return "ovh_hosting_privatedatabase_database" +} + +// GetConnectionDetailsMapping for this PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) 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 PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) 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 PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) 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 PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) 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 PrivatedatabaseDatabase +func (tr *PrivatedatabaseDatabase) 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 PrivatedatabaseDatabase using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PrivatedatabaseDatabase) LateInitialize(attrs []byte) (bool, error) { + params := &PrivatedatabaseDatabaseParameters{} + 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 *PrivatedatabaseDatabase) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PrivatedatabaseUser +func (mg *PrivatedatabaseUser) GetTerraformResourceType() string { + return "ovh_hosting_privatedatabase_user" +} + +// GetConnectionDetailsMapping for this PrivatedatabaseUser +func (tr *PrivatedatabaseUser) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this PrivatedatabaseUser +func (tr *PrivatedatabaseUser) 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 PrivatedatabaseUser +func (tr *PrivatedatabaseUser) 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 PrivatedatabaseUser +func (tr *PrivatedatabaseUser) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PrivatedatabaseUser +func (tr *PrivatedatabaseUser) 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 PrivatedatabaseUser +func (tr *PrivatedatabaseUser) 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 PrivatedatabaseUser +func (tr *PrivatedatabaseUser) 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 PrivatedatabaseUser using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PrivatedatabaseUser) LateInitialize(attrs []byte) (bool, error) { + params := &PrivatedatabaseUserParameters{} + 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 *PrivatedatabaseUser) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PrivatedatabaseUserGrant +func (mg *PrivatedatabaseUserGrant) GetTerraformResourceType() string { + return "ovh_hosting_privatedatabase_user_grant" +} + +// GetConnectionDetailsMapping for this PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) 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 PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) 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 PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) 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 PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) 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 PrivatedatabaseUserGrant +func (tr *PrivatedatabaseUserGrant) 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 PrivatedatabaseUserGrant using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PrivatedatabaseUserGrant) LateInitialize(attrs []byte) (bool, error) { + params := &PrivatedatabaseUserGrantParameters{} + 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 *PrivatedatabaseUserGrant) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PrivatedatabaseWhitelist +func (mg *PrivatedatabaseWhitelist) GetTerraformResourceType() string { + return "ovh_hosting_privatedatabase_whitelist" +} + +// GetConnectionDetailsMapping for this PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) 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 PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) 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 PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) 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 PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) 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 PrivatedatabaseWhitelist +func (tr *PrivatedatabaseWhitelist) 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 PrivatedatabaseWhitelist using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PrivatedatabaseWhitelist) LateInitialize(attrs []byte) (bool, error) { + params := &PrivatedatabaseWhitelistParameters{} + 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 *PrivatedatabaseWhitelist) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/privatesql/v1alpha1/zz_groupversion_info.go b/apis/privatesql/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..e2a0d62 --- /dev/null +++ b/apis/privatesql/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=privatesql.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 = "privatesql.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/privatesql/v1alpha1/zz_privatedatabase_types.go b/apis/privatesql/v1alpha1/zz_privatedatabase_types.go new file mode 100755 index 0000000..a7e7b14 --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_privatedatabase_types.go @@ -0,0 +1,412 @@ +// 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 ConfigurationInitParameters struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConfigurationObservation struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConfigurationParameters struct { + + // Identifier of the resource + // +kubebuilder:validation:Optional + Label *string `json:"label" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type DetailsInitParameters struct { +} + +type DetailsObservation struct { + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + OrderDetailID *float64 `json:"orderDetailId,omitempty" tf:"order_detail_id,omitempty"` + + Quantity *string `json:"quantity,omitempty" tf:"quantity,omitempty"` +} + +type DetailsParameters struct { +} + +type OrderInitParameters struct { +} + +type OrderObservation struct { + Date *string `json:"date,omitempty" tf:"date,omitempty"` + + Details []DetailsObservation `json:"details,omitempty" tf:"details,omitempty"` + + ExpirationDate *string `json:"expirationDate,omitempty" tf:"expiration_date,omitempty"` + + OrderID *float64 `json:"orderId,omitempty" tf:"order_id,omitempty"` +} + +type OrderParameters struct { +} + +type PlanInitParameters struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []ConfigurationInitParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanObservation struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []ConfigurationObservation `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionConfigurationInitParameters struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type PlanOptionConfigurationObservation struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type PlanOptionConfigurationParameters struct { + + // Identifier of the resource + // +kubebuilder:validation:Optional + Label *string `json:"label" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type PlanOptionInitParameters struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []PlanOptionConfigurationInitParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionObservation struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []PlanOptionConfigurationObservation `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionParameters struct { + + // Catalog name + // +kubebuilder:validation:Optional + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + // +kubebuilder:validation:Optional + Configuration []PlanOptionConfigurationParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + // +kubebuilder:validation:Optional + Duration *string `json:"duration" tf:"duration,omitempty"` + + // Plan code + // +kubebuilder:validation:Optional + PlanCode *string `json:"planCode" tf:"plan_code,omitempty"` + + // Pricing model identifier + // +kubebuilder:validation:Optional + PricingMode *string `json:"pricingMode" tf:"pricing_mode,omitempty"` +} + +type PlanParameters struct { + + // Catalog name + // +kubebuilder:validation:Optional + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + // +kubebuilder:validation:Optional + Configuration []ConfigurationParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + // +kubebuilder:validation:Optional + Duration *string `json:"duration" tf:"duration,omitempty"` + + // Plan code + // +kubebuilder:validation:Optional + PlanCode *string `json:"planCode" tf:"plan_code,omitempty"` + + // Pricing model identifier + // +kubebuilder:validation:Optional + PricingMode *string `json:"pricingMode" tf:"pricing_mode,omitempty"` +} + +type PrivatedatabaseInitParameters struct { + + // Name displayed in customer panel for your private database + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Ovh Subsidiary + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + Plan []PlanInitParameters `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + PlanOption []PlanOptionInitParameters `json:"planOption,omitempty" tf:"plan_option,omitempty"` + + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type PrivatedatabaseObservation struct { + + // Number of CPU on your private database + CPU *float64 `json:"cpu,omitempty" tf:"cpu,omitempty"` + + // Datacenter where this private database is located + Datacenter *string `json:"datacenter,omitempty" tf:"datacenter,omitempty"` + + // Name displayed in customer panel for your private database + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Private database hostname + Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + + // Private database FTP hostname + HostnameFtp *string `json:"hostnameFtp,omitempty" tf:"hostname_ftp,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Infrastructure where service was stored + Infrastructure *string `json:"infrastructure,omitempty" tf:"infrastructure,omitempty"` + + // Type of the private database offer + Offer *string `json:"offer,omitempty" tf:"offer,omitempty"` + + // Details about an Order + Order []OrderObservation `json:"order,omitempty" tf:"order,omitempty"` + + // Ovh Subsidiary + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + Plan []PlanObservation `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + PlanOption []PlanOptionObservation `json:"planOption,omitempty" tf:"plan_option,omitempty"` + + // Private database service port + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Private database FTP port + PortFtp *float64 `json:"portFtp,omitempty" tf:"port_ftp,omitempty"` + + // Space allowed (in MB) on your private database + QuotaSize *float64 `json:"quotaSize,omitempty" tf:"quota_size,omitempty"` + + // Sapce used (in MB) on your private database + QuotaUsed *float64 `json:"quotaUsed,omitempty" tf:"quota_used,omitempty"` + + // Amount of ram (in MB) on your private database + RAM *float64 `json:"ram,omitempty" tf:"ram,omitempty"` + + // Private database server name + Server *string `json:"server,omitempty" tf:"server,omitempty"` + + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Private database state + State *string `json:"state,omitempty" tf:"state,omitempty"` + + // Private database type + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` + + // Private database available versions + Version *string `json:"version,omitempty" tf:"version,omitempty"` + + // Private database version label + VersionLabel *string `json:"versionLabel,omitempty" tf:"version_label,omitempty"` + + // Private database version number + VersionNumber *float64 `json:"versionNumber,omitempty" tf:"version_number,omitempty"` +} + +type PrivatedatabaseParameters struct { + + // Name displayed in customer panel for your private database + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Ovh Subsidiary + // +kubebuilder:validation:Optional + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + // +kubebuilder:validation:Optional + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + // +kubebuilder:validation:Optional + Plan []PlanParameters `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + // +kubebuilder:validation:Optional + PlanOption []PlanOptionParameters `json:"planOption,omitempty" tf:"plan_option,omitempty"` + + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// PrivatedatabaseSpec defines the desired state of Privatedatabase +type PrivatedatabaseSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PrivatedatabaseParameters `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 PrivatedatabaseInitParameters `json:"initProvider,omitempty"` +} + +// PrivatedatabaseStatus defines the observed state of Privatedatabase. +type PrivatedatabaseStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PrivatedatabaseObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Privatedatabase is the Schema for the Privatedatabases 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 Privatedatabase struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" + Spec PrivatedatabaseSpec `json:"spec"` + Status PrivatedatabaseStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseList contains a list of Privatedatabases +type PrivatedatabaseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Privatedatabase `json:"items"` +} + +// Repository type metadata. +var ( + Privatedatabase_Kind = "Privatedatabase" + Privatedatabase_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Privatedatabase_Kind}.String() + Privatedatabase_KindAPIVersion = Privatedatabase_Kind + "." + CRDGroupVersion.String() + Privatedatabase_GroupVersionKind = CRDGroupVersion.WithKind(Privatedatabase_Kind) +) + +func init() { + SchemeBuilder.Register(&Privatedatabase{}, &PrivatedatabaseList{}) +} diff --git a/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go b/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go new file mode 100755 index 0000000..bbd789b --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_privatedatabasedatabase_types.go @@ -0,0 +1,111 @@ +// 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 PrivatedatabaseDatabaseInitParameters struct { + + // Name of your new database + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type PrivatedatabaseDatabaseObservation struct { + + // Name of your new database + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type PrivatedatabaseDatabaseParameters struct { + + // Name of your new database + // +kubebuilder:validation:Optional + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + // The internal name of your private database + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// PrivatedatabaseDatabaseSpec defines the desired state of PrivatedatabaseDatabase +type PrivatedatabaseDatabaseSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PrivatedatabaseDatabaseParameters `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 PrivatedatabaseDatabaseInitParameters `json:"initProvider,omitempty"` +} + +// PrivatedatabaseDatabaseStatus defines the observed state of PrivatedatabaseDatabase. +type PrivatedatabaseDatabaseStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PrivatedatabaseDatabaseObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseDatabase is the Schema for the PrivatedatabaseDatabases 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 PrivatedatabaseDatabase 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.databaseName) || (has(self.initProvider) && has(self.initProvider.databaseName))",message="spec.forProvider.databaseName 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 PrivatedatabaseDatabaseSpec `json:"spec"` + Status PrivatedatabaseDatabaseStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseDatabaseList contains a list of PrivatedatabaseDatabases +type PrivatedatabaseDatabaseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrivatedatabaseDatabase `json:"items"` +} + +// Repository type metadata. +var ( + PrivatedatabaseDatabase_Kind = "PrivatedatabaseDatabase" + PrivatedatabaseDatabase_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PrivatedatabaseDatabase_Kind}.String() + PrivatedatabaseDatabase_KindAPIVersion = PrivatedatabaseDatabase_Kind + "." + CRDGroupVersion.String() + PrivatedatabaseDatabase_GroupVersionKind = CRDGroupVersion.WithKind(PrivatedatabaseDatabase_Kind) +) + +func init() { + SchemeBuilder.Register(&PrivatedatabaseDatabase{}, &PrivatedatabaseDatabaseList{}) +} diff --git a/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go b/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go new file mode 100755 index 0000000..d8bd525 --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_privatedatabaseuser_types.go @@ -0,0 +1,115 @@ +// 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 PrivatedatabaseUserInitParameters struct { + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +type PrivatedatabaseUserObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +type PrivatedatabaseUserParameters struct { + + // Password for the new user ( alphanumeric and 8 characters minimum ) + // +kubebuilder:validation:Optional + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + + // The internal name of your private database + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + // +kubebuilder:validation:Optional + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +// PrivatedatabaseUserSpec defines the desired state of PrivatedatabaseUser +type PrivatedatabaseUserSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PrivatedatabaseUserParameters `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 PrivatedatabaseUserInitParameters `json:"initProvider,omitempty"` +} + +// PrivatedatabaseUserStatus defines the observed state of PrivatedatabaseUser. +type PrivatedatabaseUserStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PrivatedatabaseUserObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseUser is the Schema for the PrivatedatabaseUsers 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 PrivatedatabaseUser 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.passwordSecretRef)",message="spec.forProvider.passwordSecretRef is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userName) || (has(self.initProvider) && has(self.initProvider.userName))",message="spec.forProvider.userName is a required parameter" + Spec PrivatedatabaseUserSpec `json:"spec"` + Status PrivatedatabaseUserStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseUserList contains a list of PrivatedatabaseUsers +type PrivatedatabaseUserList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrivatedatabaseUser `json:"items"` +} + +// Repository type metadata. +var ( + PrivatedatabaseUser_Kind = "PrivatedatabaseUser" + PrivatedatabaseUser_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PrivatedatabaseUser_Kind}.String() + PrivatedatabaseUser_KindAPIVersion = PrivatedatabaseUser_Kind + "." + CRDGroupVersion.String() + PrivatedatabaseUser_GroupVersionKind = CRDGroupVersion.WithKind(PrivatedatabaseUser_Kind) +) + +func init() { + SchemeBuilder.Register(&PrivatedatabaseUser{}, &PrivatedatabaseUserList{}) +} diff --git a/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go b/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go new file mode 100755 index 0000000..4290ccd --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_privatedatabaseusergrant_types.go @@ -0,0 +1,133 @@ +// 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 PrivatedatabaseUserGrantInitParameters struct { + + // Database name where add grant + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + // Database name where add grant + Grant *string `json:"grant,omitempty" tf:"grant,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +type PrivatedatabaseUserGrantObservation struct { + + // Database name where add grant + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + // Database name where add grant + Grant *string `json:"grant,omitempty" tf:"grant,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +type PrivatedatabaseUserGrantParameters struct { + + // Database name where add grant + // +kubebuilder:validation:Optional + DatabaseName *string `json:"databaseName,omitempty" tf:"database_name,omitempty"` + + // Database name where add grant + // +kubebuilder:validation:Optional + Grant *string `json:"grant,omitempty" tf:"grant,omitempty"` + + // The internal name of your private database + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // User name used to connect on your databases + // +kubebuilder:validation:Optional + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` +} + +// PrivatedatabaseUserGrantSpec defines the desired state of PrivatedatabaseUserGrant +type PrivatedatabaseUserGrantSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PrivatedatabaseUserGrantParameters `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 PrivatedatabaseUserGrantInitParameters `json:"initProvider,omitempty"` +} + +// PrivatedatabaseUserGrantStatus defines the observed state of PrivatedatabaseUserGrant. +type PrivatedatabaseUserGrantStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PrivatedatabaseUserGrantObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseUserGrant is the Schema for the PrivatedatabaseUserGrants 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 PrivatedatabaseUserGrant 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.databaseName) || (has(self.initProvider) && has(self.initProvider.databaseName))",message="spec.forProvider.databaseName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.grant) || (has(self.initProvider) && has(self.initProvider.grant))",message="spec.forProvider.grant is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userName) || (has(self.initProvider) && has(self.initProvider.userName))",message="spec.forProvider.userName is a required parameter" + Spec PrivatedatabaseUserGrantSpec `json:"spec"` + Status PrivatedatabaseUserGrantStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseUserGrantList contains a list of PrivatedatabaseUserGrants +type PrivatedatabaseUserGrantList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrivatedatabaseUserGrant `json:"items"` +} + +// Repository type metadata. +var ( + PrivatedatabaseUserGrant_Kind = "PrivatedatabaseUserGrant" + PrivatedatabaseUserGrant_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PrivatedatabaseUserGrant_Kind}.String() + PrivatedatabaseUserGrant_KindAPIVersion = PrivatedatabaseUserGrant_Kind + "." + CRDGroupVersion.String() + PrivatedatabaseUserGrant_GroupVersionKind = CRDGroupVersion.WithKind(PrivatedatabaseUserGrant_Kind) +) + +func init() { + SchemeBuilder.Register(&PrivatedatabaseUserGrant{}, &PrivatedatabaseUserGrantList{}) +} diff --git a/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go b/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go new file mode 100755 index 0000000..0bc05f0 --- /dev/null +++ b/apis/privatesql/v1alpha1/zz_privatedatabasewhitelist_types.go @@ -0,0 +1,132 @@ +// 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 PrivatedatabaseWhitelistInitParameters struct { + + // The whitelisted IP in your instance + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Authorize this IP to access service port + Service *bool `json:"service,omitempty" tf:"service,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Authorize this IP to access SFTP port + Sftp *bool `json:"sftp,omitempty" tf:"sftp,omitempty"` +} + +type PrivatedatabaseWhitelistObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The whitelisted IP in your instance + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Authorize this IP to access service port + Service *bool `json:"service,omitempty" tf:"service,omitempty"` + + // The internal name of your private database + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Authorize this IP to access SFTP port + Sftp *bool `json:"sftp,omitempty" tf:"sftp,omitempty"` +} + +type PrivatedatabaseWhitelistParameters struct { + + // The whitelisted IP in your instance + // +kubebuilder:validation:Optional + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Authorize this IP to access service port + // +kubebuilder:validation:Optional + Service *bool `json:"service,omitempty" tf:"service,omitempty"` + + // The internal name of your private database + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Authorize this IP to access SFTP port + // +kubebuilder:validation:Optional + Sftp *bool `json:"sftp,omitempty" tf:"sftp,omitempty"` +} + +// PrivatedatabaseWhitelistSpec defines the desired state of PrivatedatabaseWhitelist +type PrivatedatabaseWhitelistSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PrivatedatabaseWhitelistParameters `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 PrivatedatabaseWhitelistInitParameters `json:"initProvider,omitempty"` +} + +// PrivatedatabaseWhitelistStatus defines the observed state of PrivatedatabaseWhitelist. +type PrivatedatabaseWhitelistStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PrivatedatabaseWhitelistObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseWhitelist is the Schema for the PrivatedatabaseWhitelists 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 PrivatedatabaseWhitelist struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ip) || (has(self.initProvider) && has(self.initProvider.ip))",message="spec.forProvider.ip is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.service) || (has(self.initProvider) && has(self.initProvider.service))",message="spec.forProvider.service is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.sftp) || (has(self.initProvider) && has(self.initProvider.sftp))",message="spec.forProvider.sftp is a required parameter" + Spec PrivatedatabaseWhitelistSpec `json:"spec"` + Status PrivatedatabaseWhitelistStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PrivatedatabaseWhitelistList contains a list of PrivatedatabaseWhitelists +type PrivatedatabaseWhitelistList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrivatedatabaseWhitelist `json:"items"` +} + +// Repository type metadata. +var ( + PrivatedatabaseWhitelist_Kind = "PrivatedatabaseWhitelist" + PrivatedatabaseWhitelist_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PrivatedatabaseWhitelist_Kind}.String() + PrivatedatabaseWhitelist_KindAPIVersion = PrivatedatabaseWhitelist_Kind + "." + CRDGroupVersion.String() + PrivatedatabaseWhitelist_GroupVersionKind = CRDGroupVersion.WithKind(PrivatedatabaseWhitelist_Kind) +) + +func init() { + SchemeBuilder.Register(&PrivatedatabaseWhitelist{}, &PrivatedatabaseWhitelistList{}) +} diff --git a/apis/storage/v1alpha1/zz_generated.deepcopy.go b/apis/storage/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..0eee299 --- /dev/null +++ b/apis/storage/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,237 @@ +//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 *ProjectRegionStoragePresign) DeepCopyInto(out *ProjectRegionStoragePresign) { + *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 ProjectRegionStoragePresign. +func (in *ProjectRegionStoragePresign) DeepCopy() *ProjectRegionStoragePresign { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresign) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectRegionStoragePresign) 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 *ProjectRegionStoragePresignInitParameters) DeepCopyInto(out *ProjectRegionStoragePresignInitParameters) { + *out = *in + if in.Expire != nil { + in, out := &in.Expire, &out.Expire + *out = new(float64) + **out = **in + } + if in.Method != nil { + in, out := &in.Method, &out.Method + *out = new(string) + **out = **in + } + if in.Object != nil { + in, out := &in.Object, &out.Object + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionStoragePresignInitParameters. +func (in *ProjectRegionStoragePresignInitParameters) DeepCopy() *ProjectRegionStoragePresignInitParameters { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionStoragePresignList) DeepCopyInto(out *ProjectRegionStoragePresignList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectRegionStoragePresign, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionStoragePresignList. +func (in *ProjectRegionStoragePresignList) DeepCopy() *ProjectRegionStoragePresignList { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectRegionStoragePresignList) 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 *ProjectRegionStoragePresignObservation) DeepCopyInto(out *ProjectRegionStoragePresignObservation) { + *out = *in + if in.Expire != nil { + in, out := &in.Expire, &out.Expire + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Method != nil { + in, out := &in.Method, &out.Method + *out = new(string) + **out = **in + } + if in.Object != nil { + in, out := &in.Object, &out.Object + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionStoragePresignObservation. +func (in *ProjectRegionStoragePresignObservation) DeepCopy() *ProjectRegionStoragePresignObservation { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionStoragePresignParameters) DeepCopyInto(out *ProjectRegionStoragePresignParameters) { + *out = *in + if in.Expire != nil { + in, out := &in.Expire, &out.Expire + *out = new(float64) + **out = **in + } + if in.Method != nil { + in, out := &in.Method, &out.Method + *out = new(string) + **out = **in + } + if in.Object != nil { + in, out := &in.Object, &out.Object + *out = new(string) + **out = **in + } + if in.RegionName != nil { + in, out := &in.RegionName, &out.RegionName + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionStoragePresignParameters. +func (in *ProjectRegionStoragePresignParameters) DeepCopy() *ProjectRegionStoragePresignParameters { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionStoragePresignSpec) DeepCopyInto(out *ProjectRegionStoragePresignSpec) { + *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 ProjectRegionStoragePresignSpec. +func (in *ProjectRegionStoragePresignSpec) DeepCopy() *ProjectRegionStoragePresignSpec { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRegionStoragePresignStatus) DeepCopyInto(out *ProjectRegionStoragePresignStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRegionStoragePresignStatus. +func (in *ProjectRegionStoragePresignStatus) DeepCopy() *ProjectRegionStoragePresignStatus { + if in == nil { + return nil + } + out := new(ProjectRegionStoragePresignStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/storage/v1alpha1/zz_generated.managed.go b/apis/storage/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..fc96cf6 --- /dev/null +++ b/apis/storage/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectRegionStoragePresign. +func (mg *ProjectRegionStoragePresign) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/storage/v1alpha1/zz_generated.managedlist.go b/apis/storage/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..17bbffa --- /dev/null +++ b/apis/storage/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this ProjectRegionStoragePresignList. +func (l *ProjectRegionStoragePresignList) 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/storage/v1alpha1/zz_generated_terraformed.go b/apis/storage/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..f3ba209 --- /dev/null +++ b/apis/storage/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,102 @@ +// 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 ProjectRegionStoragePresign +func (mg *ProjectRegionStoragePresign) GetTerraformResourceType() string { + return "ovh_cloud_project_region_storage_presign" +} + +// GetConnectionDetailsMapping for this ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) 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 ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) 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 ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) 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 ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) 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 ProjectRegionStoragePresign +func (tr *ProjectRegionStoragePresign) 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 ProjectRegionStoragePresign using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectRegionStoragePresign) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectRegionStoragePresignParameters{} + 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 *ProjectRegionStoragePresign) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/storage/v1alpha1/zz_groupversion_info.go b/apis/storage/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..c9cec4b --- /dev/null +++ b/apis/storage/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=storage.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 = "storage.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/storage/v1alpha1/zz_projectregionstoragepresign_types.go b/apis/storage/v1alpha1/zz_projectregionstoragepresign_types.go new file mode 100755 index 0000000..6e04bdc --- /dev/null +++ b/apis/storage/v1alpha1/zz_projectregionstoragepresign_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 ProjectRegionStoragePresignInitParameters struct { + + // How long (in seconds) the URL will be valid. + Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` + + Method *string `json:"method,omitempty" tf:"method,omitempty"` + + // Name of the object to download or upload. + Object *string `json:"object,omitempty" tf:"object,omitempty"` + + // Region name. + RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ProjectRegionStoragePresignObservation struct { + + // How long (in seconds) the URL will be valid. + Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Method *string `json:"method,omitempty" tf:"method,omitempty"` + + // Name of the object to download or upload. + Object *string `json:"object,omitempty" tf:"object,omitempty"` + + // Region name. + RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Presigned URL. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type ProjectRegionStoragePresignParameters struct { + + // How long (in seconds) the URL will be valid. + // +kubebuilder:validation:Optional + Expire *float64 `json:"expire,omitempty" tf:"expire,omitempty"` + + // +kubebuilder:validation:Optional + Method *string `json:"method,omitempty" tf:"method,omitempty"` + + // Name of the object to download or upload. + // +kubebuilder:validation:Optional + Object *string `json:"object,omitempty" tf:"object,omitempty"` + + // Region name. + // +kubebuilder:validation:Optional + RegionName *string `json:"regionName,omitempty" tf:"region_name,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// ProjectRegionStoragePresignSpec defines the desired state of ProjectRegionStoragePresign +type ProjectRegionStoragePresignSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectRegionStoragePresignParameters `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 ProjectRegionStoragePresignInitParameters `json:"initProvider,omitempty"` +} + +// ProjectRegionStoragePresignStatus defines the observed state of ProjectRegionStoragePresign. +type ProjectRegionStoragePresignStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectRegionStoragePresignObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectRegionStoragePresign is the Schema for the ProjectRegionStoragePresigns 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 ProjectRegionStoragePresign 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.expire) || (has(self.initProvider) && has(self.initProvider.expire))",message="spec.forProvider.expire is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.method) || (has(self.initProvider) && has(self.initProvider.method))",message="spec.forProvider.method is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.object) || (has(self.initProvider) && has(self.initProvider.object))",message="spec.forProvider.object is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.regionName) || (has(self.initProvider) && has(self.initProvider.regionName))",message="spec.forProvider.regionName 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 ProjectRegionStoragePresignSpec `json:"spec"` + Status ProjectRegionStoragePresignStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectRegionStoragePresignList contains a list of ProjectRegionStoragePresigns +type ProjectRegionStoragePresignList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectRegionStoragePresign `json:"items"` +} + +// Repository type metadata. +var ( + ProjectRegionStoragePresign_Kind = "ProjectRegionStoragePresign" + ProjectRegionStoragePresign_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectRegionStoragePresign_Kind}.String() + ProjectRegionStoragePresign_KindAPIVersion = ProjectRegionStoragePresign_Kind + "." + CRDGroupVersion.String() + ProjectRegionStoragePresign_GroupVersionKind = CRDGroupVersion.WithKind(ProjectRegionStoragePresign_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectRegionStoragePresign{}, &ProjectRegionStoragePresignList{}) +} diff --git a/apis/vrack/v1alpha1/zz_cloudproject_types.go b/apis/vrack/v1alpha1/zz_cloudproject_types.go new file mode 100755 index 0000000..392580b --- /dev/null +++ b/apis/vrack/v1alpha1/zz_cloudproject_types.go @@ -0,0 +1,105 @@ +// 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 CloudprojectInitParameters struct { + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Service name of the vrack resource. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type CloudprojectObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Service name of the vrack resource. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type CloudprojectParameters struct { + + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Service name of the vrack resource. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// CloudprojectSpec defines the desired state of Cloudproject +type CloudprojectSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider CloudprojectParameters `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 CloudprojectInitParameters `json:"initProvider,omitempty"` +} + +// CloudprojectStatus defines the observed state of Cloudproject. +type CloudprojectStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider CloudprojectObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Cloudproject is the Schema for the Cloudprojects 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 Cloudproject 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 CloudprojectSpec `json:"spec"` + Status CloudprojectStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// CloudprojectList contains a list of Cloudprojects +type CloudprojectList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Cloudproject `json:"items"` +} + +// Repository type metadata. +var ( + Cloudproject_Kind = "Cloudproject" + Cloudproject_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Cloudproject_Kind}.String() + Cloudproject_KindAPIVersion = Cloudproject_Kind + "." + CRDGroupVersion.String() + Cloudproject_GroupVersionKind = CRDGroupVersion.WithKind(Cloudproject_Kind) +) + +func init() { + SchemeBuilder.Register(&Cloudproject{}, &CloudprojectList{}) +} diff --git a/apis/vrack/v1alpha1/zz_dedicatedserver_types.go b/apis/vrack/v1alpha1/zz_dedicatedserver_types.go new file mode 100755 index 0000000..3aeb7b2 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_dedicatedserver_types.go @@ -0,0 +1,106 @@ +// 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 DedicatedServerInitParameters struct { + ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type DedicatedServerObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type DedicatedServerParameters struct { + + // +kubebuilder:validation:Optional + ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // Service name of the resource representing the id of the cloud project. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// DedicatedServerSpec defines the desired state of DedicatedServer +type DedicatedServerSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedServerParameters `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 DedicatedServerInitParameters `json:"initProvider,omitempty"` +} + +// DedicatedServerStatus defines the observed state of DedicatedServer. +type DedicatedServerStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedServerObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedServer is the Schema for the DedicatedServers 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 DedicatedServer 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.serverId) || (has(self.initProvider) && has(self.initProvider.serverId))",message="spec.forProvider.serverId 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 DedicatedServerSpec `json:"spec"` + Status DedicatedServerStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedServerList contains a list of DedicatedServers +type DedicatedServerList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedServer `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedServer_Kind = "DedicatedServer" + DedicatedServer_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedServer_Kind}.String() + DedicatedServer_KindAPIVersion = DedicatedServer_Kind + "." + CRDGroupVersion.String() + DedicatedServer_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedServer_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedServer{}, &DedicatedServerList{}) +} diff --git a/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go b/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go new file mode 100755 index 0000000..fc8f5d3 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_dedicatedserverinterface_types.go @@ -0,0 +1,106 @@ +// 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 DedicatedServerInterfaceInitParameters struct { + InterfaceID *string `json:"interfaceId,omitempty" tf:"interface_id,omitempty"` + + // Service name of the vrack resource. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type DedicatedServerInterfaceObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + InterfaceID *string `json:"interfaceId,omitempty" tf:"interface_id,omitempty"` + + // Service name of the vrack resource. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type DedicatedServerInterfaceParameters struct { + + // +kubebuilder:validation:Optional + InterfaceID *string `json:"interfaceId,omitempty" tf:"interface_id,omitempty"` + + // Service name of the vrack resource. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// DedicatedServerInterfaceSpec defines the desired state of DedicatedServerInterface +type DedicatedServerInterfaceSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedServerInterfaceParameters `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 DedicatedServerInterfaceInitParameters `json:"initProvider,omitempty"` +} + +// DedicatedServerInterfaceStatus defines the observed state of DedicatedServerInterface. +type DedicatedServerInterfaceStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedServerInterfaceObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedServerInterface is the Schema for the DedicatedServerInterfaces 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 DedicatedServerInterface 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.interfaceId) || (has(self.initProvider) && has(self.initProvider.interfaceId))",message="spec.forProvider.interfaceId 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 DedicatedServerInterfaceSpec `json:"spec"` + Status DedicatedServerInterfaceStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedServerInterfaceList contains a list of DedicatedServerInterfaces +type DedicatedServerInterfaceList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedServerInterface `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedServerInterface_Kind = "DedicatedServerInterface" + DedicatedServerInterface_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedServerInterface_Kind}.String() + DedicatedServerInterface_KindAPIVersion = DedicatedServerInterface_Kind + "." + CRDGroupVersion.String() + DedicatedServerInterface_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedServerInterface_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedServerInterface{}, &DedicatedServerInterfaceList{}) +} diff --git a/apis/vrack/v1alpha1/zz_generated.deepcopy.go b/apis/vrack/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..91d8a4a --- /dev/null +++ b/apis/vrack/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1680 @@ +//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 *Cloudproject) DeepCopyInto(out *Cloudproject) { + *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 Cloudproject. +func (in *Cloudproject) DeepCopy() *Cloudproject { + if in == nil { + return nil + } + out := new(Cloudproject) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Cloudproject) 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 *CloudprojectInitParameters) DeepCopyInto(out *CloudprojectInitParameters) { + *out = *in + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *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 CloudprojectInitParameters. +func (in *CloudprojectInitParameters) DeepCopy() *CloudprojectInitParameters { + if in == nil { + return nil + } + out := new(CloudprojectInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudprojectList) DeepCopyInto(out *CloudprojectList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Cloudproject, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudprojectList. +func (in *CloudprojectList) DeepCopy() *CloudprojectList { + if in == nil { + return nil + } + out := new(CloudprojectList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CloudprojectList) 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 *CloudprojectObservation) DeepCopyInto(out *CloudprojectObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *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 CloudprojectObservation. +func (in *CloudprojectObservation) DeepCopy() *CloudprojectObservation { + if in == nil { + return nil + } + out := new(CloudprojectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudprojectParameters) DeepCopyInto(out *CloudprojectParameters) { + *out = *in + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *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 CloudprojectParameters. +func (in *CloudprojectParameters) DeepCopy() *CloudprojectParameters { + if in == nil { + return nil + } + out := new(CloudprojectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudprojectSpec) DeepCopyInto(out *CloudprojectSpec) { + *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 CloudprojectSpec. +func (in *CloudprojectSpec) DeepCopy() *CloudprojectSpec { + if in == nil { + return nil + } + out := new(CloudprojectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CloudprojectStatus) DeepCopyInto(out *CloudprojectStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudprojectStatus. +func (in *CloudprojectStatus) DeepCopy() *CloudprojectStatus { + if in == nil { + return nil + } + out := new(CloudprojectStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationInitParameters) DeepCopyInto(out *ConfigurationInitParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationInitParameters. +func (in *ConfigurationInitParameters) DeepCopy() *ConfigurationInitParameters { + if in == nil { + return nil + } + out := new(ConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationObservation) DeepCopyInto(out *ConfigurationObservation) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationObservation. +func (in *ConfigurationObservation) DeepCopy() *ConfigurationObservation { + if in == nil { + return nil + } + out := new(ConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParameters) DeepCopyInto(out *ConfigurationParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParameters. +func (in *ConfigurationParameters) DeepCopy() *ConfigurationParameters { + if in == nil { + return nil + } + out := new(ConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServer) DeepCopyInto(out *DedicatedServer) { + *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 DedicatedServer. +func (in *DedicatedServer) DeepCopy() *DedicatedServer { + if in == nil { + return nil + } + out := new(DedicatedServer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedServer) 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 *DedicatedServerInitParameters) DeepCopyInto(out *DedicatedServerInitParameters) { + *out = *in + if in.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *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 DedicatedServerInitParameters. +func (in *DedicatedServerInitParameters) DeepCopy() *DedicatedServerInitParameters { + if in == nil { + return nil + } + out := new(DedicatedServerInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerInterface) DeepCopyInto(out *DedicatedServerInterface) { + *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 DedicatedServerInterface. +func (in *DedicatedServerInterface) DeepCopy() *DedicatedServerInterface { + if in == nil { + return nil + } + out := new(DedicatedServerInterface) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedServerInterface) 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 *DedicatedServerInterfaceInitParameters) DeepCopyInto(out *DedicatedServerInterfaceInitParameters) { + *out = *in + if in.InterfaceID != nil { + in, out := &in.InterfaceID, &out.InterfaceID + *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 DedicatedServerInterfaceInitParameters. +func (in *DedicatedServerInterfaceInitParameters) DeepCopy() *DedicatedServerInterfaceInitParameters { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerInterfaceList) DeepCopyInto(out *DedicatedServerInterfaceList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedServerInterface, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedServerInterfaceList. +func (in *DedicatedServerInterfaceList) DeepCopy() *DedicatedServerInterfaceList { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedServerInterfaceList) 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 *DedicatedServerInterfaceObservation) DeepCopyInto(out *DedicatedServerInterfaceObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InterfaceID != nil { + in, out := &in.InterfaceID, &out.InterfaceID + *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 DedicatedServerInterfaceObservation. +func (in *DedicatedServerInterfaceObservation) DeepCopy() *DedicatedServerInterfaceObservation { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerInterfaceParameters) DeepCopyInto(out *DedicatedServerInterfaceParameters) { + *out = *in + if in.InterfaceID != nil { + in, out := &in.InterfaceID, &out.InterfaceID + *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 DedicatedServerInterfaceParameters. +func (in *DedicatedServerInterfaceParameters) DeepCopy() *DedicatedServerInterfaceParameters { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerInterfaceSpec) DeepCopyInto(out *DedicatedServerInterfaceSpec) { + *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 DedicatedServerInterfaceSpec. +func (in *DedicatedServerInterfaceSpec) DeepCopy() *DedicatedServerInterfaceSpec { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerInterfaceStatus) DeepCopyInto(out *DedicatedServerInterfaceStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedServerInterfaceStatus. +func (in *DedicatedServerInterfaceStatus) DeepCopy() *DedicatedServerInterfaceStatus { + if in == nil { + return nil + } + out := new(DedicatedServerInterfaceStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerList) DeepCopyInto(out *DedicatedServerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedServer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedServerList. +func (in *DedicatedServerList) DeepCopy() *DedicatedServerList { + if in == nil { + return nil + } + out := new(DedicatedServerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedServerList) 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 *DedicatedServerObservation) DeepCopyInto(out *DedicatedServerObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *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 DedicatedServerObservation. +func (in *DedicatedServerObservation) DeepCopy() *DedicatedServerObservation { + if in == nil { + return nil + } + out := new(DedicatedServerObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerParameters) DeepCopyInto(out *DedicatedServerParameters) { + *out = *in + if in.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *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 DedicatedServerParameters. +func (in *DedicatedServerParameters) DeepCopy() *DedicatedServerParameters { + if in == nil { + return nil + } + out := new(DedicatedServerParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerSpec) DeepCopyInto(out *DedicatedServerSpec) { + *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 DedicatedServerSpec. +func (in *DedicatedServerSpec) DeepCopy() *DedicatedServerSpec { + if in == nil { + return nil + } + out := new(DedicatedServerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedServerStatus) DeepCopyInto(out *DedicatedServerStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedServerStatus. +func (in *DedicatedServerStatus) DeepCopy() *DedicatedServerStatus { + if in == nil { + return nil + } + out := new(DedicatedServerStatus) + 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 +} + +// 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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.OrderDetailID != nil { + in, out := &in.OrderDetailID, &out.OrderDetailID + *out = new(float64) + **out = **in + } + if in.Quantity != nil { + in, out := &in.Quantity, &out.Quantity + *out = new(string) + **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 +} + +// 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 *IP) DeepCopyInto(out *IP) { + *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 IP. +func (in *IP) DeepCopy() *IP { + if in == nil { + return nil + } + out := new(IP) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IP) 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 *IPInitParameters) DeepCopyInto(out *IPInitParameters) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *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 IPInitParameters. +func (in *IPInitParameters) DeepCopy() *IPInitParameters { + if in == nil { + return nil + } + out := new(IPInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPList) DeepCopyInto(out *IPList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IP, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPList. +func (in *IPList) DeepCopy() *IPList { + if in == nil { + return nil + } + out := new(IPList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IPList) 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 *IPObservation) DeepCopyInto(out *IPObservation) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *out = new(string) + **out = **in + } + if in.Gateway != nil { + in, out := &in.Gateway, &out.Gateway + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPObservation. +func (in *IPObservation) DeepCopy() *IPObservation { + if in == nil { + return nil + } + out := new(IPObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPParameters) DeepCopyInto(out *IPParameters) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *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 IPParameters. +func (in *IPParameters) DeepCopy() *IPParameters { + if in == nil { + return nil + } + out := new(IPParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPSpec) DeepCopyInto(out *IPSpec) { + *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 IPSpec. +func (in *IPSpec) DeepCopy() *IPSpec { + if in == nil { + return nil + } + out := new(IPSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPStatus) DeepCopyInto(out *IPStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPStatus. +func (in *IPStatus) DeepCopy() *IPStatus { + if in == nil { + return nil + } + out := new(IPStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Iploadbalancing) DeepCopyInto(out *Iploadbalancing) { + *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 Iploadbalancing. +func (in *Iploadbalancing) DeepCopy() *Iploadbalancing { + if in == nil { + return nil + } + out := new(Iploadbalancing) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Iploadbalancing) 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 *IploadbalancingInitParameters) DeepCopyInto(out *IploadbalancingInitParameters) { + *out = *in + if in.IPLoadbalancing != nil { + in, out := &in.IPLoadbalancing, &out.IPLoadbalancing + *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 IploadbalancingInitParameters. +func (in *IploadbalancingInitParameters) DeepCopy() *IploadbalancingInitParameters { + if in == nil { + return nil + } + out := new(IploadbalancingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IploadbalancingList) DeepCopyInto(out *IploadbalancingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Iploadbalancing, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IploadbalancingList. +func (in *IploadbalancingList) DeepCopy() *IploadbalancingList { + if in == nil { + return nil + } + out := new(IploadbalancingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IploadbalancingList) 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 *IploadbalancingObservation) DeepCopyInto(out *IploadbalancingObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPLoadbalancing != nil { + in, out := &in.IPLoadbalancing, &out.IPLoadbalancing + *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 IploadbalancingObservation. +func (in *IploadbalancingObservation) DeepCopy() *IploadbalancingObservation { + if in == nil { + return nil + } + out := new(IploadbalancingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IploadbalancingParameters) DeepCopyInto(out *IploadbalancingParameters) { + *out = *in + if in.IPLoadbalancing != nil { + in, out := &in.IPLoadbalancing, &out.IPLoadbalancing + *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 IploadbalancingParameters. +func (in *IploadbalancingParameters) DeepCopy() *IploadbalancingParameters { + if in == nil { + return nil + } + out := new(IploadbalancingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IploadbalancingSpec) DeepCopyInto(out *IploadbalancingSpec) { + *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 IploadbalancingSpec. +func (in *IploadbalancingSpec) DeepCopy() *IploadbalancingSpec { + if in == nil { + return nil + } + out := new(IploadbalancingSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IploadbalancingStatus) DeepCopyInto(out *IploadbalancingStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IploadbalancingStatus. +func (in *IploadbalancingStatus) DeepCopy() *IploadbalancingStatus { + if in == nil { + return nil + } + out := new(IploadbalancingStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrderInitParameters) DeepCopyInto(out *OrderInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderInitParameters. +func (in *OrderInitParameters) DeepCopy() *OrderInitParameters { + if in == nil { + return nil + } + out := new(OrderInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrderObservation) DeepCopyInto(out *OrderObservation) { + *out = *in + if in.Date != nil { + in, out := &in.Date, &out.Date + *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.ExpirationDate != nil { + in, out := &in.ExpirationDate, &out.ExpirationDate + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderObservation. +func (in *OrderObservation) DeepCopy() *OrderObservation { + if in == nil { + return nil + } + out := new(OrderObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OrderParameters) DeepCopyInto(out *OrderParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OrderParameters. +func (in *OrderParameters) DeepCopy() *OrderParameters { + if in == nil { + return nil + } + out := new(OrderParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanInitParameters) DeepCopyInto(out *PlanInitParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanInitParameters. +func (in *PlanInitParameters) DeepCopy() *PlanInitParameters { + if in == nil { + return nil + } + out := new(PlanInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanObservation) DeepCopyInto(out *PlanObservation) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanObservation. +func (in *PlanObservation) DeepCopy() *PlanObservation { + if in == nil { + return nil + } + out := new(PlanObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationInitParameters) DeepCopyInto(out *PlanOptionConfigurationInitParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationInitParameters. +func (in *PlanOptionConfigurationInitParameters) DeepCopy() *PlanOptionConfigurationInitParameters { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationObservation) DeepCopyInto(out *PlanOptionConfigurationObservation) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationObservation. +func (in *PlanOptionConfigurationObservation) DeepCopy() *PlanOptionConfigurationObservation { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionConfigurationParameters) DeepCopyInto(out *PlanOptionConfigurationParameters) { + *out = *in + if in.Label != nil { + in, out := &in.Label, &out.Label + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionConfigurationParameters. +func (in *PlanOptionConfigurationParameters) DeepCopy() *PlanOptionConfigurationParameters { + if in == nil { + return nil + } + out := new(PlanOptionConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionInitParameters) DeepCopyInto(out *PlanOptionInitParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionInitParameters. +func (in *PlanOptionInitParameters) DeepCopy() *PlanOptionInitParameters { + if in == nil { + return nil + } + out := new(PlanOptionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionObservation) DeepCopyInto(out *PlanOptionObservation) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionObservation. +func (in *PlanOptionObservation) DeepCopy() *PlanOptionObservation { + if in == nil { + return nil + } + out := new(PlanOptionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanOptionParameters) DeepCopyInto(out *PlanOptionParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]PlanOptionConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanOptionParameters. +func (in *PlanOptionParameters) DeepCopy() *PlanOptionParameters { + if in == nil { + return nil + } + out := new(PlanOptionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PlanParameters) DeepCopyInto(out *PlanParameters) { + *out = *in + if in.CatalogName != nil { + in, out := &in.CatalogName, &out.CatalogName + *out = new(string) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Duration != nil { + in, out := &in.Duration, &out.Duration + *out = new(string) + **out = **in + } + if in.PlanCode != nil { + in, out := &in.PlanCode, &out.PlanCode + *out = new(string) + **out = **in + } + if in.PricingMode != nil { + in, out := &in.PricingMode, &out.PricingMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanParameters. +func (in *PlanParameters) DeepCopy() *PlanParameters { + if in == nil { + return nil + } + out := new(PlanParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Vrack) DeepCopyInto(out *Vrack) { + *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 Vrack. +func (in *Vrack) DeepCopy() *Vrack { + if in == nil { + return nil + } + out := new(Vrack) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Vrack) 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 *VrackInitParameters) DeepCopyInto(out *VrackInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VrackInitParameters. +func (in *VrackInitParameters) DeepCopy() *VrackInitParameters { + if in == nil { + return nil + } + out := new(VrackInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VrackList) DeepCopyInto(out *VrackList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Vrack, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VrackList. +func (in *VrackList) DeepCopy() *VrackList { + if in == nil { + return nil + } + out := new(VrackList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VrackList) 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 *VrackObservation) DeepCopyInto(out *VrackObservation) { + *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.Order != nil { + in, out := &in.Order, &out.Order + *out = make([]OrderObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionObservation, 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.Urn != nil { + in, out := &in.Urn, &out.Urn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VrackObservation. +func (in *VrackObservation) DeepCopy() *VrackObservation { + if in == nil { + return nil + } + out := new(VrackObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VrackParameters) DeepCopyInto(out *VrackParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.OvhSubsidiary != nil { + in, out := &in.OvhSubsidiary, &out.OvhSubsidiary + *out = new(string) + **out = **in + } + if in.PaymentMean != nil { + in, out := &in.PaymentMean, &out.PaymentMean + *out = new(string) + **out = **in + } + if in.Plan != nil { + in, out := &in.Plan, &out.Plan + *out = make([]PlanParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PlanOption != nil { + in, out := &in.PlanOption, &out.PlanOption + *out = make([]PlanOptionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VrackParameters. +func (in *VrackParameters) DeepCopy() *VrackParameters { + if in == nil { + return nil + } + out := new(VrackParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VrackSpec) DeepCopyInto(out *VrackSpec) { + *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 VrackSpec. +func (in *VrackSpec) DeepCopy() *VrackSpec { + if in == nil { + return nil + } + out := new(VrackSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VrackStatus) DeepCopyInto(out *VrackStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VrackStatus. +func (in *VrackStatus) DeepCopy() *VrackStatus { + if in == nil { + return nil + } + out := new(VrackStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/vrack/v1alpha1/zz_generated.managed.go b/apis/vrack/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..0ae1b08 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_generated.managed.go @@ -0,0 +1,368 @@ +/* +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 Cloudproject. +func (mg *Cloudproject) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Cloudproject. +func (mg *Cloudproject) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Cloudproject. +func (mg *Cloudproject) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Cloudproject. +func (mg *Cloudproject) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Cloudproject. +func (mg *Cloudproject) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Cloudproject. +func (mg *Cloudproject) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Cloudproject. +func (mg *Cloudproject) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Cloudproject. +func (mg *Cloudproject) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Cloudproject. +func (mg *Cloudproject) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Cloudproject. +func (mg *Cloudproject) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Cloudproject. +func (mg *Cloudproject) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Cloudproject. +func (mg *Cloudproject) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this DedicatedServer. +func (mg *DedicatedServer) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this DedicatedServer. +func (mg *DedicatedServer) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this DedicatedServer. +func (mg *DedicatedServer) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this DedicatedServer. +func (mg *DedicatedServer) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this DedicatedServer. +func (mg *DedicatedServer) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this DedicatedServer. +func (mg *DedicatedServer) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this DedicatedServer. +func (mg *DedicatedServer) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this DedicatedServer. +func (mg *DedicatedServer) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this DedicatedServer. +func (mg *DedicatedServer) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this DedicatedServer. +func (mg *DedicatedServer) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this DedicatedServer. +func (mg *DedicatedServer) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this DedicatedServer. +func (mg *DedicatedServer) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this DedicatedServerInterface. +func (mg *DedicatedServerInterface) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this IP. +func (mg *IP) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this IP. +func (mg *IP) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this IP. +func (mg *IP) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this IP. +func (mg *IP) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this IP. +func (mg *IP) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this IP. +func (mg *IP) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this IP. +func (mg *IP) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this IP. +func (mg *IP) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this IP. +func (mg *IP) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this IP. +func (mg *IP) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this IP. +func (mg *IP) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this IP. +func (mg *IP) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Iploadbalancing. +func (mg *Iploadbalancing) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Iploadbalancing. +func (mg *Iploadbalancing) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Iploadbalancing. +func (mg *Iploadbalancing) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Iploadbalancing. +func (mg *Iploadbalancing) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Iploadbalancing. +func (mg *Iploadbalancing) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Iploadbalancing. +func (mg *Iploadbalancing) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Iploadbalancing. +func (mg *Iploadbalancing) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Iploadbalancing. +func (mg *Iploadbalancing) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Iploadbalancing. +func (mg *Iploadbalancing) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Iploadbalancing. +func (mg *Iploadbalancing) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Iploadbalancing. +func (mg *Iploadbalancing) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Iploadbalancing. +func (mg *Iploadbalancing) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Vrack. +func (mg *Vrack) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Vrack. +func (mg *Vrack) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Vrack. +func (mg *Vrack) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Vrack. +func (mg *Vrack) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Vrack. +func (mg *Vrack) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Vrack. +func (mg *Vrack) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Vrack. +func (mg *Vrack) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Vrack. +func (mg *Vrack) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Vrack. +func (mg *Vrack) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Vrack. +func (mg *Vrack) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Vrack. +func (mg *Vrack) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Vrack. +func (mg *Vrack) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/vrack/v1alpha1/zz_generated.managedlist.go b/apis/vrack/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..b4dd0f6 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,62 @@ +/* +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 CloudprojectList. +func (l *CloudprojectList) 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 DedicatedServerInterfaceList. +func (l *DedicatedServerInterfaceList) 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 DedicatedServerList. +func (l *DedicatedServerList) 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 IPList. +func (l *IPList) 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 IploadbalancingList. +func (l *IploadbalancingList) 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 VrackList. +func (l *VrackList) 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/vrack/v1alpha1/zz_generated_terraformed.go b/apis/vrack/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..652bfb0 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,522 @@ +// 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 Vrack +func (mg *Vrack) GetTerraformResourceType() string { + return "ovh_vrack" +} + +// GetConnectionDetailsMapping for this Vrack +func (tr *Vrack) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Vrack +func (tr *Vrack) 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 Vrack +func (tr *Vrack) 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 Vrack +func (tr *Vrack) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Vrack +func (tr *Vrack) 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 Vrack +func (tr *Vrack) 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 Vrack +func (tr *Vrack) 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 Vrack using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Vrack) LateInitialize(attrs []byte) (bool, error) { + params := &VrackParameters{} + 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 *Vrack) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Cloudproject +func (mg *Cloudproject) GetTerraformResourceType() string { + return "ovh_vrack_cloudproject" +} + +// GetConnectionDetailsMapping for this Cloudproject +func (tr *Cloudproject) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Cloudproject +func (tr *Cloudproject) 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 Cloudproject +func (tr *Cloudproject) 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 Cloudproject +func (tr *Cloudproject) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Cloudproject +func (tr *Cloudproject) 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 Cloudproject +func (tr *Cloudproject) 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 Cloudproject +func (tr *Cloudproject) 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 Cloudproject using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Cloudproject) LateInitialize(attrs []byte) (bool, error) { + params := &CloudprojectParameters{} + 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 *Cloudproject) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedServer +func (mg *DedicatedServer) GetTerraformResourceType() string { + return "ovh_vrack_dedicated_server" +} + +// GetConnectionDetailsMapping for this DedicatedServer +func (tr *DedicatedServer) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedServer +func (tr *DedicatedServer) 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 DedicatedServer +func (tr *DedicatedServer) 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 DedicatedServer +func (tr *DedicatedServer) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedServer +func (tr *DedicatedServer) 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 DedicatedServer +func (tr *DedicatedServer) 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 DedicatedServer +func (tr *DedicatedServer) 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 DedicatedServer using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedServer) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedServerParameters{} + 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 *DedicatedServer) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedServerInterface +func (mg *DedicatedServerInterface) GetTerraformResourceType() string { + return "ovh_vrack_dedicated_server_interface" +} + +// GetConnectionDetailsMapping for this DedicatedServerInterface +func (tr *DedicatedServerInterface) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedServerInterface +func (tr *DedicatedServerInterface) 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 DedicatedServerInterface +func (tr *DedicatedServerInterface) 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 DedicatedServerInterface +func (tr *DedicatedServerInterface) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedServerInterface +func (tr *DedicatedServerInterface) 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 DedicatedServerInterface +func (tr *DedicatedServerInterface) 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 DedicatedServerInterface +func (tr *DedicatedServerInterface) 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 DedicatedServerInterface using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedServerInterface) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedServerInterfaceParameters{} + 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 *DedicatedServerInterface) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IP +func (mg *IP) GetTerraformResourceType() string { + return "ovh_vrack_ip" +} + +// GetConnectionDetailsMapping for this IP +func (tr *IP) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IP +func (tr *IP) 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 IP +func (tr *IP) 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 IP +func (tr *IP) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IP +func (tr *IP) 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 IP +func (tr *IP) 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 IP +func (tr *IP) 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 IP using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IP) LateInitialize(attrs []byte) (bool, error) { + params := &IPParameters{} + 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 *IP) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Iploadbalancing +func (mg *Iploadbalancing) GetTerraformResourceType() string { + return "ovh_vrack_iploadbalancing" +} + +// GetConnectionDetailsMapping for this Iploadbalancing +func (tr *Iploadbalancing) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Iploadbalancing +func (tr *Iploadbalancing) 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 Iploadbalancing +func (tr *Iploadbalancing) 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 Iploadbalancing +func (tr *Iploadbalancing) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Iploadbalancing +func (tr *Iploadbalancing) 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 Iploadbalancing +func (tr *Iploadbalancing) 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 Iploadbalancing +func (tr *Iploadbalancing) 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 Iploadbalancing using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Iploadbalancing) LateInitialize(attrs []byte) (bool, error) { + params := &IploadbalancingParameters{} + 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 *Iploadbalancing) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/vrack/v1alpha1/zz_groupversion_info.go b/apis/vrack/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..0999744 --- /dev/null +++ b/apis/vrack/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=vrack.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 = "vrack.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/vrack/v1alpha1/zz_ip_types.go b/apis/vrack/v1alpha1/zz_ip_types.go new file mode 100755 index 0000000..5a57270 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_ip_types.go @@ -0,0 +1,120 @@ +// 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 IPInitParameters struct { + + // Your IP block. + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // The internal name of your vrack + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type IPObservation struct { + + // Your IP block. + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // Your gateway + Gateway *string `json:"gateway,omitempty" tf:"gateway,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Your IP block + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // The internal name of your vrack + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Where you want your block announced on the network + Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` +} + +type IPParameters struct { + + // Your IP block. + // +kubebuilder:validation:Optional + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // The internal name of your vrack + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// IPSpec defines the desired state of IP +type IPSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IPParameters `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 IPInitParameters `json:"initProvider,omitempty"` +} + +// IPStatus defines the observed state of IP. +type IPStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider IPObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IP is the Schema for the IPs 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 IP 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.block) || (has(self.initProvider) && has(self.initProvider.block))",message="spec.forProvider.block 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 IPSpec `json:"spec"` + Status IPStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IPList contains a list of IPs +type IPList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IP `json:"items"` +} + +// Repository type metadata. +var ( + IP_Kind = "IP" + IP_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IP_Kind}.String() + IP_KindAPIVersion = IP_Kind + "." + CRDGroupVersion.String() + IP_GroupVersionKind = CRDGroupVersion.WithKind(IP_Kind) +) + +func init() { + SchemeBuilder.Register(&IP{}, &IPList{}) +} diff --git a/apis/vrack/v1alpha1/zz_iploadbalancing_types.go b/apis/vrack/v1alpha1/zz_iploadbalancing_types.go new file mode 100755 index 0000000..ebed17d --- /dev/null +++ b/apis/vrack/v1alpha1/zz_iploadbalancing_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 IploadbalancingInitParameters struct { + + // Your ipLoadbalancing + IPLoadbalancing *string `json:"ipLoadbalancing,omitempty" tf:"ip_loadbalancing,omitempty"` + + // The internal name of your vrack + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type IploadbalancingObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Your ipLoadbalancing + IPLoadbalancing *string `json:"ipLoadbalancing,omitempty" tf:"ip_loadbalancing,omitempty"` + + // The internal name of your vrack + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type IploadbalancingParameters struct { + + // Your ipLoadbalancing + // +kubebuilder:validation:Optional + IPLoadbalancing *string `json:"ipLoadbalancing,omitempty" tf:"ip_loadbalancing,omitempty"` + + // The internal name of your vrack + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// IploadbalancingSpec defines the desired state of Iploadbalancing +type IploadbalancingSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IploadbalancingParameters `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 IploadbalancingInitParameters `json:"initProvider,omitempty"` +} + +// IploadbalancingStatus defines the observed state of Iploadbalancing. +type IploadbalancingStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider IploadbalancingObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Iploadbalancing is the Schema for the Iploadbalancings 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 Iploadbalancing struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ipLoadbalancing) || (has(self.initProvider) && has(self.initProvider.ipLoadbalancing))",message="spec.forProvider.ipLoadbalancing 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 IploadbalancingSpec `json:"spec"` + Status IploadbalancingStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IploadbalancingList contains a list of Iploadbalancings +type IploadbalancingList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Iploadbalancing `json:"items"` +} + +// Repository type metadata. +var ( + Iploadbalancing_Kind = "Iploadbalancing" + Iploadbalancing_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Iploadbalancing_Kind}.String() + Iploadbalancing_KindAPIVersion = Iploadbalancing_Kind + "." + CRDGroupVersion.String() + Iploadbalancing_GroupVersionKind = CRDGroupVersion.WithKind(Iploadbalancing_Kind) +) + +func init() { + SchemeBuilder.Register(&Iploadbalancing{}, &IploadbalancingList{}) +} diff --git a/apis/vrack/v1alpha1/zz_vrack_types.go b/apis/vrack/v1alpha1/zz_vrack_types.go new file mode 100755 index 0000000..a0156c0 --- /dev/null +++ b/apis/vrack/v1alpha1/zz_vrack_types.go @@ -0,0 +1,357 @@ +// 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 ConfigurationInitParameters struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConfigurationObservation struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConfigurationParameters struct { + + // Identifier of the resource + // +kubebuilder:validation:Optional + Label *string `json:"label" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type DetailsInitParameters struct { +} + +type DetailsObservation struct { + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + OrderDetailID *float64 `json:"orderDetailId,omitempty" tf:"order_detail_id,omitempty"` + + Quantity *string `json:"quantity,omitempty" tf:"quantity,omitempty"` +} + +type DetailsParameters struct { +} + +type OrderInitParameters struct { +} + +type OrderObservation struct { + Date *string `json:"date,omitempty" tf:"date,omitempty"` + + Details []DetailsObservation `json:"details,omitempty" tf:"details,omitempty"` + + ExpirationDate *string `json:"expirationDate,omitempty" tf:"expiration_date,omitempty"` + + OrderID *float64 `json:"orderId,omitempty" tf:"order_id,omitempty"` +} + +type OrderParameters struct { +} + +type PlanInitParameters struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []ConfigurationInitParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanObservation struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []ConfigurationObservation `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionConfigurationInitParameters struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type PlanOptionConfigurationObservation struct { + + // Identifier of the resource + Label *string `json:"label,omitempty" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type PlanOptionConfigurationParameters struct { + + // Identifier of the resource + // +kubebuilder:validation:Optional + Label *string `json:"label" tf:"label,omitempty"` + + // Path to the resource in API.OVH.COM + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type PlanOptionInitParameters struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []PlanOptionConfigurationInitParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionObservation struct { + + // Catalog name + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + Configuration []PlanOptionConfigurationObservation `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // Plan code + PlanCode *string `json:"planCode,omitempty" tf:"plan_code,omitempty"` + + // Pricing model identifier + PricingMode *string `json:"pricingMode,omitempty" tf:"pricing_mode,omitempty"` +} + +type PlanOptionParameters struct { + + // Catalog name + // +kubebuilder:validation:Optional + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + // +kubebuilder:validation:Optional + Configuration []PlanOptionConfigurationParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + // +kubebuilder:validation:Optional + Duration *string `json:"duration" tf:"duration,omitempty"` + + // Plan code + // +kubebuilder:validation:Optional + PlanCode *string `json:"planCode" tf:"plan_code,omitempty"` + + // Pricing model identifier + // +kubebuilder:validation:Optional + PricingMode *string `json:"pricingMode" tf:"pricing_mode,omitempty"` +} + +type PlanParameters struct { + + // Catalog name + // +kubebuilder:validation:Optional + CatalogName *string `json:"catalogName,omitempty" tf:"catalog_name,omitempty"` + + // Representation of a configuration item for personalizing product + // +kubebuilder:validation:Optional + Configuration []ConfigurationParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // duration + // +kubebuilder:validation:Optional + Duration *string `json:"duration" tf:"duration,omitempty"` + + // Plan code + // +kubebuilder:validation:Optional + PlanCode *string `json:"planCode" tf:"plan_code,omitempty"` + + // Pricing model identifier + // +kubebuilder:validation:Optional + PricingMode *string `json:"pricingMode" tf:"pricing_mode,omitempty"` +} + +type VrackInitParameters struct { + + // yourvrackdescription + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Ovh Subsidiary + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + Plan []PlanInitParameters `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + PlanOption []PlanOptionInitParameters `json:"planOption,omitempty" tf:"plan_option,omitempty"` +} + +type VrackObservation struct { + + // yourvrackdescription + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Details about an Order + Order []OrderObservation `json:"order,omitempty" tf:"order,omitempty"` + + // Ovh Subsidiary + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + Plan []PlanObservation `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + PlanOption []PlanOptionObservation `json:"planOption,omitempty" tf:"plan_option,omitempty"` + + // The internal name of your vrack + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` +} + +type VrackParameters struct { + + // yourvrackdescription + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Ovh Subsidiary + // +kubebuilder:validation:Optional + OvhSubsidiary *string `json:"ovhSubsidiary,omitempty" tf:"ovh_subsidiary,omitempty"` + + // Ovh payment mode + // +kubebuilder:validation:Optional + PaymentMean *string `json:"paymentMean,omitempty" tf:"payment_mean,omitempty"` + + // Product Plan to order + // +kubebuilder:validation:Optional + Plan []PlanParameters `json:"plan,omitempty" tf:"plan,omitempty"` + + // Product Plan to order + // +kubebuilder:validation:Optional + PlanOption []PlanOptionParameters `json:"planOption,omitempty" tf:"plan_option,omitempty"` +} + +// VrackSpec defines the desired state of Vrack +type VrackSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VrackParameters `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 VrackInitParameters `json:"initProvider,omitempty"` +} + +// VrackStatus defines the observed state of Vrack. +type VrackStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider VrackObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Vrack is the Schema for the Vracks 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 Vrack struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" + Spec VrackSpec `json:"spec"` + Status VrackStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VrackList contains a list of Vracks +type VrackList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Vrack `json:"items"` +} + +// Repository type metadata. +var ( + Vrack_Kind = "Vrack" + Vrack_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Vrack_Kind}.String() + Vrack_KindAPIVersion = Vrack_Kind + "." + CRDGroupVersion.String() + Vrack_GroupVersionKind = CRDGroupVersion.WithKind(Vrack_Kind) +) + +func init() { + SchemeBuilder.Register(&Vrack{}, &VrackList{}) +} diff --git a/apis/zz_register.go b/apis/zz_register.go index 1311b72..c94290a 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -25,10 +25,13 @@ import ( v1alpha1logs "github.com/edixos/provider-ovh/apis/logs/v1alpha1" v1alpha1nas "github.com/edixos/provider-ovh/apis/nas/v1alpha1" v1alpha1pcn "github.com/edixos/provider-ovh/apis/pcn/v1alpha1" + v1alpha1privatesql "github.com/edixos/provider-ovh/apis/privatesql/v1alpha1" v1alpha1registry "github.com/edixos/provider-ovh/apis/registry/v1alpha1" + v1alpha1storage "github.com/edixos/provider-ovh/apis/storage/v1alpha1" v1alpha1apis "github.com/edixos/provider-ovh/apis/v1alpha1" v1beta1 "github.com/edixos/provider-ovh/apis/v1beta1" v1alpha1vminstances "github.com/edixos/provider-ovh/apis/vminstances/v1alpha1" + v1alpha1vrack "github.com/edixos/provider-ovh/apis/vrack/v1alpha1" ) func init() { @@ -45,10 +48,13 @@ func init() { v1alpha1logs.SchemeBuilder.AddToScheme, v1alpha1nas.SchemeBuilder.AddToScheme, v1alpha1pcn.SchemeBuilder.AddToScheme, + v1alpha1privatesql.SchemeBuilder.AddToScheme, v1alpha1registry.SchemeBuilder.AddToScheme, + v1alpha1storage.SchemeBuilder.AddToScheme, v1alpha1apis.SchemeBuilder.AddToScheme, v1beta1.SchemeBuilder.AddToScheme, v1alpha1vminstances.SchemeBuilder.AddToScheme, + v1alpha1vrack.SchemeBuilder.AddToScheme, ) } diff --git a/config/external_name.go b/config/external_name.go index 0a5aa42..5168e50 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -78,6 +78,18 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_dedicated_nasha_partition": config.NameAsIdentifier, "ovh_dedicated_nasha_partition_access": config.NameAsIdentifier, "ovh_dedicated_nasha_partition_snapshot": config.NameAsIdentifier, + "ovh_cloud_project_region_storage_presign": config.NameAsIdentifier, + "ovh_hosting_privatedatabase": config.NameAsIdentifier, + "ovh_hosting_privatedatabase_database": config.NameAsIdentifier, + "ovh_hosting_privatedatabase_user": config.NameAsIdentifier, + "ovh_hosting_privatedatabase_user_grant": config.NameAsIdentifier, + "ovh_hosting_privatedatabase_whitelist": config.NameAsIdentifier, + "ovh_vrack": config.NameAsIdentifier, + "ovh_vrack_cloudproject": config.NameAsIdentifier, + "ovh_vrack_dedicated_server": config.NameAsIdentifier, + "ovh_vrack_dedicated_server_interface": config.NameAsIdentifier, + "ovh_vrack_ip": config.NameAsIdentifier, + "ovh_vrack_iploadbalancing": config.NameAsIdentifier, } // ExternalNameConfigurations applies all external name configs listed in the diff --git a/config/object_storage/config.go b/config/object_storage/config.go new file mode 100644 index 0000000..949176e --- /dev/null +++ b/config/object_storage/config.go @@ -0,0 +1,15 @@ +package object_storage + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "storage" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_cloud_project_region_storage_presign", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + +} diff --git a/config/provider.go b/config/provider.go index 8b229a3..ce03724 100644 --- a/config/provider.go +++ b/config/provider.go @@ -8,6 +8,12 @@ import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" + "github.com/edixos/provider-ovh/config/vrack" + + "github.com/edixos/provider-ovh/config/web_cloud_private_sql" + + "github.com/edixos/provider-ovh/config/object_storage" + "github.com/edixos/provider-ovh/config/nas" "github.com/edixos/provider-ovh/config/registry" @@ -71,6 +77,9 @@ func GetProvider() *ujconfig.Provider { kube.Configure, registry.Configure, nas.Configure, + object_storage.Configure, + web_cloud_private_sql.Configure, + vrack.Configure, } { configure(pc) } diff --git a/config/vrack/config.go b/config/vrack/config.go new file mode 100644 index 0000000..c733ce2 --- /dev/null +++ b/config/vrack/config.go @@ -0,0 +1,29 @@ +package vrack + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "vrack" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_vrack", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_vrack_cloudproject", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_vrack_dedicated_server", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_vrack_dedicated_server_interface", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_vrack_ip", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_vrack_iploadbalancing", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) +} diff --git a/config/web_cloud_private_sql/config.go b/config/web_cloud_private_sql/config.go new file mode 100644 index 0000000..0c281b9 --- /dev/null +++ b/config/web_cloud_private_sql/config.go @@ -0,0 +1,26 @@ +package web_cloud_private_sql + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "privatesql" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_hosting_privatedatabase", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_hosting_privatedatabase_database", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_hosting_privatedatabase_user", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_hosting_privatedatabase_user_grant", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_hosting_privatedatabase_whitelist", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) +} diff --git a/internal/controller/privatesql/privatedatabase/zz_controller.go b/internal/controller/privatesql/privatedatabase/zz_controller.go new file mode 100755 index 0000000..6667166 --- /dev/null +++ b/internal/controller/privatesql/privatedatabase/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 privatedatabase + +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/privatesql/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Privatedatabase managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Privatedatabase_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.Privatedatabase_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Privatedatabase_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_hosting_privatedatabase"], 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.Privatedatabase_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Privatedatabase{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/privatesql/privatedatabasedatabase/zz_controller.go b/internal/controller/privatesql/privatedatabasedatabase/zz_controller.go new file mode 100755 index 0000000..75f6c11 --- /dev/null +++ b/internal/controller/privatesql/privatedatabasedatabase/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 privatedatabasedatabase + +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/privatesql/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles PrivatedatabaseDatabase managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PrivatedatabaseDatabase_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.PrivatedatabaseDatabase_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PrivatedatabaseDatabase_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_hosting_privatedatabase_database"], 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.PrivatedatabaseDatabase_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PrivatedatabaseDatabase{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/privatesql/privatedatabaseuser/zz_controller.go b/internal/controller/privatesql/privatedatabaseuser/zz_controller.go new file mode 100755 index 0000000..e05e02f --- /dev/null +++ b/internal/controller/privatesql/privatedatabaseuser/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 privatedatabaseuser + +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/privatesql/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles PrivatedatabaseUser managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PrivatedatabaseUser_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.PrivatedatabaseUser_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PrivatedatabaseUser_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_hosting_privatedatabase_user"], 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.PrivatedatabaseUser_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PrivatedatabaseUser{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/privatesql/privatedatabaseusergrant/zz_controller.go b/internal/controller/privatesql/privatedatabaseusergrant/zz_controller.go new file mode 100755 index 0000000..cef3939 --- /dev/null +++ b/internal/controller/privatesql/privatedatabaseusergrant/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 privatedatabaseusergrant + +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/privatesql/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles PrivatedatabaseUserGrant managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PrivatedatabaseUserGrant_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.PrivatedatabaseUserGrant_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PrivatedatabaseUserGrant_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_hosting_privatedatabase_user_grant"], 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.PrivatedatabaseUserGrant_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PrivatedatabaseUserGrant{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/privatesql/privatedatabasewhitelist/zz_controller.go b/internal/controller/privatesql/privatedatabasewhitelist/zz_controller.go new file mode 100755 index 0000000..fd30ba8 --- /dev/null +++ b/internal/controller/privatesql/privatedatabasewhitelist/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 privatedatabasewhitelist + +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/privatesql/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles PrivatedatabaseWhitelist managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PrivatedatabaseWhitelist_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.PrivatedatabaseWhitelist_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PrivatedatabaseWhitelist_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_hosting_privatedatabase_whitelist"], 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.PrivatedatabaseWhitelist_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PrivatedatabaseWhitelist{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/storage/projectregionstoragepresign/zz_controller.go b/internal/controller/storage/projectregionstoragepresign/zz_controller.go new file mode 100755 index 0000000..e0bacc3 --- /dev/null +++ b/internal/controller/storage/projectregionstoragepresign/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 projectregionstoragepresign + +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/storage/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectRegionStoragePresign managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectRegionStoragePresign_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.ProjectRegionStoragePresign_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectRegionStoragePresign_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_region_storage_presign"], 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.ProjectRegionStoragePresign_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectRegionStoragePresign{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/cloudproject/zz_controller.go b/internal/controller/vrack/cloudproject/zz_controller.go new file mode 100755 index 0000000..122a1e2 --- /dev/null +++ b/internal/controller/vrack/cloudproject/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 cloudproject + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Cloudproject managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Cloudproject_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.Cloudproject_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Cloudproject_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack_cloudproject"], 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.Cloudproject_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Cloudproject{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/dedicatedserver/zz_controller.go b/internal/controller/vrack/dedicatedserver/zz_controller.go new file mode 100755 index 0000000..39ce89f --- /dev/null +++ b/internal/controller/vrack/dedicatedserver/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 dedicatedserver + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles DedicatedServer managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedServer_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.DedicatedServer_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedServer_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack_dedicated_server"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + tjcontroller.WithCallbackProvider(ac), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3 * time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedServer_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedServer{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/dedicatedserverinterface/zz_controller.go b/internal/controller/vrack/dedicatedserverinterface/zz_controller.go new file mode 100755 index 0000000..6f293bc --- /dev/null +++ b/internal/controller/vrack/dedicatedserverinterface/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 dedicatedserverinterface + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles DedicatedServerInterface managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedServerInterface_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.DedicatedServerInterface_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedServerInterface_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack_dedicated_server_interface"], 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.DedicatedServerInterface_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedServerInterface{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/ip/zz_controller.go b/internal/controller/vrack/ip/zz_controller.go new file mode 100755 index 0000000..91ee2af --- /dev/null +++ b/internal/controller/vrack/ip/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 ip + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles IP managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IP_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.IP_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IP_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack_ip"], 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.IP_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IP{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/iploadbalancing/zz_controller.go b/internal/controller/vrack/iploadbalancing/zz_controller.go new file mode 100755 index 0000000..43c991c --- /dev/null +++ b/internal/controller/vrack/iploadbalancing/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 iploadbalancing + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Iploadbalancing managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Iploadbalancing_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.Iploadbalancing_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Iploadbalancing_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack_iploadbalancing"], 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.Iploadbalancing_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Iploadbalancing{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vrack/vrack/zz_controller.go b/internal/controller/vrack/vrack/zz_controller.go new file mode 100755 index 0000000..580ccbe --- /dev/null +++ b/internal/controller/vrack/vrack/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 vrack + +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/vrack/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Vrack managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Vrack_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.Vrack_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Vrack_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_vrack"], 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.Vrack_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Vrack{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index ac10a0c..ded3039 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -72,11 +72,23 @@ import ( nashapartitionsnapshot "github.com/edixos/provider-ovh/internal/controller/nas/nashapartitionsnapshot" projectnetworkprivate "github.com/edixos/provider-ovh/internal/controller/pcn/projectnetworkprivate" projectnetworkprivatesubnet "github.com/edixos/provider-ovh/internal/controller/pcn/projectnetworkprivatesubnet" + privatedatabase "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabase" + privatedatabasedatabase "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabasedatabase" + privatedatabaseuser "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabaseuser" + privatedatabaseusergrant "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabaseusergrant" + privatedatabasewhitelist "github.com/edixos/provider-ovh/internal/controller/privatesql/privatedatabasewhitelist" providerconfig "github.com/edixos/provider-ovh/internal/controller/providerconfig" projectcontainerregistry "github.com/edixos/provider-ovh/internal/controller/registry/projectcontainerregistry" projectcontainerregistryoidc "github.com/edixos/provider-ovh/internal/controller/registry/projectcontainerregistryoidc" projectcontainerregistryuser "github.com/edixos/provider-ovh/internal/controller/registry/projectcontainerregistryuser" + projectregionstoragepresign "github.com/edixos/provider-ovh/internal/controller/storage/projectregionstoragepresign" projectworkflowbackup "github.com/edixos/provider-ovh/internal/controller/vminstances/projectworkflowbackup" + cloudproject "github.com/edixos/provider-ovh/internal/controller/vrack/cloudproject" + dedicatedserver "github.com/edixos/provider-ovh/internal/controller/vrack/dedicatedserver" + dedicatedserverinterface "github.com/edixos/provider-ovh/internal/controller/vrack/dedicatedserverinterface" + ip "github.com/edixos/provider-ovh/internal/controller/vrack/ip" + iploadbalancingvrack "github.com/edixos/provider-ovh/internal/controller/vrack/iploadbalancing" + vrack "github.com/edixos/provider-ovh/internal/controller/vrack/vrack" ) // Setup creates all controllers with the supplied logger and adds them to @@ -146,11 +158,23 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { nashapartitionsnapshot.Setup, projectnetworkprivate.Setup, projectnetworkprivatesubnet.Setup, + privatedatabase.Setup, + privatedatabasedatabase.Setup, + privatedatabaseuser.Setup, + privatedatabaseusergrant.Setup, + privatedatabasewhitelist.Setup, providerconfig.Setup, projectcontainerregistry.Setup, projectcontainerregistryoidc.Setup, projectcontainerregistryuser.Setup, + projectregionstoragepresign.Setup, projectworkflowbackup.Setup, + cloudproject.Setup, + dedicatedserver.Setup, + dedicatedserverinterface.Setup, + ip.Setup, + iploadbalancingvrack.Setup, + vrack.Setup, } { if err := setup(mgr, o); err != nil { return err diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml new file mode 100644 index 0000000..32aff9e --- /dev/null +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabasedatabases.yaml @@ -0,0 +1,324 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatedatabasedatabases.privatesql.ovh.edixos.io +spec: + group: privatesql.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: PrivatedatabaseDatabase + listKind: PrivatedatabaseDatabaseList + plural: privatedatabasedatabases + singular: privatedatabasedatabase + 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: PrivatedatabaseDatabase is the Schema for the PrivatedatabaseDatabases + 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: PrivatedatabaseDatabaseSpec defines the desired state of + PrivatedatabaseDatabase + 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: + databaseName: + description: Name of your new database + type: string + serviceName: + description: The internal name of your private database + 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: + databaseName: + description: Name of your new database + type: string + serviceName: + description: The internal name of your private database + 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.databaseName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.databaseName) + || (has(self.initProvider) && has(self.initProvider.databaseName))' + - 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: PrivatedatabaseDatabaseStatus defines the observed state + of PrivatedatabaseDatabase. + properties: + atProvider: + properties: + databaseName: + description: Name of your new database + type: string + id: + type: string + serviceName: + description: The internal name of your private database + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml new file mode 100644 index 0000000..59e2619 --- /dev/null +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabases.yaml @@ -0,0 +1,604 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatedatabases.privatesql.ovh.edixos.io +spec: + group: privatesql.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Privatedatabase + listKind: PrivatedatabaseList + plural: privatedatabases + singular: privatedatabase + 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: Privatedatabase is the Schema for the Privatedatabases 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: PrivatedatabaseSpec defines the desired state of Privatedatabase + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + displayName: + description: Name displayed in customer panel for your private + database + type: string + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + serviceName: + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + displayName: + description: Name displayed in customer panel for your private + database + type: string + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + serviceName: + 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.ovhSubsidiary is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) + || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' + - message: spec.forProvider.plan is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) + || (has(self.initProvider) && has(self.initProvider.plan))' + status: + description: PrivatedatabaseStatus defines the observed state of Privatedatabase. + properties: + atProvider: + properties: + cpu: + description: Number of CPU on your private database + type: number + datacenter: + description: Datacenter where this private database is located + type: string + displayName: + description: Name displayed in customer panel for your private + database + type: string + hostname: + description: Private database hostname + type: string + hostnameFtp: + description: Private database FTP hostname + type: string + id: + type: string + infrastructure: + description: Infrastructure where service was stored + type: string + offer: + description: Type of the private database offer + type: string + order: + description: Details about an Order + items: + properties: + date: + type: string + details: + items: + properties: + description: + type: string + domain: + type: string + orderDetailId: + type: number + quantity: + type: string + type: object + type: array + expirationDate: + type: string + orderId: + type: number + type: object + type: array + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + port: + description: Private database service port + type: number + portFtp: + description: Private database FTP port + type: number + quotaSize: + description: Space allowed (in MB) on your private database + type: number + quotaUsed: + description: Sapce used (in MB) on your private database + type: number + ram: + description: Amount of ram (in MB) on your private database + type: number + server: + description: Private database server name + type: string + serviceName: + type: string + state: + description: Private database state + type: string + type: + description: Private database type + type: string + urn: + type: string + version: + description: Private database available versions + type: string + versionLabel: + description: Private database version label + type: string + versionNumber: + description: Private database version number + type: number + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml new file mode 100644 index 0000000..d1234ec --- /dev/null +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusergrants.yaml @@ -0,0 +1,350 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatedatabaseusergrants.privatesql.ovh.edixos.io +spec: + group: privatesql.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: PrivatedatabaseUserGrant + listKind: PrivatedatabaseUserGrantList + plural: privatedatabaseusergrants + singular: privatedatabaseusergrant + 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: PrivatedatabaseUserGrant is the Schema for the PrivatedatabaseUserGrants + 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: PrivatedatabaseUserGrantSpec defines the desired state of + PrivatedatabaseUserGrant + 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: + databaseName: + description: Database name where add grant + type: string + grant: + description: Database name where add grant + type: string + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + 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: + databaseName: + description: Database name where add grant + type: string + grant: + description: Database name where add grant + type: string + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + 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.databaseName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.databaseName) + || (has(self.initProvider) && has(self.initProvider.databaseName))' + - message: spec.forProvider.grant is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.grant) + || (has(self.initProvider) && has(self.initProvider.grant))' + - 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.userName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.userName) + || (has(self.initProvider) && has(self.initProvider.userName))' + status: + description: PrivatedatabaseUserGrantStatus defines the observed state + of PrivatedatabaseUserGrant. + properties: + atProvider: + properties: + databaseName: + description: Database name where add grant + type: string + grant: + description: Database name where add grant + type: string + id: + type: string + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml new file mode 100644 index 0000000..e62b23a --- /dev/null +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabaseusers.yaml @@ -0,0 +1,343 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatedatabaseusers.privatesql.ovh.edixos.io +spec: + group: privatesql.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: PrivatedatabaseUser + listKind: PrivatedatabaseUserList + plural: privatedatabaseusers + singular: privatedatabaseuser + 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: PrivatedatabaseUser is the Schema for the PrivatedatabaseUsers + 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: PrivatedatabaseUserSpec defines the desired state of PrivatedatabaseUser + 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: + passwordSecretRef: + description: Password for the new user ( alphanumeric and 8 characters + minimum ) + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + 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: + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + 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.passwordSecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)' + - 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.userName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.userName) + || (has(self.initProvider) && has(self.initProvider.userName))' + status: + description: PrivatedatabaseUserStatus defines the observed state of PrivatedatabaseUser. + properties: + atProvider: + properties: + id: + type: string + serviceName: + description: The internal name of your private database + type: string + userName: + description: User name used to connect on your databases + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml b/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml new file mode 100644 index 0000000..85f1c64 --- /dev/null +++ b/package/crds/privatesql.ovh.edixos.io_privatedatabasewhitelists.yaml @@ -0,0 +1,350 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: privatedatabasewhitelists.privatesql.ovh.edixos.io +spec: + group: privatesql.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: PrivatedatabaseWhitelist + listKind: PrivatedatabaseWhitelistList + plural: privatedatabasewhitelists + singular: privatedatabasewhitelist + 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: PrivatedatabaseWhitelist is the Schema for the PrivatedatabaseWhitelists + 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: PrivatedatabaseWhitelistSpec defines the desired state of + PrivatedatabaseWhitelist + 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: + ip: + description: The whitelisted IP in your instance + type: string + service: + description: Authorize this IP to access service port + type: boolean + serviceName: + description: The internal name of your private database + type: string + sftp: + description: Authorize this IP to access SFTP port + type: boolean + 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: + ip: + description: The whitelisted IP in your instance + type: string + service: + description: Authorize this IP to access service port + type: boolean + serviceName: + description: The internal name of your private database + type: string + sftp: + description: Authorize this IP to access SFTP port + type: boolean + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.ip is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ip) + || (has(self.initProvider) && has(self.initProvider.ip))' + - message: spec.forProvider.service is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.service) + || (has(self.initProvider) && has(self.initProvider.service))' + - 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.sftp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sftp) + || (has(self.initProvider) && has(self.initProvider.sftp))' + status: + description: PrivatedatabaseWhitelistStatus defines the observed state + of PrivatedatabaseWhitelist. + properties: + atProvider: + properties: + id: + type: string + ip: + description: The whitelisted IP in your instance + type: string + service: + description: Authorize this IP to access service port + type: boolean + serviceName: + description: The internal name of your private database + type: string + sftp: + description: Authorize this IP to access SFTP port + type: boolean + 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/storage.ovh.edixos.io_projectregionstoragepresigns.yaml b/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml new file mode 100644 index 0000000..4fbd1fe --- /dev/null +++ b/package/crds/storage.ovh.edixos.io_projectregionstoragepresigns.yaml @@ -0,0 +1,366 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectregionstoragepresigns.storage.ovh.edixos.io +spec: + group: storage.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectRegionStoragePresign + listKind: ProjectRegionStoragePresignList + plural: projectregionstoragepresigns + singular: projectregionstoragepresign + 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: ProjectRegionStoragePresign is the Schema for the ProjectRegionStoragePresigns + 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: ProjectRegionStoragePresignSpec defines the desired state + of ProjectRegionStoragePresign + 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: + expire: + description: How long (in seconds) the URL will be valid. + type: number + method: + type: string + object: + description: Name of the object to download or upload. + type: string + regionName: + description: Region name. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + expire: + description: How long (in seconds) the URL will be valid. + type: number + method: + type: string + object: + description: Name of the object to download or upload. + type: string + regionName: + description: Region name. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.expire is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.expire) + || (has(self.initProvider) && has(self.initProvider.expire))' + - message: spec.forProvider.method is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.method) + || (has(self.initProvider) && has(self.initProvider.method))' + - message: spec.forProvider.object is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.object) + || (has(self.initProvider) && has(self.initProvider.object))' + - message: spec.forProvider.regionName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.regionName) + || (has(self.initProvider) && has(self.initProvider.regionName))' + - 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: ProjectRegionStoragePresignStatus defines the observed state + of ProjectRegionStoragePresign. + properties: + atProvider: + properties: + expire: + description: How long (in seconds) the URL will be valid. + type: number + id: + type: string + method: + type: string + object: + description: Name of the object to download or upload. + type: string + regionName: + description: Region name. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + url: + description: Presigned URL. + 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/vrack.ovh.edixos.io_cloudprojects.yaml b/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml new file mode 100644 index 0000000..3e7ce61 --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_cloudprojects.yaml @@ -0,0 +1,314 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: cloudprojects.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Cloudproject + listKind: CloudprojectList + plural: cloudprojects + singular: cloudproject + 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: Cloudproject is the Schema for the Cloudprojects 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: CloudprojectSpec defines the desired state of Cloudproject + 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: + projectId: + type: string + serviceName: + description: Service name of the vrack resource. + 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: + projectId: + type: string + serviceName: + description: Service name of the vrack resource. + 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: CloudprojectStatus defines the observed state of Cloudproject. + properties: + atProvider: + properties: + id: + type: string + projectId: + type: string + serviceName: + description: Service name of the vrack resource. + 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/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml b/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml new file mode 100644 index 0000000..97666c8 --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_dedicatedserverinterfaces.yaml @@ -0,0 +1,321 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedserverinterfaces.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: DedicatedServerInterface + listKind: DedicatedServerInterfaceList + plural: dedicatedserverinterfaces + singular: dedicatedserverinterface + 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: DedicatedServerInterface is the Schema for the DedicatedServerInterfaces + 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: DedicatedServerInterfaceSpec defines the desired state of + DedicatedServerInterface + 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: + interfaceId: + type: string + serviceName: + description: Service name of the vrack resource. + 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: + interfaceId: + type: string + serviceName: + description: Service name of the vrack resource. + 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.interfaceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.interfaceId) + || (has(self.initProvider) && has(self.initProvider.interfaceId))' + - 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: DedicatedServerInterfaceStatus defines the observed state + of DedicatedServerInterface. + properties: + atProvider: + properties: + id: + type: string + interfaceId: + type: string + serviceName: + description: Service name of the vrack resource. + 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/vrack.ovh.edixos.io_dedicatedservers.yaml b/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml new file mode 100644 index 0000000..f3570e5 --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_dedicatedservers.yaml @@ -0,0 +1,322 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedservers.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: DedicatedServer + listKind: DedicatedServerList + plural: dedicatedservers + singular: dedicatedserver + 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: DedicatedServer is the Schema for the DedicatedServers 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: DedicatedServerSpec defines the desired state of DedicatedServer + 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: + serverId: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + serverId: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.serverId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serverId) + || (has(self.initProvider) && has(self.initProvider.serverId))' + - 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: DedicatedServerStatus defines the observed state of DedicatedServer. + properties: + atProvider: + properties: + id: + type: string + serverId: + type: string + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml b/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml new file mode 100644 index 0000000..5f9ec10 --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_iploadbalancings.yaml @@ -0,0 +1,322 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: iploadbalancings.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Iploadbalancing + listKind: IploadbalancingList + plural: iploadbalancings + singular: iploadbalancing + 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: Iploadbalancing is the Schema for the Iploadbalancings 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: IploadbalancingSpec defines the desired state of Iploadbalancing + 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: + ipLoadbalancing: + description: Your ipLoadbalancing + type: string + serviceName: + description: The internal name of your vrack + 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: + ipLoadbalancing: + description: Your ipLoadbalancing + type: string + serviceName: + description: The internal name of your vrack + 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.ipLoadbalancing is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ipLoadbalancing) + || (has(self.initProvider) && has(self.initProvider.ipLoadbalancing))' + - 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: IploadbalancingStatus defines the observed state of Iploadbalancing. + properties: + atProvider: + properties: + id: + type: string + ipLoadbalancing: + description: Your ipLoadbalancing + type: string + serviceName: + description: The internal name of your vrack + 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/vrack.ovh.edixos.io_ips.yaml b/package/crds/vrack.ovh.edixos.io_ips.yaml new file mode 100644 index 0000000..8cff88e --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_ips.yaml @@ -0,0 +1,330 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ips.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: IP + listKind: IPList + plural: ips + singular: ip + 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: IP is the Schema for the IPs 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: IPSpec defines the desired state of IP + 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: + block: + description: Your IP block. + type: string + serviceName: + description: The internal name of your vrack + 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: + block: + description: Your IP block. + type: string + serviceName: + description: The internal name of your vrack + 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.block is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.block) + || (has(self.initProvider) && has(self.initProvider.block))' + - 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: IPStatus defines the observed state of IP. + properties: + atProvider: + properties: + block: + description: Your IP block. + type: string + gateway: + description: Your gateway + type: string + id: + type: string + ip: + description: Your IP block + type: string + serviceName: + description: The internal name of your vrack + type: string + zone: + description: Where you want your block announced on the network + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + 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/vrack.ovh.edixos.io_vracks.yaml b/package/crds/vrack.ovh.edixos.io_vracks.yaml new file mode 100644 index 0000000..2c5cc8e --- /dev/null +++ b/package/crds/vrack.ovh.edixos.io_vracks.yaml @@ -0,0 +1,546 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vracks.vrack.ovh.edixos.io +spec: + group: vrack.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Vrack + listKind: VrackList + plural: vracks + singular: vrack + 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: Vrack is the Schema for the Vracks 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: VrackSpec defines the desired state of Vrack + 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: yourvrackdescription + type: string + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + description: yourvrackdescription + type: string + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.ovhSubsidiary is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) + || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))' + - message: spec.forProvider.plan is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.plan) + || (has(self.initProvider) && has(self.initProvider.plan))' + status: + description: VrackStatus defines the observed state of Vrack. + properties: + atProvider: + properties: + description: + description: yourvrackdescription + type: string + id: + type: string + order: + description: Details about an Order + items: + properties: + date: + type: string + details: + items: + properties: + description: + type: string + domain: + type: string + orderDetailId: + type: number + quantity: + type: string + type: object + type: array + expirationDate: + type: string + orderId: + type: number + type: object + type: array + ovhSubsidiary: + description: Ovh Subsidiary + type: string + paymentMean: + description: Ovh payment mode + type: string + plan: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + planOption: + description: Product Plan to order + items: + properties: + catalogName: + description: Catalog name + type: string + configuration: + description: Representation of a configuration item for + personalizing product + items: + properties: + label: + description: Identifier of the resource + type: string + value: + description: Path to the resource in API.OVH.COM + type: string + type: object + type: array + duration: + description: duration + type: string + planCode: + description: Plan code + type: string + pricingMode: + description: Pricing model identifier + type: string + type: object + type: array + serviceName: + description: The internal name of your vrack + type: string + urn: + 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: {}