From cc3c690a9f5b2dc1a225967bf55d08e892611de9 Mon Sep 17 00:00:00 2001 From: ISMAIL KABOUBI Date: Wed, 3 Jan 2024 18:43:10 +0100 Subject: [PATCH] feat(apis): adding new apis related to ip and accountmanagement --- .../v1alpha1/zz_generated.deepcopy.go | 2470 +++++++++++++++++ .../v1alpha1/zz_generated.managed.go | 488 ++++ .../v1alpha1/zz_generated.managedlist.go | 80 + .../v1alpha1/zz_generated_terraformed.go | 690 +++++ .../v1alpha1/zz_groupversion_info.go | 36 + .../v1alpha1/zz_identitygroup_types.go | 109 + .../v1alpha1/zz_identityuser_types.go | 150 + .../v1alpha1/zz_policy_types.go | 132 + .../v1alpha1/zz_project_types.go | 357 +++ .../v1alpha1/zz_projectuser_types.go | 150 + .../zz_projectusers3credential_types.go | 114 + .../v1alpha1/zz_projectusers3policy_types.go | 121 + .../v1alpha1/zz_sshkey_types.go | 121 + .../v1alpha1/zz_generated.deepcopy.go | 1310 +++++++++ .../v1alpha1/zz_generated.managed.go | 188 ++ .../v1alpha1/zz_generated.managedlist.go | 35 + .../v1alpha1/zz_generated_terraformed.go | 270 ++ .../v1alpha1/zz_groupversion_info.go | 36 + .../zz_projectfailoveripattach_types.go | 159 ++ .../additionalip/v1alpha1/zz_reverse_types.go | 111 + .../additionalip/v1alpha1/zz_service_types.go | 377 +++ .../v1alpha1/zz_groupversion_info.go | 4 +- .../v1alpha1/zz_generated.deepcopy.go | 0 .../v1alpha1/zz_generated.managed.go | 0 .../v1alpha1/zz_generated.managedlist.go | 0 .../v1alpha1/zz_generated_terraformed.go | 0 .../v1alpha1/zz_groupversion_info.go | 4 +- .../zz_projectworkflowbackup_types.go | 0 apis/zz_register.go | 6 +- config/account_management/config.go | 35 + config/additional_ip/config.go | 16 + config/external_name.go | 11 + config/provider.go | 9 +- config/vm_instances/config.go | 1 - .../identitygroup/zz_controller.go | 67 + .../identityuser/zz_controller.go | 67 + .../accountmanagement/policy/zz_controller.go | 67 + .../project/zz_controller.go | 67 + .../projectuser/zz_controller.go | 67 + .../projectusers3credential/zz_controller.go | 67 + .../projectusers3policy/zz_controller.go | 67 + .../accountmanagement/sshkey/zz_controller.go | 67 + .../projectfailoveripattach/zz_controller.go | 67 + .../additionalip/reverse/zz_controller.go | 67 + .../additionalip/service/zz_controller.go | 67 + .../projectworkflowbackup/zz_controller.go | 2 +- internal/controller/zz_setup.go | 26 +- ...nagement.ovh.edixos.io_identitygroups.yaml | 314 +++ ...anagement.ovh.edixos.io_identityusers.yaml | 373 +++ ...ountmanagement.ovh.edixos.io_policies.yaml | 365 +++ ...ountmanagement.ovh.edixos.io_projects.yaml | 548 ++++ ...management.ovh.edixos.io_projectusers.yaml | 368 +++ ...vh.edixos.io_projectusers3credentials.yaml | 331 +++ ...t.ovh.edixos.io_projectusers3policies.yaml | 338 +++ ...countmanagement.ovh.edixos.io_sshkeys.yaml | 333 +++ ...h.edixos.io_projectfailoveripattaches.yaml | 365 +++ .../additionalip.ovh.edixos.io_reverses.yaml | 325 +++ .../additionalip.ovh.edixos.io_services.yaml | 562 ++++ ...ovh.edixos.io_projectnetworkprivates.yaml} | 4 +- ...ixos.io_projectnetworkprivatesubnets.yaml} | 4 +- ...ovh.edixos.io_projectworkflowbackups.yaml} | 4 +- 61 files changed, 12573 insertions(+), 16 deletions(-) create mode 100644 apis/accountmanagement/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/accountmanagement/v1alpha1/zz_generated.managed.go create mode 100644 apis/accountmanagement/v1alpha1/zz_generated.managedlist.go create mode 100755 apis/accountmanagement/v1alpha1/zz_generated_terraformed.go create mode 100755 apis/accountmanagement/v1alpha1/zz_groupversion_info.go create mode 100755 apis/accountmanagement/v1alpha1/zz_identitygroup_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_identityuser_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_policy_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_project_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_projectuser_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_projectusers3credential_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_projectusers3policy_types.go create mode 100755 apis/accountmanagement/v1alpha1/zz_sshkey_types.go create mode 100644 apis/additionalip/v1alpha1/zz_generated.deepcopy.go create mode 100644 apis/additionalip/v1alpha1/zz_generated.managed.go create mode 100644 apis/additionalip/v1alpha1/zz_generated.managedlist.go create mode 100755 apis/additionalip/v1alpha1/zz_generated_terraformed.go create mode 100755 apis/additionalip/v1alpha1/zz_groupversion_info.go create mode 100755 apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go create mode 100755 apis/additionalip/v1alpha1/zz_reverse_types.go create mode 100755 apis/additionalip/v1alpha1/zz_service_types.go rename apis/{cloud => vminstances}/v1alpha1/zz_generated.deepcopy.go (100%) rename apis/{cloud => vminstances}/v1alpha1/zz_generated.managed.go (100%) rename apis/{cloud => vminstances}/v1alpha1/zz_generated.managedlist.go (100%) rename apis/{cloud => vminstances}/v1alpha1/zz_generated_terraformed.go (100%) rename apis/{cloud => vminstances}/v1alpha1/zz_groupversion_info.go (91%) rename apis/{cloud => vminstances}/v1alpha1/zz_projectworkflowbackup_types.go (100%) create mode 100644 config/account_management/config.go create mode 100644 config/additional_ip/config.go create mode 100755 internal/controller/accountmanagement/identitygroup/zz_controller.go create mode 100755 internal/controller/accountmanagement/identityuser/zz_controller.go create mode 100755 internal/controller/accountmanagement/policy/zz_controller.go create mode 100755 internal/controller/accountmanagement/project/zz_controller.go create mode 100755 internal/controller/accountmanagement/projectuser/zz_controller.go create mode 100755 internal/controller/accountmanagement/projectusers3credential/zz_controller.go create mode 100755 internal/controller/accountmanagement/projectusers3policy/zz_controller.go create mode 100755 internal/controller/accountmanagement/sshkey/zz_controller.go create mode 100755 internal/controller/additionalip/projectfailoveripattach/zz_controller.go create mode 100755 internal/controller/additionalip/reverse/zz_controller.go create mode 100755 internal/controller/additionalip/service/zz_controller.go rename internal/controller/{cloud => vminstances}/projectworkflowbackup/zz_controller.go (97%) create mode 100644 package/crds/accountmanagement.ovh.edixos.io_identitygroups.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_identityusers.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_policies.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_projects.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_projectusers.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_projectusers3credentials.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_projectusers3policies.yaml create mode 100644 package/crds/accountmanagement.ovh.edixos.io_sshkeys.yaml create mode 100644 package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml create mode 100644 package/crds/additionalip.ovh.edixos.io_reverses.yaml create mode 100644 package/crds/additionalip.ovh.edixos.io_services.yaml rename package/crds/{publiccloudnetwork.edixos.io_projectnetworkprivates.yaml => publiccloudnetwork.ovh.edixos.io_projectnetworkprivates.yaml} (99%) rename package/crds/{publiccloudnetwork.edixos.io_projectnetworkprivatesubnets.yaml => publiccloudnetwork.ovh.edixos.io_projectnetworkprivatesubnets.yaml} (99%) rename package/crds/{cloud.edixos.io_projectworkflowbackups.yaml => vminstances.ovh.edixos.io_projectworkflowbackups.yaml} (99%) diff --git a/apis/accountmanagement/v1alpha1/zz_generated.deepcopy.go b/apis/accountmanagement/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..c6d1114 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2470 @@ +//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 *IdentityGroup) DeepCopyInto(out *IdentityGroup) { + *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 IdentityGroup. +func (in *IdentityGroup) DeepCopy() *IdentityGroup { + if in == nil { + return nil + } + out := new(IdentityGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IdentityGroup) 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 *IdentityGroupInitParameters) DeepCopyInto(out *IdentityGroupInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Role != nil { + in, out := &in.Role, &out.Role + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityGroupInitParameters. +func (in *IdentityGroupInitParameters) DeepCopy() *IdentityGroupInitParameters { + if in == nil { + return nil + } + out := new(IdentityGroupInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityGroupList) DeepCopyInto(out *IdentityGroupList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IdentityGroup, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityGroupList. +func (in *IdentityGroupList) DeepCopy() *IdentityGroupList { + if in == nil { + return nil + } + out := new(IdentityGroupList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IdentityGroupList) 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 *IdentityGroupObservation) DeepCopyInto(out *IdentityGroupObservation) { + *out = *in + if in.Creation != nil { + in, out := &in.Creation, &out.Creation + *out = new(string) + **out = **in + } + if in.DefaultGroup != nil { + in, out := &in.DefaultGroup, &out.DefaultGroup + *out = new(bool) + **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.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = new(string) + **out = **in + } + if in.Role != nil { + in, out := &in.Role, &out.Role + *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 IdentityGroupObservation. +func (in *IdentityGroupObservation) DeepCopy() *IdentityGroupObservation { + if in == nil { + return nil + } + out := new(IdentityGroupObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityGroupParameters) DeepCopyInto(out *IdentityGroupParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Role != nil { + in, out := &in.Role, &out.Role + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityGroupParameters. +func (in *IdentityGroupParameters) DeepCopy() *IdentityGroupParameters { + if in == nil { + return nil + } + out := new(IdentityGroupParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityGroupSpec) DeepCopyInto(out *IdentityGroupSpec) { + *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 IdentityGroupSpec. +func (in *IdentityGroupSpec) DeepCopy() *IdentityGroupSpec { + if in == nil { + return nil + } + out := new(IdentityGroupSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityGroupStatus) DeepCopyInto(out *IdentityGroupStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityGroupStatus. +func (in *IdentityGroupStatus) DeepCopy() *IdentityGroupStatus { + if in == nil { + return nil + } + out := new(IdentityGroupStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityUser) DeepCopyInto(out *IdentityUser) { + *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 IdentityUser. +func (in *IdentityUser) DeepCopy() *IdentityUser { + if in == nil { + return nil + } + out := new(IdentityUser) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IdentityUser) 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 *IdentityUserInitParameters) DeepCopyInto(out *IdentityUserInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Login != nil { + in, out := &in.Login, &out.Login + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityUserInitParameters. +func (in *IdentityUserInitParameters) DeepCopy() *IdentityUserInitParameters { + if in == nil { + return nil + } + out := new(IdentityUserInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityUserList) DeepCopyInto(out *IdentityUserList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IdentityUser, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityUserList. +func (in *IdentityUserList) DeepCopy() *IdentityUserList { + if in == nil { + return nil + } + out := new(IdentityUserList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IdentityUserList) 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 *IdentityUserObservation) DeepCopyInto(out *IdentityUserObservation) { + *out = *in + if in.Creation != nil { + in, out := &in.Creation, &out.Creation + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = new(string) + **out = **in + } + if in.Login != nil { + in, out := &in.Login, &out.Login + *out = new(string) + **out = **in + } + if in.PasswordLastUpdate != nil { + in, out := &in.PasswordLastUpdate, &out.PasswordLastUpdate + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 IdentityUserObservation. +func (in *IdentityUserObservation) DeepCopy() *IdentityUserObservation { + if in == nil { + return nil + } + out := new(IdentityUserObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityUserParameters) DeepCopyInto(out *IdentityUserParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Login != nil { + in, out := &in.Login, &out.Login + *out = new(string) + **out = **in + } + out.PasswordSecretRef = in.PasswordSecretRef +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityUserParameters. +func (in *IdentityUserParameters) DeepCopy() *IdentityUserParameters { + if in == nil { + return nil + } + out := new(IdentityUserParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityUserSpec) DeepCopyInto(out *IdentityUserSpec) { + *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 IdentityUserSpec. +func (in *IdentityUserSpec) DeepCopy() *IdentityUserSpec { + if in == nil { + return nil + } + out := new(IdentityUserSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IdentityUserStatus) DeepCopyInto(out *IdentityUserStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityUserStatus. +func (in *IdentityUserStatus) DeepCopy() *IdentityUserStatus { + if in == nil { + return nil + } + out := new(IdentityUserStatus) + 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 *Policy) DeepCopyInto(out *Policy) { + *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 Policy. +func (in *Policy) DeepCopy() *Policy { + if in == nil { + return nil + } + out := new(Policy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Policy) 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 *PolicyInitParameters) DeepCopyInto(out *PolicyInitParameters) { + *out = *in + if in.Allow != nil { + in, out := &in.Allow, &out.Allow + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Except != nil { + in, out := &in.Except, &out.Except + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Identities != nil { + in, out := &in.Identities, &out.Identities + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyInitParameters. +func (in *PolicyInitParameters) DeepCopy() *PolicyInitParameters { + if in == nil { + return nil + } + out := new(PolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyList) DeepCopyInto(out *PolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Policy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyList. +func (in *PolicyList) DeepCopy() *PolicyList { + if in == nil { + return nil + } + out := new(PolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PolicyList) 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 *PolicyObservation) DeepCopyInto(out *PolicyObservation) { + *out = *in + if in.Allow != nil { + in, out := &in.Allow, &out.Allow + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Except != nil { + in, out := &in.Except, &out.Except + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Identities != nil { + in, out := &in.Identities, &out.Identities + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(string) + **out = **in + } + if in.ReadOnly != nil { + in, out := &in.ReadOnly, &out.ReadOnly + *out = new(bool) + **out = **in + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyObservation. +func (in *PolicyObservation) DeepCopy() *PolicyObservation { + if in == nil { + return nil + } + out := new(PolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyParameters) DeepCopyInto(out *PolicyParameters) { + *out = *in + if in.Allow != nil { + in, out := &in.Allow, &out.Allow + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Except != nil { + in, out := &in.Except, &out.Except + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Identities != nil { + in, out := &in.Identities, &out.Identities + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyParameters. +func (in *PolicyParameters) DeepCopy() *PolicyParameters { + if in == nil { + return nil + } + out := new(PolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicySpec) DeepCopyInto(out *PolicySpec) { + *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 PolicySpec. +func (in *PolicySpec) DeepCopy() *PolicySpec { + if in == nil { + return nil + } + out := new(PolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyStatus) DeepCopyInto(out *PolicyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyStatus. +func (in *PolicyStatus) DeepCopy() *PolicyStatus { + if in == nil { + return nil + } + out := new(PolicyStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Project) DeepCopyInto(out *Project) { + *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 Project. +func (in *Project) DeepCopy() *Project { + if in == nil { + return nil + } + out := new(Project) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Project) 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 *ProjectInitParameters) DeepCopyInto(out *ProjectInitParameters) { + *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 ProjectInitParameters. +func (in *ProjectInitParameters) DeepCopy() *ProjectInitParameters { + if in == nil { + return nil + } + out := new(ProjectInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectList) DeepCopyInto(out *ProjectList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Project, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectList. +func (in *ProjectList) DeepCopy() *ProjectList { + if in == nil { + return nil + } + out := new(ProjectList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectList) 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 *ProjectObservation) DeepCopyInto(out *ProjectObservation) { + *out = *in + if in.Access != nil { + in, out := &in.Access, &out.Access + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.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.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 ProjectObservation. +func (in *ProjectObservation) DeepCopy() *ProjectObservation { + if in == nil { + return nil + } + out := new(ProjectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectParameters) DeepCopyInto(out *ProjectParameters) { + *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 ProjectParameters. +func (in *ProjectParameters) DeepCopy() *ProjectParameters { + if in == nil { + return nil + } + out := new(ProjectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectSpec) DeepCopyInto(out *ProjectSpec) { + *out = *in + 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 ProjectSpec. +func (in *ProjectSpec) DeepCopy() *ProjectSpec { + if in == nil { + return nil + } + out := new(ProjectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectStatus) DeepCopyInto(out *ProjectStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectStatus. +func (in *ProjectStatus) DeepCopy() *ProjectStatus { + if in == nil { + return nil + } + out := new(ProjectStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUser) DeepCopyInto(out *ProjectUser) { + *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 ProjectUser. +func (in *ProjectUser) DeepCopy() *ProjectUser { + if in == nil { + return nil + } + out := new(ProjectUser) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUser) 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 *ProjectUserInitParameters) DeepCopyInto(out *ProjectUserInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.OpenstackRc != nil { + in, out := &in.OpenstackRc, &out.OpenstackRc + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.RoleNames != nil { + in, out := &in.RoleNames, &out.RoleNames + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserInitParameters. +func (in *ProjectUserInitParameters) DeepCopy() *ProjectUserInitParameters { + if in == nil { + return nil + } + out := new(ProjectUserInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserList) DeepCopyInto(out *ProjectUserList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectUser, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserList. +func (in *ProjectUserList) DeepCopy() *ProjectUserList { + if in == nil { + return nil + } + out := new(ProjectUserList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUserList) 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 *ProjectUserObservation) DeepCopyInto(out *ProjectUserObservation) { + *out = *in + if in.CreationDate != nil { + in, out := &in.CreationDate, &out.CreationDate + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.OpenstackRc != nil { + in, out := &in.OpenstackRc, &out.OpenstackRc + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.RoleNames != nil { + in, out := &in.RoleNames, &out.RoleNames + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]RolesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + 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 ProjectUserObservation. +func (in *ProjectUserObservation) DeepCopy() *ProjectUserObservation { + if in == nil { + return nil + } + out := new(ProjectUserObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserParameters) DeepCopyInto(out *ProjectUserParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.OpenstackRc != nil { + in, out := &in.OpenstackRc, &out.OpenstackRc + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } + if in.RoleNames != nil { + in, out := &in.RoleNames, &out.RoleNames + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserParameters. +func (in *ProjectUserParameters) DeepCopy() *ProjectUserParameters { + if in == nil { + return nil + } + out := new(ProjectUserParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3Credential) DeepCopyInto(out *ProjectUserS3Credential) { + *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 ProjectUserS3Credential. +func (in *ProjectUserS3Credential) DeepCopy() *ProjectUserS3Credential { + if in == nil { + return nil + } + out := new(ProjectUserS3Credential) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUserS3Credential) 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 *ProjectUserS3CredentialInitParameters) DeepCopyInto(out *ProjectUserS3CredentialInitParameters) { + *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3CredentialInitParameters. +func (in *ProjectUserS3CredentialInitParameters) DeepCopy() *ProjectUserS3CredentialInitParameters { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3CredentialList) DeepCopyInto(out *ProjectUserS3CredentialList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectUserS3Credential, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3CredentialList. +func (in *ProjectUserS3CredentialList) DeepCopy() *ProjectUserS3CredentialList { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUserS3CredentialList) 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 *ProjectUserS3CredentialObservation) DeepCopyInto(out *ProjectUserS3CredentialObservation) { + *out = *in + if in.AccessKeyID != nil { + in, out := &in.AccessKeyID, &out.AccessKeyID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InternalUserID != nil { + in, out := &in.InternalUserID, &out.InternalUserID + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3CredentialObservation. +func (in *ProjectUserS3CredentialObservation) DeepCopy() *ProjectUserS3CredentialObservation { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3CredentialParameters) DeepCopyInto(out *ProjectUserS3CredentialParameters) { + *out = *in + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3CredentialParameters. +func (in *ProjectUserS3CredentialParameters) DeepCopy() *ProjectUserS3CredentialParameters { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3CredentialSpec) DeepCopyInto(out *ProjectUserS3CredentialSpec) { + *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 ProjectUserS3CredentialSpec. +func (in *ProjectUserS3CredentialSpec) DeepCopy() *ProjectUserS3CredentialSpec { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3CredentialStatus) DeepCopyInto(out *ProjectUserS3CredentialStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3CredentialStatus. +func (in *ProjectUserS3CredentialStatus) DeepCopy() *ProjectUserS3CredentialStatus { + if in == nil { + return nil + } + out := new(ProjectUserS3CredentialStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3Policy) DeepCopyInto(out *ProjectUserS3Policy) { + *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 ProjectUserS3Policy. +func (in *ProjectUserS3Policy) DeepCopy() *ProjectUserS3Policy { + if in == nil { + return nil + } + out := new(ProjectUserS3Policy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUserS3Policy) 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 *ProjectUserS3PolicyInitParameters) DeepCopyInto(out *ProjectUserS3PolicyInitParameters) { + *out = *in + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3PolicyInitParameters. +func (in *ProjectUserS3PolicyInitParameters) DeepCopy() *ProjectUserS3PolicyInitParameters { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3PolicyList) DeepCopyInto(out *ProjectUserS3PolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectUserS3Policy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3PolicyList. +func (in *ProjectUserS3PolicyList) DeepCopy() *ProjectUserS3PolicyList { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectUserS3PolicyList) 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 *ProjectUserS3PolicyObservation) DeepCopyInto(out *ProjectUserS3PolicyObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3PolicyObservation. +func (in *ProjectUserS3PolicyObservation) DeepCopy() *ProjectUserS3PolicyObservation { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3PolicyParameters) DeepCopyInto(out *ProjectUserS3PolicyParameters) { + *out = *in + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3PolicyParameters. +func (in *ProjectUserS3PolicyParameters) DeepCopy() *ProjectUserS3PolicyParameters { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3PolicySpec) DeepCopyInto(out *ProjectUserS3PolicySpec) { + *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 ProjectUserS3PolicySpec. +func (in *ProjectUserS3PolicySpec) DeepCopy() *ProjectUserS3PolicySpec { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserS3PolicyStatus) DeepCopyInto(out *ProjectUserS3PolicyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserS3PolicyStatus. +func (in *ProjectUserS3PolicyStatus) DeepCopy() *ProjectUserS3PolicyStatus { + if in == nil { + return nil + } + out := new(ProjectUserS3PolicyStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserSpec) DeepCopyInto(out *ProjectUserSpec) { + *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 ProjectUserSpec. +func (in *ProjectUserSpec) DeepCopy() *ProjectUserSpec { + if in == nil { + return nil + } + out := new(ProjectUserSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectUserStatus) DeepCopyInto(out *ProjectUserStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectUserStatus. +func (in *ProjectUserStatus) DeepCopy() *ProjectUserStatus { + if in == nil { + return nil + } + out := new(ProjectUserStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RolesInitParameters) DeepCopyInto(out *RolesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolesInitParameters. +func (in *RolesInitParameters) DeepCopy() *RolesInitParameters { + if in == nil { + return nil + } + out := new(RolesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RolesObservation) DeepCopyInto(out *RolesObservation) { + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Permissions != nil { + in, out := &in.Permissions, &out.Permissions + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolesObservation. +func (in *RolesObservation) DeepCopy() *RolesObservation { + if in == nil { + return nil + } + out := new(RolesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RolesParameters) DeepCopyInto(out *RolesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RolesParameters. +func (in *RolesParameters) DeepCopy() *RolesParameters { + if in == nil { + return nil + } + out := new(RolesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSHKey) DeepCopyInto(out *SSHKey) { + *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 SSHKey. +func (in *SSHKey) DeepCopy() *SSHKey { + if in == nil { + return nil + } + out := new(SSHKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SSHKey) 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 *SSHKeyInitParameters) DeepCopyInto(out *SSHKeyInitParameters) { + *out = *in + if in.Default != nil { + in, out := &in.Default, &out.Default + *out = new(bool) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeyInitParameters. +func (in *SSHKeyInitParameters) DeepCopy() *SSHKeyInitParameters { + if in == nil { + return nil + } + out := new(SSHKeyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSHKeyList) DeepCopyInto(out *SSHKeyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SSHKey, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeyList. +func (in *SSHKeyList) DeepCopy() *SSHKeyList { + if in == nil { + return nil + } + out := new(SSHKeyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SSHKeyList) 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 *SSHKeyObservation) DeepCopyInto(out *SSHKeyObservation) { + *out = *in + if in.Default != nil { + in, out := &in.Default, &out.Default + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeyObservation. +func (in *SSHKeyObservation) DeepCopy() *SSHKeyObservation { + if in == nil { + return nil + } + out := new(SSHKeyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSHKeyParameters) DeepCopyInto(out *SSHKeyParameters) { + *out = *in + if in.Default != nil { + in, out := &in.Default, &out.Default + *out = new(bool) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeyParameters. +func (in *SSHKeyParameters) DeepCopy() *SSHKeyParameters { + if in == nil { + return nil + } + out := new(SSHKeyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSHKeySpec) DeepCopyInto(out *SSHKeySpec) { + *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 SSHKeySpec. +func (in *SSHKeySpec) DeepCopy() *SSHKeySpec { + if in == nil { + return nil + } + out := new(SSHKeySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SSHKeyStatus) DeepCopyInto(out *SSHKeyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHKeyStatus. +func (in *SSHKeyStatus) DeepCopy() *SSHKeyStatus { + if in == nil { + return nil + } + out := new(SSHKeyStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/accountmanagement/v1alpha1/zz_generated.managed.go b/apis/accountmanagement/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..14925b8 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_generated.managed.go @@ -0,0 +1,488 @@ +/* +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 IdentityGroup. +func (mg *IdentityGroup) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this IdentityGroup. +func (mg *IdentityGroup) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this IdentityGroup. +func (mg *IdentityGroup) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this IdentityGroup. +func (mg *IdentityGroup) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this IdentityGroup. +func (mg *IdentityGroup) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this IdentityGroup. +func (mg *IdentityGroup) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this IdentityGroup. +func (mg *IdentityGroup) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this IdentityGroup. +func (mg *IdentityGroup) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this IdentityGroup. +func (mg *IdentityGroup) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this IdentityGroup. +func (mg *IdentityGroup) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this IdentityGroup. +func (mg *IdentityGroup) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this IdentityGroup. +func (mg *IdentityGroup) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this IdentityUser. +func (mg *IdentityUser) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this IdentityUser. +func (mg *IdentityUser) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this IdentityUser. +func (mg *IdentityUser) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this IdentityUser. +func (mg *IdentityUser) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this IdentityUser. +func (mg *IdentityUser) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this IdentityUser. +func (mg *IdentityUser) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this IdentityUser. +func (mg *IdentityUser) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this IdentityUser. +func (mg *IdentityUser) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this IdentityUser. +func (mg *IdentityUser) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this IdentityUser. +func (mg *IdentityUser) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this IdentityUser. +func (mg *IdentityUser) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this IdentityUser. +func (mg *IdentityUser) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Policy. +func (mg *Policy) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Policy. +func (mg *Policy) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Policy. +func (mg *Policy) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Policy. +func (mg *Policy) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Policy. +func (mg *Policy) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Policy. +func (mg *Policy) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Policy. +func (mg *Policy) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Policy. +func (mg *Policy) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Policy. +func (mg *Policy) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Policy. +func (mg *Policy) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Policy. +func (mg *Policy) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Policy. +func (mg *Policy) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Project. +func (mg *Project) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Project. +func (mg *Project) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Project. +func (mg *Project) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Project. +func (mg *Project) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Project. +func (mg *Project) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Project. +func (mg *Project) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Project. +func (mg *Project) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Project. +func (mg *Project) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Project. +func (mg *Project) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Project. +func (mg *Project) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Project. +func (mg *Project) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Project. +func (mg *Project) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProjectUser. +func (mg *ProjectUser) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectUser. +func (mg *ProjectUser) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectUser. +func (mg *ProjectUser) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectUser. +func (mg *ProjectUser) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectUser. +func (mg *ProjectUser) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectUser. +func (mg *ProjectUser) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectUser. +func (mg *ProjectUser) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectUser. +func (mg *ProjectUser) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectUser. +func (mg *ProjectUser) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectUser. +func (mg *ProjectUser) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectUser. +func (mg *ProjectUser) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectUser. +func (mg *ProjectUser) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectUserS3Credential. +func (mg *ProjectUserS3Credential) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectUserS3Policy. +func (mg *ProjectUserS3Policy) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SSHKey. +func (mg *SSHKey) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SSHKey. +func (mg *SSHKey) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SSHKey. +func (mg *SSHKey) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SSHKey. +func (mg *SSHKey) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SSHKey. +func (mg *SSHKey) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SSHKey. +func (mg *SSHKey) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SSHKey. +func (mg *SSHKey) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SSHKey. +func (mg *SSHKey) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SSHKey. +func (mg *SSHKey) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SSHKey. +func (mg *SSHKey) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SSHKey. +func (mg *SSHKey) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SSHKey. +func (mg *SSHKey) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/accountmanagement/v1alpha1/zz_generated.managedlist.go b/apis/accountmanagement/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..2a88d51 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,80 @@ +/* +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 IdentityGroupList. +func (l *IdentityGroupList) 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 IdentityUserList. +func (l *IdentityUserList) 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 PolicyList. +func (l *PolicyList) 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 ProjectList. +func (l *ProjectList) 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 ProjectUserList. +func (l *ProjectUserList) 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 ProjectUserS3CredentialList. +func (l *ProjectUserS3CredentialList) 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 ProjectUserS3PolicyList. +func (l *ProjectUserS3PolicyList) 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 SSHKeyList. +func (l *SSHKeyList) 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/accountmanagement/v1alpha1/zz_generated_terraformed.go b/apis/accountmanagement/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..42cceba --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,690 @@ +// 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 Project +func (mg *Project) GetTerraformResourceType() string { + return "ovh_cloud_project" +} + +// GetConnectionDetailsMapping for this Project +func (tr *Project) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Project +func (tr *Project) 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 Project +func (tr *Project) 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 Project +func (tr *Project) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Project +func (tr *Project) 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 Project +func (tr *Project) 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 Project +func (tr *Project) 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 Project using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Project) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectParameters{} + 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 *Project) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProjectUser +func (mg *ProjectUser) GetTerraformResourceType() string { + return "ovh_cloud_project_user" +} + +// GetConnectionDetailsMapping for this ProjectUser +func (tr *ProjectUser) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "status.atProvider.password"} +} + +// GetObservation of this ProjectUser +func (tr *ProjectUser) 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 ProjectUser +func (tr *ProjectUser) 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 ProjectUser +func (tr *ProjectUser) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectUser +func (tr *ProjectUser) 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 ProjectUser +func (tr *ProjectUser) 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 ProjectUser +func (tr *ProjectUser) 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 ProjectUser using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectUser) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectUserParameters{} + 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 *ProjectUser) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProjectUserS3Credential +func (mg *ProjectUserS3Credential) GetTerraformResourceType() string { + return "ovh_cloud_project_user_s3_credential" +} + +// GetConnectionDetailsMapping for this ProjectUserS3Credential +func (tr *ProjectUserS3Credential) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"secret_access_key": "status.atProvider.secretAccessKey"} +} + +// GetObservation of this ProjectUserS3Credential +func (tr *ProjectUserS3Credential) 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 ProjectUserS3Credential +func (tr *ProjectUserS3Credential) 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 ProjectUserS3Credential +func (tr *ProjectUserS3Credential) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectUserS3Credential +func (tr *ProjectUserS3Credential) 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 ProjectUserS3Credential +func (tr *ProjectUserS3Credential) 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 ProjectUserS3Credential +func (tr *ProjectUserS3Credential) 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 ProjectUserS3Credential using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectUserS3Credential) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectUserS3CredentialParameters{} + 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 *ProjectUserS3Credential) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProjectUserS3Policy +func (mg *ProjectUserS3Policy) GetTerraformResourceType() string { + return "ovh_cloud_project_user_s3_policy" +} + +// GetConnectionDetailsMapping for this ProjectUserS3Policy +func (tr *ProjectUserS3Policy) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProjectUserS3Policy +func (tr *ProjectUserS3Policy) 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 ProjectUserS3Policy +func (tr *ProjectUserS3Policy) 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 ProjectUserS3Policy +func (tr *ProjectUserS3Policy) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectUserS3Policy +func (tr *ProjectUserS3Policy) 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 ProjectUserS3Policy +func (tr *ProjectUserS3Policy) 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 ProjectUserS3Policy +func (tr *ProjectUserS3Policy) 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 ProjectUserS3Policy using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectUserS3Policy) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectUserS3PolicyParameters{} + 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 *ProjectUserS3Policy) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Policy +func (mg *Policy) GetTerraformResourceType() string { + return "ovh_iam_policy" +} + +// GetConnectionDetailsMapping for this Policy +func (tr *Policy) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Policy +func (tr *Policy) 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 Policy +func (tr *Policy) 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 Policy +func (tr *Policy) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Policy +func (tr *Policy) 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 Policy +func (tr *Policy) 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 Policy +func (tr *Policy) 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 Policy using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Policy) LateInitialize(attrs []byte) (bool, error) { + params := &PolicyParameters{} + 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 *Policy) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IdentityGroup +func (mg *IdentityGroup) GetTerraformResourceType() string { + return "ovh_me_identity_group" +} + +// GetConnectionDetailsMapping for this IdentityGroup +func (tr *IdentityGroup) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IdentityGroup +func (tr *IdentityGroup) 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 IdentityGroup +func (tr *IdentityGroup) 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 IdentityGroup +func (tr *IdentityGroup) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IdentityGroup +func (tr *IdentityGroup) 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 IdentityGroup +func (tr *IdentityGroup) 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 IdentityGroup +func (tr *IdentityGroup) 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 IdentityGroup using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IdentityGroup) LateInitialize(attrs []byte) (bool, error) { + params := &IdentityGroupParameters{} + 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 *IdentityGroup) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IdentityUser +func (mg *IdentityUser) GetTerraformResourceType() string { + return "ovh_me_identity_user" +} + +// GetConnectionDetailsMapping for this IdentityUser +func (tr *IdentityUser) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this IdentityUser +func (tr *IdentityUser) 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 IdentityUser +func (tr *IdentityUser) 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 IdentityUser +func (tr *IdentityUser) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IdentityUser +func (tr *IdentityUser) 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 IdentityUser +func (tr *IdentityUser) 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 IdentityUser +func (tr *IdentityUser) 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 IdentityUser using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IdentityUser) LateInitialize(attrs []byte) (bool, error) { + params := &IdentityUserParameters{} + 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 *IdentityUser) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SSHKey +func (mg *SSHKey) GetTerraformResourceType() string { + return "ovh_me_ssh_key" +} + +// GetConnectionDetailsMapping for this SSHKey +func (tr *SSHKey) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SSHKey +func (tr *SSHKey) 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 SSHKey +func (tr *SSHKey) 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 SSHKey +func (tr *SSHKey) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SSHKey +func (tr *SSHKey) 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 SSHKey +func (tr *SSHKey) 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 SSHKey +func (tr *SSHKey) 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 SSHKey using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SSHKey) LateInitialize(attrs []byte) (bool, error) { + params := &SSHKeyParameters{} + 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 *SSHKey) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/accountmanagement/v1alpha1/zz_groupversion_info.go b/apis/accountmanagement/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..8af96dd --- /dev/null +++ b/apis/accountmanagement/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=accountmanagement.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 = "accountmanagement.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/accountmanagement/v1alpha1/zz_identitygroup_types.go b/apis/accountmanagement/v1alpha1/zz_identitygroup_types.go new file mode 100755 index 0000000..6131df1 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_identitygroup_types.go @@ -0,0 +1,109 @@ +// 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 IdentityGroupInitParameters struct { + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + Role *string `json:"role,omitempty" tf:"role,omitempty"` +} + +type IdentityGroupObservation struct { + Creation *string `json:"creation,omitempty" tf:"creation,omitempty"` + + DefaultGroup *bool `json:"defaultGroup,omitempty" tf:"default_group,omitempty"` + + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + LastUpdate *string `json:"lastUpdate,omitempty" tf:"last_update,omitempty"` + + Role *string `json:"role,omitempty" tf:"role,omitempty"` + + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` +} + +type IdentityGroupParameters struct { + + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // +kubebuilder:validation:Optional + Role *string `json:"role,omitempty" tf:"role,omitempty"` +} + +// IdentityGroupSpec defines the desired state of IdentityGroup +type IdentityGroupSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IdentityGroupParameters `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 IdentityGroupInitParameters `json:"initProvider,omitempty"` +} + +// IdentityGroupStatus defines the observed state of IdentityGroup. +type IdentityGroupStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider IdentityGroupObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IdentityGroup is the Schema for the IdentityGroups 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 IdentityGroup struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec IdentityGroupSpec `json:"spec"` + Status IdentityGroupStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IdentityGroupList contains a list of IdentityGroups +type IdentityGroupList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IdentityGroup `json:"items"` +} + +// Repository type metadata. +var ( + IdentityGroup_Kind = "IdentityGroup" + IdentityGroup_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IdentityGroup_Kind}.String() + IdentityGroup_KindAPIVersion = IdentityGroup_Kind + "." + CRDGroupVersion.String() + IdentityGroup_GroupVersionKind = CRDGroupVersion.WithKind(IdentityGroup_Kind) +) + +func init() { + SchemeBuilder.Register(&IdentityGroup{}, &IdentityGroupList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_identityuser_types.go b/apis/accountmanagement/v1alpha1/zz_identityuser_types.go new file mode 100755 index 0000000..4194de1 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_identityuser_types.go @@ -0,0 +1,150 @@ +// 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 IdentityUserInitParameters struct { + + // User description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // User's email + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // User's group + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // User's login suffix + Login *string `json:"login,omitempty" tf:"login,omitempty"` +} + +type IdentityUserObservation struct { + + // Creation date of this user + Creation *string `json:"creation,omitempty" tf:"creation,omitempty"` + + // User description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // User's email + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // User's group + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Last update of this user + LastUpdate *string `json:"lastUpdate,omitempty" tf:"last_update,omitempty"` + + // User's login suffix + Login *string `json:"login,omitempty" tf:"login,omitempty"` + + // When the user changed his password for the last time + PasswordLastUpdate *string `json:"passwordLastUpdate,omitempty" tf:"password_last_update,omitempty"` + + // Current user's status + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` +} + +type IdentityUserParameters struct { + + // User description + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // User's email + // +kubebuilder:validation:Optional + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // User's group + // +kubebuilder:validation:Optional + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // User's login suffix + // +kubebuilder:validation:Optional + Login *string `json:"login,omitempty" tf:"login,omitempty"` + + // User's password + // +kubebuilder:validation:Optional + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` +} + +// IdentityUserSpec defines the desired state of IdentityUser +type IdentityUserSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IdentityUserParameters `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 IdentityUserInitParameters `json:"initProvider,omitempty"` +} + +// IdentityUserStatus defines the observed state of IdentityUser. +type IdentityUserStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider IdentityUserObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IdentityUser is the Schema for the IdentityUsers 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 IdentityUser 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.email) || (has(self.initProvider) && has(self.initProvider.email))",message="spec.forProvider.email is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.login) || (has(self.initProvider) && has(self.initProvider.login))",message="spec.forProvider.login is a required parameter" + // +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" + Spec IdentityUserSpec `json:"spec"` + Status IdentityUserStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IdentityUserList contains a list of IdentityUsers +type IdentityUserList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IdentityUser `json:"items"` +} + +// Repository type metadata. +var ( + IdentityUser_Kind = "IdentityUser" + IdentityUser_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IdentityUser_Kind}.String() + IdentityUser_KindAPIVersion = IdentityUser_Kind + "." + CRDGroupVersion.String() + IdentityUser_GroupVersionKind = CRDGroupVersion.WithKind(IdentityUser_Kind) +) + +func init() { + SchemeBuilder.Register(&IdentityUser{}, &IdentityUserList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_policy_types.go b/apis/accountmanagement/v1alpha1/zz_policy_types.go new file mode 100755 index 0000000..9256403 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_policy_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 PolicyInitParameters struct { + Allow []*string `json:"allow,omitempty" tf:"allow,omitempty"` + + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + Except []*string `json:"except,omitempty" tf:"except,omitempty"` + + Identities []*string `json:"identities,omitempty" tf:"identities,omitempty"` + + Resources []*string `json:"resources,omitempty" tf:"resources,omitempty"` +} + +type PolicyObservation struct { + Allow []*string `json:"allow,omitempty" tf:"allow,omitempty"` + + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + Except []*string `json:"except,omitempty" tf:"except,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Identities []*string `json:"identities,omitempty" tf:"identities,omitempty"` + + Owner *string `json:"owner,omitempty" tf:"owner,omitempty"` + + ReadOnly *bool `json:"readOnly,omitempty" tf:"read_only,omitempty"` + + Resources []*string `json:"resources,omitempty" tf:"resources,omitempty"` + + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type PolicyParameters struct { + + // +kubebuilder:validation:Optional + Allow []*string `json:"allow,omitempty" tf:"allow,omitempty"` + + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // +kubebuilder:validation:Optional + Except []*string `json:"except,omitempty" tf:"except,omitempty"` + + // +kubebuilder:validation:Optional + Identities []*string `json:"identities,omitempty" tf:"identities,omitempty"` + + // +kubebuilder:validation:Optional + Resources []*string `json:"resources,omitempty" tf:"resources,omitempty"` +} + +// PolicySpec defines the desired state of Policy +type PolicySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PolicyParameters `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 PolicyInitParameters `json:"initProvider,omitempty"` +} + +// PolicyStatus defines the observed state of Policy. +type PolicyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider PolicyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Policy is the Schema for the Policys 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 Policy 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.identities) || (has(self.initProvider) && has(self.initProvider.identities))",message="spec.forProvider.identities is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.resources) || (has(self.initProvider) && has(self.initProvider.resources))",message="spec.forProvider.resources is a required parameter" + Spec PolicySpec `json:"spec"` + Status PolicyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PolicyList contains a list of Policys +type PolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Policy `json:"items"` +} + +// Repository type metadata. +var ( + Policy_Kind = "Policy" + Policy_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Policy_Kind}.String() + Policy_KindAPIVersion = Policy_Kind + "." + CRDGroupVersion.String() + Policy_GroupVersionKind = CRDGroupVersion.WithKind(Policy_Kind) +) + +func init() { + SchemeBuilder.Register(&Policy{}, &PolicyList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_project_types.go b/apis/accountmanagement/v1alpha1/zz_project_types.go new file mode 100755 index 0000000..a09b74e --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_project_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 ProjectInitParameters struct { + 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 ProjectObservation struct { + Access *string `json:"access,omitempty" tf:"access,omitempty"` + + 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"` + + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` +} + +type ProjectParameters struct { + + // +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"` +} + +// ProjectSpec defines the desired state of Project +type ProjectSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectParameters `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 ProjectInitParameters `json:"initProvider,omitempty"` +} + +// ProjectStatus defines the observed state of Project. +type ProjectStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Project is the Schema for the Projects 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 Project struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" + Spec ProjectSpec `json:"spec"` + Status ProjectStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectList contains a list of Projects +type ProjectList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Project `json:"items"` +} + +// Repository type metadata. +var ( + Project_Kind = "Project" + Project_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Project_Kind}.String() + Project_KindAPIVersion = Project_Kind + "." + CRDGroupVersion.String() + Project_GroupVersionKind = CRDGroupVersion.WithKind(Project_Kind) +) + +func init() { + SchemeBuilder.Register(&Project{}, &ProjectList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_projectuser_types.go b/apis/accountmanagement/v1alpha1/zz_projectuser_types.go new file mode 100755 index 0000000..87bd934 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_projectuser_types.go @@ -0,0 +1,150 @@ +// 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 ProjectUserInitParameters struct { + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + OpenstackRc map[string]*string `json:"openstackRc,omitempty" tf:"openstack_rc,omitempty"` + + RoleName *string `json:"roleName,omitempty" tf:"role_name,omitempty"` + + RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ProjectUserObservation struct { + CreationDate *string `json:"creationDate,omitempty" tf:"creation_date,omitempty"` + + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + OpenstackRc map[string]*string `json:"openstackRc,omitempty" tf:"openstack_rc,omitempty"` + + RoleName *string `json:"roleName,omitempty" tf:"role_name,omitempty"` + + RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,omitempty"` + + Roles []RolesObservation `json:"roles,omitempty" tf:"roles,omitempty"` + + // Service name of the resource representing the id of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type ProjectUserParameters struct { + + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // +kubebuilder:validation:Optional + OpenstackRc map[string]*string `json:"openstackRc,omitempty" tf:"openstack_rc,omitempty"` + + // +kubebuilder:validation:Optional + RoleName *string `json:"roleName,omitempty" tf:"role_name,omitempty"` + + // +kubebuilder:validation:Optional + RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,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"` +} + +type RolesInitParameters struct { +} + +type RolesObservation struct { + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Permissions []*string `json:"permissions,omitempty" tf:"permissions,omitempty"` +} + +type RolesParameters struct { +} + +// ProjectUserSpec defines the desired state of ProjectUser +type ProjectUserSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectUserParameters `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 ProjectUserInitParameters `json:"initProvider,omitempty"` +} + +// ProjectUserStatus defines the observed state of ProjectUser. +type ProjectUserStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectUserObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUser is the Schema for the ProjectUsers 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 ProjectUser 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 ProjectUserSpec `json:"spec"` + Status ProjectUserStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUserList contains a list of ProjectUsers +type ProjectUserList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectUser `json:"items"` +} + +// Repository type metadata. +var ( + ProjectUser_Kind = "ProjectUser" + ProjectUser_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectUser_Kind}.String() + ProjectUser_KindAPIVersion = ProjectUser_Kind + "." + CRDGroupVersion.String() + ProjectUser_GroupVersionKind = CRDGroupVersion.WithKind(ProjectUser_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectUser{}, &ProjectUserList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_projectusers3credential_types.go b/apis/accountmanagement/v1alpha1/zz_projectusers3credential_types.go new file mode 100755 index 0000000..25413e3 --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_projectusers3credential_types.go @@ -0,0 +1,114 @@ +// 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 ProjectUserS3CredentialInitParameters struct { + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // The user ID + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type ProjectUserS3CredentialObservation struct { + AccessKeyID *string `json:"accessKeyId,omitempty" tf:"access_key_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + InternalUserID *string `json:"internalUserId,omitempty" tf:"internal_user_id,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // The user ID + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type ProjectUserS3CredentialParameters struct { + + // Service name of the resource representing the ID of the cloud project. + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // The user ID + // +kubebuilder:validation:Optional + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +// ProjectUserS3CredentialSpec defines the desired state of ProjectUserS3Credential +type ProjectUserS3CredentialSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectUserS3CredentialParameters `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 ProjectUserS3CredentialInitParameters `json:"initProvider,omitempty"` +} + +// ProjectUserS3CredentialStatus defines the observed state of ProjectUserS3Credential. +type ProjectUserS3CredentialStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectUserS3CredentialObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUserS3Credential is the Schema for the ProjectUserS3Credentials 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 ProjectUserS3Credential struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serviceName) || (has(self.initProvider) && has(self.initProvider.serviceName))",message="spec.forProvider.serviceName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.userId) || (has(self.initProvider) && has(self.initProvider.userId))",message="spec.forProvider.userId is a required parameter" + Spec ProjectUserS3CredentialSpec `json:"spec"` + Status ProjectUserS3CredentialStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUserS3CredentialList contains a list of ProjectUserS3Credentials +type ProjectUserS3CredentialList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectUserS3Credential `json:"items"` +} + +// Repository type metadata. +var ( + ProjectUserS3Credential_Kind = "ProjectUserS3Credential" + ProjectUserS3Credential_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectUserS3Credential_Kind}.String() + ProjectUserS3Credential_KindAPIVersion = ProjectUserS3Credential_Kind + "." + CRDGroupVersion.String() + ProjectUserS3Credential_GroupVersionKind = CRDGroupVersion.WithKind(ProjectUserS3Credential_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectUserS3Credential{}, &ProjectUserS3CredentialList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_projectusers3policy_types.go b/apis/accountmanagement/v1alpha1/zz_projectusers3policy_types.go new file mode 100755 index 0000000..2218dbe --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_projectusers3policy_types.go @@ -0,0 +1,121 @@ +// 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 ProjectUserS3PolicyInitParameters struct { + + // The policy document. This is a JSON formatted string. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // The user ID + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type ProjectUserS3PolicyObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The policy document. This is a JSON formatted string. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + + // Service name of the resource representing the ID of the cloud project. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // The user ID + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type ProjectUserS3PolicyParameters struct { + + // The policy document. This is a JSON formatted string. + // +kubebuilder:validation:Optional + Policy *string `json:"policy,omitempty" tf:"policy,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"` + + // The user ID + // +kubebuilder:validation:Optional + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +// ProjectUserS3PolicySpec defines the desired state of ProjectUserS3Policy +type ProjectUserS3PolicySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectUserS3PolicyParameters `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 ProjectUserS3PolicyInitParameters `json:"initProvider,omitempty"` +} + +// ProjectUserS3PolicyStatus defines the observed state of ProjectUserS3Policy. +type ProjectUserS3PolicyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectUserS3PolicyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUserS3Policy is the Schema for the ProjectUserS3Policys 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 ProjectUserS3Policy 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.policy) || (has(self.initProvider) && has(self.initProvider.policy))",message="spec.forProvider.policy 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.userId) || (has(self.initProvider) && has(self.initProvider.userId))",message="spec.forProvider.userId is a required parameter" + Spec ProjectUserS3PolicySpec `json:"spec"` + Status ProjectUserS3PolicyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectUserS3PolicyList contains a list of ProjectUserS3Policys +type ProjectUserS3PolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectUserS3Policy `json:"items"` +} + +// Repository type metadata. +var ( + ProjectUserS3Policy_Kind = "ProjectUserS3Policy" + ProjectUserS3Policy_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectUserS3Policy_Kind}.String() + ProjectUserS3Policy_KindAPIVersion = ProjectUserS3Policy_Kind + "." + CRDGroupVersion.String() + ProjectUserS3Policy_GroupVersionKind = CRDGroupVersion.WithKind(ProjectUserS3Policy_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectUserS3Policy{}, &ProjectUserS3PolicyList{}) +} diff --git a/apis/accountmanagement/v1alpha1/zz_sshkey_types.go b/apis/accountmanagement/v1alpha1/zz_sshkey_types.go new file mode 100755 index 0000000..3d0bafb --- /dev/null +++ b/apis/accountmanagement/v1alpha1/zz_sshkey_types.go @@ -0,0 +1,121 @@ +// 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 SSHKeyInitParameters struct { + + // True when this public Ssh key is used for rescue mode and reinstallations + Default *bool `json:"default,omitempty" tf:"default,omitempty"` + + // ASCII encoded public Ssh key + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Name of this public Ssh key + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` +} + +type SSHKeyObservation struct { + + // True when this public Ssh key is used for rescue mode and reinstallations + Default *bool `json:"default,omitempty" tf:"default,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ASCII encoded public Ssh key + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Name of this public Ssh key + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` +} + +type SSHKeyParameters struct { + + // True when this public Ssh key is used for rescue mode and reinstallations + // +kubebuilder:validation:Optional + Default *bool `json:"default,omitempty" tf:"default,omitempty"` + + // ASCII encoded public Ssh key + // +kubebuilder:validation:Optional + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Name of this public Ssh key + // +kubebuilder:validation:Optional + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` +} + +// SSHKeySpec defines the desired state of SSHKey +type SSHKeySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SSHKeyParameters `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 SSHKeyInitParameters `json:"initProvider,omitempty"` +} + +// SSHKeyStatus defines the observed state of SSHKey. +type SSHKeyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider SSHKeyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SSHKey is the Schema for the SSHKeys 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 SSHKey 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.key) || (has(self.initProvider) && has(self.initProvider.key))",message="spec.forProvider.key is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.keyName) || (has(self.initProvider) && has(self.initProvider.keyName))",message="spec.forProvider.keyName is a required parameter" + Spec SSHKeySpec `json:"spec"` + Status SSHKeyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SSHKeyList contains a list of SSHKeys +type SSHKeyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SSHKey `json:"items"` +} + +// Repository type metadata. +var ( + SSHKey_Kind = "SSHKey" + SSHKey_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SSHKey_Kind}.String() + SSHKey_KindAPIVersion = SSHKey_Kind + "." + CRDGroupVersion.String() + SSHKey_GroupVersionKind = CRDGroupVersion.WithKind(SSHKey_Kind) +) + +func init() { + SchemeBuilder.Register(&SSHKey{}, &SSHKeyList{}) +} diff --git a/apis/additionalip/v1alpha1/zz_generated.deepcopy.go b/apis/additionalip/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..c68d378 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1310 @@ +//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 *ProjectFailoverIPAttach) DeepCopyInto(out *ProjectFailoverIPAttach) { + *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 ProjectFailoverIPAttach. +func (in *ProjectFailoverIPAttach) DeepCopy() *ProjectFailoverIPAttach { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttach) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectFailoverIPAttach) 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 *ProjectFailoverIPAttachInitParameters) DeepCopyInto(out *ProjectFailoverIPAttachInitParameters) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *out = new(string) + **out = **in + } + if in.ContinentCode != nil { + in, out := &in.ContinentCode, &out.ContinentCode + *out = new(string) + **out = **in + } + if in.GeoLoc != nil { + in, out := &in.GeoLoc, &out.GeoLoc + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = 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 ProjectFailoverIPAttachInitParameters. +func (in *ProjectFailoverIPAttachInitParameters) DeepCopy() *ProjectFailoverIPAttachInitParameters { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectFailoverIPAttachList) DeepCopyInto(out *ProjectFailoverIPAttachList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectFailoverIPAttach, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectFailoverIPAttachList. +func (in *ProjectFailoverIPAttachList) DeepCopy() *ProjectFailoverIPAttachList { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectFailoverIPAttachList) 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 *ProjectFailoverIPAttachObservation) DeepCopyInto(out *ProjectFailoverIPAttachObservation) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *out = new(string) + **out = **in + } + if in.ContinentCode != nil { + in, out := &in.ContinentCode, &out.ContinentCode + *out = new(string) + **out = **in + } + if in.GeoLoc != nil { + in, out := &in.GeoLoc, &out.GeoLoc + *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.Progress != nil { + in, out := &in.Progress, &out.Progress + *out = new(float64) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.SubType != nil { + in, out := &in.SubType, &out.SubType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectFailoverIPAttachObservation. +func (in *ProjectFailoverIPAttachObservation) DeepCopy() *ProjectFailoverIPAttachObservation { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectFailoverIPAttachParameters) DeepCopyInto(out *ProjectFailoverIPAttachParameters) { + *out = *in + if in.Block != nil { + in, out := &in.Block, &out.Block + *out = new(string) + **out = **in + } + if in.ContinentCode != nil { + in, out := &in.ContinentCode, &out.ContinentCode + *out = new(string) + **out = **in + } + if in.GeoLoc != nil { + in, out := &in.GeoLoc, &out.GeoLoc + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = 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 ProjectFailoverIPAttachParameters. +func (in *ProjectFailoverIPAttachParameters) DeepCopy() *ProjectFailoverIPAttachParameters { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectFailoverIPAttachSpec) DeepCopyInto(out *ProjectFailoverIPAttachSpec) { + *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 ProjectFailoverIPAttachSpec. +func (in *ProjectFailoverIPAttachSpec) DeepCopy() *ProjectFailoverIPAttachSpec { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectFailoverIPAttachStatus) DeepCopyInto(out *ProjectFailoverIPAttachStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectFailoverIPAttachStatus. +func (in *ProjectFailoverIPAttachStatus) DeepCopy() *ProjectFailoverIPAttachStatus { + if in == nil { + return nil + } + out := new(ProjectFailoverIPAttachStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Reverse) DeepCopyInto(out *Reverse) { + *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 Reverse. +func (in *Reverse) DeepCopy() *Reverse { + if in == nil { + return nil + } + out := new(Reverse) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Reverse) 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 *ReverseInitParameters) DeepCopyInto(out *ReverseInitParameters) { + *out = *in + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.IPReverse != nil { + in, out := &in.IPReverse, &out.IPReverse + *out = new(string) + **out = **in + } + if in.Reverse != nil { + in, out := &in.Reverse, &out.Reverse + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReverseInitParameters. +func (in *ReverseInitParameters) DeepCopy() *ReverseInitParameters { + if in == nil { + return nil + } + out := new(ReverseInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReverseList) DeepCopyInto(out *ReverseList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Reverse, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReverseList. +func (in *ReverseList) DeepCopy() *ReverseList { + if in == nil { + return nil + } + out := new(ReverseList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReverseList) 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 *ReverseObservation) DeepCopyInto(out *ReverseObservation) { + *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.IPReverse != nil { + in, out := &in.IPReverse, &out.IPReverse + *out = new(string) + **out = **in + } + if in.Reverse != nil { + in, out := &in.Reverse, &out.Reverse + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReverseObservation. +func (in *ReverseObservation) DeepCopy() *ReverseObservation { + if in == nil { + return nil + } + out := new(ReverseObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReverseParameters) DeepCopyInto(out *ReverseParameters) { + *out = *in + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.IPReverse != nil { + in, out := &in.IPReverse, &out.IPReverse + *out = new(string) + **out = **in + } + if in.Reverse != nil { + in, out := &in.Reverse, &out.Reverse + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReverseParameters. +func (in *ReverseParameters) DeepCopy() *ReverseParameters { + if in == nil { + return nil + } + out := new(ReverseParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReverseSpec) DeepCopyInto(out *ReverseSpec) { + *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 ReverseSpec. +func (in *ReverseSpec) DeepCopy() *ReverseSpec { + if in == nil { + return nil + } + out := new(ReverseSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReverseStatus) DeepCopyInto(out *ReverseStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReverseStatus. +func (in *ReverseStatus) DeepCopy() *ReverseStatus { + if in == nil { + return nil + } + out := new(ReverseStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutedToInitParameters) DeepCopyInto(out *RoutedToInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutedToInitParameters. +func (in *RoutedToInitParameters) DeepCopy() *RoutedToInitParameters { + if in == nil { + return nil + } + out := new(RoutedToInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutedToObservation) DeepCopyInto(out *RoutedToObservation) { + *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 RoutedToObservation. +func (in *RoutedToObservation) DeepCopy() *RoutedToObservation { + if in == nil { + return nil + } + out := new(RoutedToObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoutedToParameters) DeepCopyInto(out *RoutedToParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutedToParameters. +func (in *RoutedToParameters) DeepCopy() *RoutedToParameters { + if in == nil { + return nil + } + out := new(RoutedToParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Service) DeepCopyInto(out *Service) { + *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 Service. +func (in *Service) DeepCopy() *Service { + if in == nil { + return nil + } + out := new(Service) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Service) 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 *ServiceInitParameters) DeepCopyInto(out *ServiceInitParameters) { + *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 ServiceInitParameters. +func (in *ServiceInitParameters) DeepCopy() *ServiceInitParameters { + if in == nil { + return nil + } + out := new(ServiceInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceList) DeepCopyInto(out *ServiceList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Service, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList. +func (in *ServiceList) DeepCopy() *ServiceList { + if in == nil { + return nil + } + out := new(ServiceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceList) 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 *ServiceObservation) DeepCopyInto(out *ServiceObservation) { + *out = *in + if in.CanBeTerminated != nil { + in, out := &in.CanBeTerminated, &out.CanBeTerminated + *out = new(bool) + **out = **in + } + if in.Country != nil { + in, out := &in.Country, &out.Country + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.Order != nil { + in, out := &in.Order, &out.Order + *out = make([]OrderObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OrganisationID != nil { + in, out := &in.OrganisationID, &out.OrganisationID + *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([]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.RoutedTo != nil { + in, out := &in.RoutedTo, &out.RoutedTo + *out = make([]RoutedToObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceObservation. +func (in *ServiceObservation) DeepCopy() *ServiceObservation { + if in == nil { + return nil + } + out := new(ServiceObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceParameters) DeepCopyInto(out *ServiceParameters) { + *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 ServiceParameters. +func (in *ServiceParameters) DeepCopy() *ServiceParameters { + if in == nil { + return nil + } + out := new(ServiceParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { + *out = *in + 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 ServiceSpec. +func (in *ServiceSpec) DeepCopy() *ServiceSpec { + if in == nil { + return nil + } + out := new(ServiceSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus. +func (in *ServiceStatus) DeepCopy() *ServiceStatus { + if in == nil { + return nil + } + out := new(ServiceStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/additionalip/v1alpha1/zz_generated.managed.go b/apis/additionalip/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..a85f82f --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +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 ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectFailoverIPAttach. +func (mg *ProjectFailoverIPAttach) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Reverse. +func (mg *Reverse) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Reverse. +func (mg *Reverse) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Reverse. +func (mg *Reverse) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Reverse. +func (mg *Reverse) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Reverse. +func (mg *Reverse) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Reverse. +func (mg *Reverse) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Reverse. +func (mg *Reverse) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Reverse. +func (mg *Reverse) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Reverse. +func (mg *Reverse) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Reverse. +func (mg *Reverse) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Reverse. +func (mg *Reverse) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Reverse. +func (mg *Reverse) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Service. +func (mg *Service) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Service. +func (mg *Service) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Service. +func (mg *Service) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Service. +func (mg *Service) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Service. +func (mg *Service) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Service. +func (mg *Service) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Service. +func (mg *Service) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Service. +func (mg *Service) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Service. +func (mg *Service) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Service. +func (mg *Service) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Service. +func (mg *Service) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Service. +func (mg *Service) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/additionalip/v1alpha1/zz_generated.managedlist.go b/apis/additionalip/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..e6c7d56 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +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 ProjectFailoverIPAttachList. +func (l *ProjectFailoverIPAttachList) 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 ReverseList. +func (l *ReverseList) 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 ServiceList. +func (l *ServiceList) 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/additionalip/v1alpha1/zz_generated_terraformed.go b/apis/additionalip/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..b597f24 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// 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 ProjectFailoverIPAttach +func (mg *ProjectFailoverIPAttach) GetTerraformResourceType() string { + return "ovh_cloud_project_failover_ip_attach" +} + +// GetConnectionDetailsMapping for this ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) 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 ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) 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 ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) 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 ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) 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 ProjectFailoverIPAttach +func (tr *ProjectFailoverIPAttach) 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 ProjectFailoverIPAttach using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectFailoverIPAttach) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectFailoverIPAttachParameters{} + 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 *ProjectFailoverIPAttach) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Reverse +func (mg *Reverse) GetTerraformResourceType() string { + return "ovh_ip_reverse" +} + +// GetConnectionDetailsMapping for this Reverse +func (tr *Reverse) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Reverse +func (tr *Reverse) 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 Reverse +func (tr *Reverse) 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 Reverse +func (tr *Reverse) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Reverse +func (tr *Reverse) 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 Reverse +func (tr *Reverse) 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 Reverse +func (tr *Reverse) 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 Reverse using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Reverse) LateInitialize(attrs []byte) (bool, error) { + params := &ReverseParameters{} + 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 *Reverse) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Service +func (mg *Service) GetTerraformResourceType() string { + return "ovh_ip_service" +} + +// GetConnectionDetailsMapping for this Service +func (tr *Service) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Service +func (tr *Service) 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 Service +func (tr *Service) 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 Service +func (tr *Service) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Service +func (tr *Service) 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 Service +func (tr *Service) 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 Service +func (tr *Service) 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 Service using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Service) LateInitialize(attrs []byte) (bool, error) { + params := &ServiceParameters{} + 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 *Service) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/additionalip/v1alpha1/zz_groupversion_info.go b/apis/additionalip/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..9e2754c --- /dev/null +++ b/apis/additionalip/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=additionalip.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 = "additionalip.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/additionalip/v1alpha1/zz_projectfailoveripattach_types.go b/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go new file mode 100755 index 0000000..0c6fb00 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_projectfailoveripattach_types.go @@ -0,0 +1,159 @@ +// 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 ProjectFailoverIPAttachInitParameters struct { + + // IP block + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // Ip continent + ContinentCode *string `json:"continentCode,omitempty" tf:"continent_code,omitempty"` + + // Ip location + GeoLoc *string `json:"geoLoc,omitempty" tf:"geo_loc,omitempty"` + + // Ip + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Instance where ip is routed to + RoutedTo *string `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type ProjectFailoverIPAttachObservation struct { + + // IP block + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // Ip continent + ContinentCode *string `json:"continentCode,omitempty" tf:"continent_code,omitempty"` + + // Ip location + GeoLoc *string `json:"geoLoc,omitempty" tf:"geo_loc,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Ip + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Current operation progress in percent + Progress *float64 `json:"progress,omitempty" tf:"progress,omitempty"` + + // Instance where ip is routed to + RoutedTo *string `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + + // The service name + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Ip status + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // IP sub type + SubType *string `json:"subType,omitempty" tf:"sub_type,omitempty"` +} + +type ProjectFailoverIPAttachParameters struct { + + // IP block + // +kubebuilder:validation:Optional + Block *string `json:"block,omitempty" tf:"block,omitempty"` + + // Ip continent + // +kubebuilder:validation:Optional + ContinentCode *string `json:"continentCode,omitempty" tf:"continent_code,omitempty"` + + // Ip location + // +kubebuilder:validation:Optional + GeoLoc *string `json:"geoLoc,omitempty" tf:"geo_loc,omitempty"` + + // Ip + // +kubebuilder:validation:Optional + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Instance where ip is routed to + // +kubebuilder:validation:Optional + RoutedTo *string `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + + // The service name + // +kubebuilder:validation:Optional + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +// ProjectFailoverIPAttachSpec defines the desired state of ProjectFailoverIPAttach +type ProjectFailoverIPAttachSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectFailoverIPAttachParameters `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 ProjectFailoverIPAttachInitParameters `json:"initProvider,omitempty"` +} + +// ProjectFailoverIPAttachStatus defines the observed state of ProjectFailoverIPAttach. +type ProjectFailoverIPAttachStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectFailoverIPAttachObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectFailoverIPAttach is the Schema for the ProjectFailoverIPAttachs 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 ProjectFailoverIPAttach 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 ProjectFailoverIPAttachSpec `json:"spec"` + Status ProjectFailoverIPAttachStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectFailoverIPAttachList contains a list of ProjectFailoverIPAttachs +type ProjectFailoverIPAttachList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectFailoverIPAttach `json:"items"` +} + +// Repository type metadata. +var ( + ProjectFailoverIPAttach_Kind = "ProjectFailoverIPAttach" + ProjectFailoverIPAttach_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectFailoverIPAttach_Kind}.String() + ProjectFailoverIPAttach_KindAPIVersion = ProjectFailoverIPAttach_Kind + "." + CRDGroupVersion.String() + ProjectFailoverIPAttach_GroupVersionKind = CRDGroupVersion.WithKind(ProjectFailoverIPAttach_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectFailoverIPAttach{}, &ProjectFailoverIPAttachList{}) +} diff --git a/apis/additionalip/v1alpha1/zz_reverse_types.go b/apis/additionalip/v1alpha1/zz_reverse_types.go new file mode 100755 index 0000000..fa2efd3 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_reverse_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 ReverseInitParameters struct { + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + IPReverse *string `json:"ipReverse,omitempty" tf:"ip_reverse,omitempty"` + + Reverse *string `json:"reverse,omitempty" tf:"reverse,omitempty"` +} + +type ReverseObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + IPReverse *string `json:"ipReverse,omitempty" tf:"ip_reverse,omitempty"` + + Reverse *string `json:"reverse,omitempty" tf:"reverse,omitempty"` +} + +type ReverseParameters struct { + + // +kubebuilder:validation:Optional + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // +kubebuilder:validation:Optional + IPReverse *string `json:"ipReverse,omitempty" tf:"ip_reverse,omitempty"` + + // +kubebuilder:validation:Optional + Reverse *string `json:"reverse,omitempty" tf:"reverse,omitempty"` +} + +// ReverseSpec defines the desired state of Reverse +type ReverseSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ReverseParameters `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 ReverseInitParameters `json:"initProvider,omitempty"` +} + +// ReverseStatus defines the observed state of Reverse. +type ReverseStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ReverseObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Reverse is the Schema for the Reverses 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 Reverse 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.ipReverse) || (has(self.initProvider) && has(self.initProvider.ipReverse))",message="spec.forProvider.ipReverse is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.reverse) || (has(self.initProvider) && has(self.initProvider.reverse))",message="spec.forProvider.reverse is a required parameter" + Spec ReverseSpec `json:"spec"` + Status ReverseStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ReverseList contains a list of Reverses +type ReverseList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Reverse `json:"items"` +} + +// Repository type metadata. +var ( + Reverse_Kind = "Reverse" + Reverse_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Reverse_Kind}.String() + Reverse_KindAPIVersion = Reverse_Kind + "." + CRDGroupVersion.String() + Reverse_GroupVersionKind = CRDGroupVersion.WithKind(Reverse_Kind) +) + +func init() { + SchemeBuilder.Register(&Reverse{}, &ReverseList{}) +} diff --git a/apis/additionalip/v1alpha1/zz_service_types.go b/apis/additionalip/v1alpha1/zz_service_types.go new file mode 100755 index 0000000..abec572 --- /dev/null +++ b/apis/additionalip/v1alpha1/zz_service_types.go @@ -0,0 +1,377 @@ +// 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 RoutedToInitParameters struct { +} + +type RoutedToObservation struct { + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` +} + +type RoutedToParameters struct { +} + +type ServiceInitParameters struct { + + // Custom description on your ip + 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 ServiceObservation struct { + CanBeTerminated *bool `json:"canBeTerminated,omitempty" tf:"can_be_terminated,omitempty"` + + Country *string `json:"country,omitempty" tf:"country,omitempty"` + + // Custom description on your ip + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Details about an Order + Order []OrderObservation `json:"order,omitempty" tf:"order,omitempty"` + + OrganisationID *string `json:"organisationId,omitempty" tf:"organisation_id,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"` + + // Routage information + RoutedTo []RoutedToObservation `json:"routedTo,omitempty" tf:"routed_to,omitempty"` + + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Possible values for ip type + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type ServiceParameters struct { + + // Custom description on your ip + // +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"` +} + +// ServiceSpec defines the desired state of Service +type ServiceSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServiceParameters `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 ServiceInitParameters `json:"initProvider,omitempty"` +} + +// ServiceStatus defines the observed state of Service. +type ServiceStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServiceObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Service is the Schema for the Services 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 Service struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ovhSubsidiary) || (has(self.initProvider) && has(self.initProvider.ovhSubsidiary))",message="spec.forProvider.ovhSubsidiary is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.plan) || (has(self.initProvider) && has(self.initProvider.plan))",message="spec.forProvider.plan is a required parameter" + Spec ServiceSpec `json:"spec"` + Status ServiceStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServiceList contains a list of Services +type ServiceList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Service `json:"items"` +} + +// Repository type metadata. +var ( + Service_Kind = "Service" + Service_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Service_Kind}.String() + Service_KindAPIVersion = Service_Kind + "." + CRDGroupVersion.String() + Service_GroupVersionKind = CRDGroupVersion.WithKind(Service_Kind) +) + +func init() { + SchemeBuilder.Register(&Service{}, &ServiceList{}) +} diff --git a/apis/publiccloudnetwork/v1alpha1/zz_groupversion_info.go b/apis/publiccloudnetwork/v1alpha1/zz_groupversion_info.go index e3c4a5e..30ee5f4 100755 --- a/apis/publiccloudnetwork/v1alpha1/zz_groupversion_info.go +++ b/apis/publiccloudnetwork/v1alpha1/zz_groupversion_info.go @@ -9,7 +9,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true -// +groupName=publiccloudnetwork.edixos.io +// +groupName=publiccloudnetwork.ovh.edixos.io // +versionName=v1alpha1 package v1alpha1 @@ -20,7 +20,7 @@ import ( // Package type metadata. const ( - CRDGroup = "publiccloudnetwork.edixos.io" + CRDGroup = "publiccloudnetwork.ovh.edixos.io" CRDVersion = "v1alpha1" ) diff --git a/apis/cloud/v1alpha1/zz_generated.deepcopy.go b/apis/vminstances/v1alpha1/zz_generated.deepcopy.go similarity index 100% rename from apis/cloud/v1alpha1/zz_generated.deepcopy.go rename to apis/vminstances/v1alpha1/zz_generated.deepcopy.go diff --git a/apis/cloud/v1alpha1/zz_generated.managed.go b/apis/vminstances/v1alpha1/zz_generated.managed.go similarity index 100% rename from apis/cloud/v1alpha1/zz_generated.managed.go rename to apis/vminstances/v1alpha1/zz_generated.managed.go diff --git a/apis/cloud/v1alpha1/zz_generated.managedlist.go b/apis/vminstances/v1alpha1/zz_generated.managedlist.go similarity index 100% rename from apis/cloud/v1alpha1/zz_generated.managedlist.go rename to apis/vminstances/v1alpha1/zz_generated.managedlist.go diff --git a/apis/cloud/v1alpha1/zz_generated_terraformed.go b/apis/vminstances/v1alpha1/zz_generated_terraformed.go similarity index 100% rename from apis/cloud/v1alpha1/zz_generated_terraformed.go rename to apis/vminstances/v1alpha1/zz_generated_terraformed.go diff --git a/apis/cloud/v1alpha1/zz_groupversion_info.go b/apis/vminstances/v1alpha1/zz_groupversion_info.go similarity index 91% rename from apis/cloud/v1alpha1/zz_groupversion_info.go rename to apis/vminstances/v1alpha1/zz_groupversion_info.go index 5b0acf8..cd62c3a 100755 --- a/apis/cloud/v1alpha1/zz_groupversion_info.go +++ b/apis/vminstances/v1alpha1/zz_groupversion_info.go @@ -9,7 +9,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true -// +groupName=cloud.edixos.io +// +groupName=vminstances.ovh.edixos.io // +versionName=v1alpha1 package v1alpha1 @@ -20,7 +20,7 @@ import ( // Package type metadata. const ( - CRDGroup = "cloud.edixos.io" + CRDGroup = "vminstances.ovh.edixos.io" CRDVersion = "v1alpha1" ) diff --git a/apis/cloud/v1alpha1/zz_projectworkflowbackup_types.go b/apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go similarity index 100% rename from apis/cloud/v1alpha1/zz_projectworkflowbackup_types.go rename to apis/vminstances/v1alpha1/zz_projectworkflowbackup_types.go diff --git a/apis/zz_register.go b/apis/zz_register.go index 2085575..b552ab9 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -14,19 +14,23 @@ package apis import ( "k8s.io/apimachinery/pkg/runtime" - v1alpha1 "github.com/edixos/provider-ovh/apis/cloud/v1alpha1" + v1alpha1 "github.com/edixos/provider-ovh/apis/accountmanagement/v1alpha1" + v1alpha1additionalip "github.com/edixos/provider-ovh/apis/additionalip/v1alpha1" v1alpha1publiccloudnetwork "github.com/edixos/provider-ovh/apis/publiccloudnetwork/v1alpha1" v1alpha1apis "github.com/edixos/provider-ovh/apis/v1alpha1" v1beta1 "github.com/edixos/provider-ovh/apis/v1beta1" + v1alpha1vminstances "github.com/edixos/provider-ovh/apis/vminstances/v1alpha1" ) func init() { // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme, + v1alpha1additionalip.SchemeBuilder.AddToScheme, v1alpha1publiccloudnetwork.SchemeBuilder.AddToScheme, v1alpha1apis.SchemeBuilder.AddToScheme, v1beta1.SchemeBuilder.AddToScheme, + v1alpha1vminstances.SchemeBuilder.AddToScheme, ) } diff --git a/config/account_management/config.go b/config/account_management/config.go new file mode 100644 index 0000000..7576792 --- /dev/null +++ b/config/account_management/config.go @@ -0,0 +1,35 @@ +package account_management + +import "github.com/crossplane/upjet/pkg/config" + +const ( + shortGroup = "accountmanagement" +) + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_cloud_project", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_cloud_project_user", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_cloud_project_user_s3_credential", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_cloud_project_user_s3_policy", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_iam_policy", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_me_identity_group", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_me_identity_user", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) + p.AddResourceConfigurator("ovh_me_ssh_key", func(r *config.Resource) { + r.ShortGroup = shortGroup + }) +} diff --git a/config/additional_ip/config.go b/config/additional_ip/config.go new file mode 100644 index 0000000..4ef0d07 --- /dev/null +++ b/config/additional_ip/config.go @@ -0,0 +1,16 @@ +package additional_ip + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + p.AddResourceConfigurator("ovh_cloud_project_failover_ip_attach", func(r *config.Resource) { + r.ShortGroup = "additionalip" + }) + p.AddResourceConfigurator("ovh_ip_reverse", func(r *config.Resource) { + r.ShortGroup = "additionalip" + }) + p.AddResourceConfigurator("ovh_ip_service", func(r *config.Resource) { + r.ShortGroup = "additionalip" + }) +} diff --git a/config/external_name.go b/config/external_name.go index 02bb6ce..60525f5 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -13,6 +13,17 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "ovh_cloud_project_network_private": config.NameAsIdentifier, "ovh_cloud_project_network_private_subnet": config.NameAsIdentifier, "ovh_cloud_project_workflow_backup": config.NameAsIdentifier, + "ovh_cloud_project": config.NameAsIdentifier, + "ovh_cloud_project_user": config.NameAsIdentifier, + "ovh_cloud_project_user_s3_credential": config.NameAsIdentifier, + "ovh_cloud_project_user_s3_policy": config.NameAsIdentifier, + "ovh_iam_policy": config.NameAsIdentifier, + "ovh_me_identity_group": config.NameAsIdentifier, + "ovh_me_identity_user": config.NameAsIdentifier, + "ovh_me_ssh_key": config.NameAsIdentifier, + "ovh_cloud_project_failover_ip_attach": config.NameAsIdentifier, + "ovh_ip_reverse": config.NameAsIdentifier, + "ovh_ip_service": config.NameAsIdentifier, } // ExternalNameConfigurations applies all external name configs listed in the diff --git a/config/provider.go b/config/provider.go index 0f615fa..7041993 100644 --- a/config/provider.go +++ b/config/provider.go @@ -8,6 +8,10 @@ import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" + "github.com/edixos/provider-ovh/config/account_management" + "github.com/edixos/provider-ovh/config/additional_ip" + "github.com/edixos/provider-ovh/config/vm_instances" + "github.com/edixos/provider-ovh/config/public_cloud_network" ujconfig "github.com/crossplane/upjet/pkg/config" @@ -27,7 +31,7 @@ var providerMetadata string // GetProvider returns provider configuration func GetProvider() *ujconfig.Provider { pc := ujconfig.NewProvider([]byte(providerSchema), resourcePrefix, modulePath, []byte(providerMetadata), - ujconfig.WithRootGroup("edixos.io"), + ujconfig.WithRootGroup("ovh.edixos.io"), ujconfig.WithIncludeList(ExternalNameConfigured()), ujconfig.WithFeaturesPackage("internal/features"), ujconfig.WithDefaultResourceOptions( @@ -37,6 +41,9 @@ func GetProvider() *ujconfig.Provider { for _, configure := range []func(provider *ujconfig.Provider){ // add custom config functions public_cloud_network.Configure, + account_management.Configure, + additional_ip.Configure, + vm_instances.Configure, } { configure(pc) } diff --git a/config/vm_instances/config.go b/config/vm_instances/config.go index 26402ce..ea0a985 100644 --- a/config/vm_instances/config.go +++ b/config/vm_instances/config.go @@ -7,5 +7,4 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("ovh_cloud_project_workflow_backup", func(r *config.Resource) { r.ShortGroup = "vminstances" }) - } diff --git a/internal/controller/accountmanagement/identitygroup/zz_controller.go b/internal/controller/accountmanagement/identitygroup/zz_controller.go new file mode 100755 index 0000000..ad9a83a --- /dev/null +++ b/internal/controller/accountmanagement/identitygroup/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 identitygroup + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles IdentityGroup managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IdentityGroup_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.IdentityGroup_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IdentityGroup_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_identity_group"], 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.IdentityGroup_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IdentityGroup{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/identityuser/zz_controller.go b/internal/controller/accountmanagement/identityuser/zz_controller.go new file mode 100755 index 0000000..348790e --- /dev/null +++ b/internal/controller/accountmanagement/identityuser/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 identityuser + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles IdentityUser managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IdentityUser_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.IdentityUser_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IdentityUser_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_identity_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.IdentityUser_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IdentityUser{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/policy/zz_controller.go b/internal/controller/accountmanagement/policy/zz_controller.go new file mode 100755 index 0000000..6d2c151 --- /dev/null +++ b/internal/controller/accountmanagement/policy/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 policy + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Policy managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Policy_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.Policy_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Policy_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_iam_policy"], 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.Policy_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Policy{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/project/zz_controller.go b/internal/controller/accountmanagement/project/zz_controller.go new file mode 100755 index 0000000..c5278e0 --- /dev/null +++ b/internal/controller/accountmanagement/project/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 project + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Project managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Project_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.Project_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Project_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project"], 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.Project_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Project{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/projectuser/zz_controller.go b/internal/controller/accountmanagement/projectuser/zz_controller.go new file mode 100755 index 0000000..fa61641 --- /dev/null +++ b/internal/controller/accountmanagement/projectuser/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 projectuser + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectUser managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectUser_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.ProjectUser_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectUser_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_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.ProjectUser_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectUser{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/projectusers3credential/zz_controller.go b/internal/controller/accountmanagement/projectusers3credential/zz_controller.go new file mode 100755 index 0000000..962f44d --- /dev/null +++ b/internal/controller/accountmanagement/projectusers3credential/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 projectusers3credential + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectUserS3Credential managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectUserS3Credential_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.ProjectUserS3Credential_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectUserS3Credential_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_user_s3_credential"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + tjcontroller.WithCallbackProvider(ac), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3 * time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProjectUserS3Credential_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectUserS3Credential{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/projectusers3policy/zz_controller.go b/internal/controller/accountmanagement/projectusers3policy/zz_controller.go new file mode 100755 index 0000000..5002fab --- /dev/null +++ b/internal/controller/accountmanagement/projectusers3policy/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 projectusers3policy + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectUserS3Policy managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectUserS3Policy_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.ProjectUserS3Policy_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectUserS3Policy_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_user_s3_policy"], 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.ProjectUserS3Policy_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectUserS3Policy{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/accountmanagement/sshkey/zz_controller.go b/internal/controller/accountmanagement/sshkey/zz_controller.go new file mode 100755 index 0000000..d6b5136 --- /dev/null +++ b/internal/controller/accountmanagement/sshkey/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 sshkey + +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/accountmanagement/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles SSHKey managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SSHKey_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.SSHKey_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SSHKey_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_me_ssh_key"], 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.SSHKey_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SSHKey{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/additionalip/projectfailoveripattach/zz_controller.go b/internal/controller/additionalip/projectfailoveripattach/zz_controller.go new file mode 100755 index 0000000..8603862 --- /dev/null +++ b/internal/controller/additionalip/projectfailoveripattach/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 projectfailoveripattach + +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/additionalip/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles ProjectFailoverIPAttach managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectFailoverIPAttach_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.ProjectFailoverIPAttach_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectFailoverIPAttach_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_cloud_project_failover_ip_attach"], 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.ProjectFailoverIPAttach_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectFailoverIPAttach{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/additionalip/reverse/zz_controller.go b/internal/controller/additionalip/reverse/zz_controller.go new file mode 100755 index 0000000..21da3e9 --- /dev/null +++ b/internal/controller/additionalip/reverse/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 reverse + +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/additionalip/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Reverse managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Reverse_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.Reverse_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Reverse_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_ip_reverse"], 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.Reverse_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Reverse{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/additionalip/service/zz_controller.go b/internal/controller/additionalip/service/zz_controller.go new file mode 100755 index 0000000..cb1d9e4 --- /dev/null +++ b/internal/controller/additionalip/service/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 service + +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/additionalip/v1alpha1" + features "github.com/edixos/provider-ovh/internal/features" +) + +// Setup adds a controller that reconciles Service managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Service_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.Service_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Service_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["ovh_ip_service"], 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.Service_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Service{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/cloud/projectworkflowbackup/zz_controller.go b/internal/controller/vminstances/projectworkflowbackup/zz_controller.go similarity index 97% rename from internal/controller/cloud/projectworkflowbackup/zz_controller.go rename to internal/controller/vminstances/projectworkflowbackup/zz_controller.go index 9ce05a2..5736a8b 100755 --- a/internal/controller/cloud/projectworkflowbackup/zz_controller.go +++ b/internal/controller/vminstances/projectworkflowbackup/zz_controller.go @@ -23,7 +23,7 @@ import ( "github.com/crossplane/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" - v1alpha1 "github.com/edixos/provider-ovh/apis/cloud/v1alpha1" + v1alpha1 "github.com/edixos/provider-ovh/apis/vminstances/v1alpha1" features "github.com/edixos/provider-ovh/internal/features" ) diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index fdb8f61..1397051 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -9,20 +9,42 @@ import ( "github.com/crossplane/upjet/pkg/controller" - projectworkflowbackup "github.com/edixos/provider-ovh/internal/controller/cloud/projectworkflowbackup" + identitygroup "github.com/edixos/provider-ovh/internal/controller/accountmanagement/identitygroup" + identityuser "github.com/edixos/provider-ovh/internal/controller/accountmanagement/identityuser" + policy "github.com/edixos/provider-ovh/internal/controller/accountmanagement/policy" + project "github.com/edixos/provider-ovh/internal/controller/accountmanagement/project" + projectuser "github.com/edixos/provider-ovh/internal/controller/accountmanagement/projectuser" + projectusers3credential "github.com/edixos/provider-ovh/internal/controller/accountmanagement/projectusers3credential" + projectusers3policy "github.com/edixos/provider-ovh/internal/controller/accountmanagement/projectusers3policy" + sshkey "github.com/edixos/provider-ovh/internal/controller/accountmanagement/sshkey" + projectfailoveripattach "github.com/edixos/provider-ovh/internal/controller/additionalip/projectfailoveripattach" + reverse "github.com/edixos/provider-ovh/internal/controller/additionalip/reverse" + service "github.com/edixos/provider-ovh/internal/controller/additionalip/service" providerconfig "github.com/edixos/provider-ovh/internal/controller/providerconfig" projectnetworkprivate "github.com/edixos/provider-ovh/internal/controller/publiccloudnetwork/projectnetworkprivate" projectnetworkprivatesubnet "github.com/edixos/provider-ovh/internal/controller/publiccloudnetwork/projectnetworkprivatesubnet" + projectworkflowbackup "github.com/edixos/provider-ovh/internal/controller/vminstances/projectworkflowbackup" ) // Setup creates all controllers with the supplied logger and adds them to // the supplied manager. func Setup(mgr ctrl.Manager, o controller.Options) error { for _, setup := range []func(ctrl.Manager, controller.Options) error{ - projectworkflowbackup.Setup, + identitygroup.Setup, + identityuser.Setup, + policy.Setup, + project.Setup, + projectuser.Setup, + projectusers3credential.Setup, + projectusers3policy.Setup, + sshkey.Setup, + projectfailoveripattach.Setup, + reverse.Setup, + service.Setup, providerconfig.Setup, projectnetworkprivate.Setup, projectnetworkprivatesubnet.Setup, + projectworkflowbackup.Setup, } { if err := setup(mgr, o); err != nil { return err diff --git a/package/crds/accountmanagement.ovh.edixos.io_identitygroups.yaml b/package/crds/accountmanagement.ovh.edixos.io_identitygroups.yaml new file mode 100644 index 0000000..0e4e236 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_identitygroups.yaml @@ -0,0 +1,314 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: identitygroups.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: IdentityGroup + listKind: IdentityGroupList + plural: identitygroups + singular: identitygroup + 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: IdentityGroup is the Schema for the IdentityGroups 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: IdentityGroupSpec defines the desired state of IdentityGroup + 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: + type: string + role: + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + description: + type: string + role: + 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 + status: + description: IdentityGroupStatus defines the observed state of IdentityGroup. + properties: + atProvider: + properties: + creation: + type: string + defaultGroup: + type: boolean + description: + type: string + id: + type: string + lastUpdate: + type: string + role: + 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: {} diff --git a/package/crds/accountmanagement.ovh.edixos.io_identityusers.yaml b/package/crds/accountmanagement.ovh.edixos.io_identityusers.yaml new file mode 100644 index 0000000..ccb2665 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_identityusers.yaml @@ -0,0 +1,373 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: identityusers.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: IdentityUser + listKind: IdentityUserList + plural: identityusers + singular: identityuser + 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: IdentityUser is the Schema for the IdentityUsers 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: IdentityUserSpec defines the desired state of IdentityUser + 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: User description + type: string + email: + description: User's email + type: string + group: + description: User's group + type: string + login: + description: User's login suffix + type: string + passwordSecretRef: + description: User's password + 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 + 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: User description + type: string + email: + description: User's email + type: string + group: + description: User's group + type: string + login: + description: User's login suffix + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.email is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.email) + || (has(self.initProvider) && has(self.initProvider.email))' + - message: spec.forProvider.login is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.login) + || (has(self.initProvider) && has(self.initProvider.login))' + - message: spec.forProvider.passwordSecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)' + status: + description: IdentityUserStatus defines the observed state of IdentityUser. + properties: + atProvider: + properties: + creation: + description: Creation date of this user + type: string + description: + description: User description + type: string + email: + description: User's email + type: string + group: + description: User's group + type: string + id: + type: string + lastUpdate: + description: Last update of this user + type: string + login: + description: User's login suffix + type: string + passwordLastUpdate: + description: When the user changed his password for the last time + type: string + status: + description: Current user's status + 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: {} diff --git a/package/crds/accountmanagement.ovh.edixos.io_policies.yaml b/package/crds/accountmanagement.ovh.edixos.io_policies.yaml new file mode 100644 index 0000000..43e8296 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_policies.yaml @@ -0,0 +1,365 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: policies.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Policy + listKind: PolicyList + plural: policies + singular: policy + 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: Policy is the Schema for the Policys 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: PolicySpec defines the desired state of Policy + 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: + allow: + items: + type: string + type: array + description: + type: string + except: + items: + type: string + type: array + identities: + items: + type: string + type: array + resources: + items: + type: string + 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: + allow: + items: + type: string + type: array + description: + type: string + except: + items: + type: string + type: array + identities: + items: + type: string + type: array + resources: + items: + type: string + 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.identities is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.identities) + || (has(self.initProvider) && has(self.initProvider.identities))' + - message: spec.forProvider.resources is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.resources) + || (has(self.initProvider) && has(self.initProvider.resources))' + status: + description: PolicyStatus defines the observed state of Policy. + properties: + atProvider: + properties: + allow: + items: + type: string + type: array + createdAt: + type: string + description: + type: string + except: + items: + type: string + type: array + id: + type: string + identities: + items: + type: string + type: array + owner: + type: string + readOnly: + type: boolean + resources: + items: + type: string + type: array + updatedAt: + 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/accountmanagement.ovh.edixos.io_projects.yaml b/package/crds/accountmanagement.ovh.edixos.io_projects.yaml new file mode 100644 index 0000000..40ccab1 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_projects.yaml @@ -0,0 +1,548 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projects.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Project + listKind: ProjectList + plural: projects + singular: project + 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: Project is the Schema for the Projects 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: ProjectSpec defines the desired state of Project + 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: + 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: + 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: ProjectStatus defines the observed state of Project. + properties: + atProvider: + properties: + access: + type: string + description: + 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 + projectId: + type: string + projectName: + type: string + status: + 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: {} diff --git a/package/crds/accountmanagement.ovh.edixos.io_projectusers.yaml b/package/crds/accountmanagement.ovh.edixos.io_projectusers.yaml new file mode 100644 index 0000000..4ffcbb4 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_projectusers.yaml @@ -0,0 +1,368 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectusers.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectUser + listKind: ProjectUserList + plural: projectusers + singular: projectuser + 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: ProjectUser is the Schema for the ProjectUsers 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: ProjectUserSpec defines the desired state of ProjectUser + 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: + type: string + openstackRc: + additionalProperties: + type: string + type: object + roleName: + type: string + roleNames: + items: + type: string + type: array + 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: + description: + type: string + openstackRc: + additionalProperties: + type: string + type: object + roleName: + type: string + roleNames: + items: + type: string + type: array + 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.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: ProjectUserStatus defines the observed state of ProjectUser. + properties: + atProvider: + properties: + creationDate: + type: string + description: + type: string + id: + type: string + openstackRc: + additionalProperties: + type: string + type: object + roleName: + type: string + roleNames: + items: + type: string + type: array + roles: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + permissions: + items: + type: string + type: array + type: object + type: array + serviceName: + description: Service name of the resource representing the id + of the cloud project. + type: string + status: + type: string + username: + 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/accountmanagement.ovh.edixos.io_projectusers3credentials.yaml b/package/crds/accountmanagement.ovh.edixos.io_projectusers3credentials.yaml new file mode 100644 index 0000000..57bf304 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_projectusers3credentials.yaml @@ -0,0 +1,331 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectusers3credentials.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectUserS3Credential + listKind: ProjectUserS3CredentialList + plural: projectusers3credentials + singular: projectusers3credential + 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: ProjectUserS3Credential is the Schema for the ProjectUserS3Credentials + 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: ProjectUserS3CredentialSpec defines the desired state of + ProjectUserS3Credential + 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: + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + 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: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.serviceName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceName) + || (has(self.initProvider) && has(self.initProvider.serviceName))' + - message: spec.forProvider.userId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.userId) + || (has(self.initProvider) && has(self.initProvider.userId))' + status: + description: ProjectUserS3CredentialStatus defines the observed state + of ProjectUserS3Credential. + properties: + atProvider: + properties: + accessKeyId: + type: string + id: + type: string + internalUserId: + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + 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/accountmanagement.ovh.edixos.io_projectusers3policies.yaml b/package/crds/accountmanagement.ovh.edixos.io_projectusers3policies.yaml new file mode 100644 index 0000000..946163b --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_projectusers3policies.yaml @@ -0,0 +1,338 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectusers3policies.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectUserS3Policy + listKind: ProjectUserS3PolicyList + plural: projectusers3policies + singular: projectusers3policy + 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: ProjectUserS3Policy is the Schema for the ProjectUserS3Policys + 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: ProjectUserS3PolicySpec defines the desired state of ProjectUserS3Policy + 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: + policy: + description: The policy document. This is a JSON formatted string. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + 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: + policy: + description: The policy document. This is a JSON formatted string. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + 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.policy is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.policy) + || (has(self.initProvider) && has(self.initProvider.policy))' + - 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.userId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.userId) + || (has(self.initProvider) && has(self.initProvider.userId))' + status: + description: ProjectUserS3PolicyStatus defines the observed state of ProjectUserS3Policy. + properties: + atProvider: + properties: + id: + type: string + policy: + description: The policy document. This is a JSON formatted string. + type: string + serviceName: + description: Service name of the resource representing the ID + of the cloud project. + type: string + userId: + description: The user ID + 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/accountmanagement.ovh.edixos.io_sshkeys.yaml b/package/crds/accountmanagement.ovh.edixos.io_sshkeys.yaml new file mode 100644 index 0000000..12726c3 --- /dev/null +++ b/package/crds/accountmanagement.ovh.edixos.io_sshkeys.yaml @@ -0,0 +1,333 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: sshkeys.accountmanagement.ovh.edixos.io +spec: + group: accountmanagement.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: SSHKey + listKind: SSHKeyList + plural: sshkeys + singular: sshkey + 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: SSHKey is the Schema for the SSHKeys 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: SSHKeySpec defines the desired state of SSHKey + 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: + default: + description: True when this public Ssh key is used for rescue + mode and reinstallations + type: boolean + key: + description: ASCII encoded public Ssh key + type: string + keyName: + description: Name of this public Ssh key + 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: + default: + description: True when this public Ssh key is used for rescue + mode and reinstallations + type: boolean + key: + description: ASCII encoded public Ssh key + type: string + keyName: + description: Name of this public Ssh key + 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.key is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.key) + || (has(self.initProvider) && has(self.initProvider.key))' + - message: spec.forProvider.keyName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keyName) + || (has(self.initProvider) && has(self.initProvider.keyName))' + status: + description: SSHKeyStatus defines the observed state of SSHKey. + properties: + atProvider: + properties: + default: + description: True when this public Ssh key is used for rescue + mode and reinstallations + type: boolean + id: + type: string + key: + description: ASCII encoded public Ssh key + type: string + keyName: + description: Name of this public Ssh key + 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/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml b/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml new file mode 100644 index 0000000..f2116af --- /dev/null +++ b/package/crds/additionalip.ovh.edixos.io_projectfailoveripattaches.yaml @@ -0,0 +1,365 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectfailoveripattaches.additionalip.ovh.edixos.io +spec: + group: additionalip.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: ProjectFailoverIPAttach + listKind: ProjectFailoverIPAttachList + plural: projectfailoveripattaches + singular: projectfailoveripattach + 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: ProjectFailoverIPAttach is the Schema for the ProjectFailoverIPAttachs + 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: ProjectFailoverIPAttachSpec defines the desired state of + ProjectFailoverIPAttach + 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: IP block + type: string + continentCode: + description: Ip continent + type: string + geoLoc: + description: Ip location + type: string + ip: + description: Ip + type: string + routedTo: + description: Instance where ip is routed to + type: string + serviceName: + description: The service name + type: string + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + block: + description: IP block + type: string + continentCode: + description: Ip continent + type: string + geoLoc: + description: Ip location + type: string + ip: + description: Ip + type: string + routedTo: + description: Instance where ip is routed to + type: string + serviceName: + description: The service name + type: string + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + x-kubernetes-validations: + - message: spec.forProvider.serviceName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceName) + || (has(self.initProvider) && has(self.initProvider.serviceName))' + status: + description: ProjectFailoverIPAttachStatus defines the observed state + of ProjectFailoverIPAttach. + properties: + atProvider: + properties: + block: + description: IP block + type: string + continentCode: + description: Ip continent + type: string + geoLoc: + description: Ip location + type: string + id: + type: string + ip: + description: Ip + type: string + progress: + description: Current operation progress in percent + type: number + routedTo: + description: Instance where ip is routed to + type: string + serviceName: + description: The service name + type: string + status: + description: Ip status + type: string + subType: + description: IP sub type + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/additionalip.ovh.edixos.io_reverses.yaml b/package/crds/additionalip.ovh.edixos.io_reverses.yaml new file mode 100644 index 0000000..3d5a22b --- /dev/null +++ b/package/crds/additionalip.ovh.edixos.io_reverses.yaml @@ -0,0 +1,325 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: reverses.additionalip.ovh.edixos.io +spec: + group: additionalip.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Reverse + listKind: ReverseList + plural: reverses + singular: reverse + 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: Reverse is the Schema for the Reverses 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: ReverseSpec defines the desired state of Reverse + 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: + type: string + ipReverse: + type: string + reverse: + 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: + ip: + type: string + ipReverse: + type: string + reverse: + 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.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.ipReverse is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ipReverse) + || (has(self.initProvider) && has(self.initProvider.ipReverse))' + - message: spec.forProvider.reverse is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.reverse) + || (has(self.initProvider) && has(self.initProvider.reverse))' + status: + description: ReverseStatus defines the observed state of Reverse. + properties: + atProvider: + properties: + id: + type: string + ip: + type: string + ipReverse: + type: string + reverse: + 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/additionalip.ovh.edixos.io_services.yaml b/package/crds/additionalip.ovh.edixos.io_services.yaml new file mode 100644 index 0000000..a46fa81 --- /dev/null +++ b/package/crds/additionalip.ovh.edixos.io_services.yaml @@ -0,0 +1,562 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: services.additionalip.ovh.edixos.io +spec: + group: additionalip.ovh.edixos.io + names: + categories: + - crossplane + - managed + - ovh + kind: Service + listKind: ServiceList + plural: services + singular: service + 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: Service is the Schema for the Services 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: ServiceSpec defines the desired state of Service + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + description: + description: Custom description on your ip + type: string + 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: Custom description on your ip + 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: ServiceStatus defines the observed state of Service. + properties: + atProvider: + properties: + canBeTerminated: + type: boolean + country: + type: string + description: + description: Custom description on your ip + type: string + id: + type: string + ip: + 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 + organisationId: + 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 + routedTo: + description: Routage information + items: + properties: + serviceName: + type: string + type: object + type: array + serviceName: + type: string + type: + description: Possible values for ip type + type: string + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/publiccloudnetwork.edixos.io_projectnetworkprivates.yaml b/package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivates.yaml similarity index 99% rename from package/crds/publiccloudnetwork.edixos.io_projectnetworkprivates.yaml rename to package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivates.yaml index baa0241..2e0813e 100644 --- a/package/crds/publiccloudnetwork.edixos.io_projectnetworkprivates.yaml +++ b/package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivates.yaml @@ -4,9 +4,9 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 - name: projectnetworkprivates.publiccloudnetwork.edixos.io + name: projectnetworkprivates.publiccloudnetwork.ovh.edixos.io spec: - group: publiccloudnetwork.edixos.io + group: publiccloudnetwork.ovh.edixos.io names: categories: - crossplane diff --git a/package/crds/publiccloudnetwork.edixos.io_projectnetworkprivatesubnets.yaml b/package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivatesubnets.yaml similarity index 99% rename from package/crds/publiccloudnetwork.edixos.io_projectnetworkprivatesubnets.yaml rename to package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivatesubnets.yaml index 9eb1fcc..51eaaab 100644 --- a/package/crds/publiccloudnetwork.edixos.io_projectnetworkprivatesubnets.yaml +++ b/package/crds/publiccloudnetwork.ovh.edixos.io_projectnetworkprivatesubnets.yaml @@ -4,9 +4,9 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 - name: projectnetworkprivatesubnets.publiccloudnetwork.edixos.io + name: projectnetworkprivatesubnets.publiccloudnetwork.ovh.edixos.io spec: - group: publiccloudnetwork.edixos.io + group: publiccloudnetwork.ovh.edixos.io names: categories: - crossplane diff --git a/package/crds/cloud.edixos.io_projectworkflowbackups.yaml b/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml similarity index 99% rename from package/crds/cloud.edixos.io_projectworkflowbackups.yaml rename to package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml index 07c0116..9b3e788 100644 --- a/package/crds/cloud.edixos.io_projectworkflowbackups.yaml +++ b/package/crds/vminstances.ovh.edixos.io_projectworkflowbackups.yaml @@ -4,9 +4,9 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 - name: projectworkflowbackups.cloud.edixos.io + name: projectworkflowbackups.vminstances.ovh.edixos.io spec: - group: cloud.edixos.io + group: vminstances.ovh.edixos.io names: categories: - crossplane