diff --git a/apis/api/v1alpha1/zz_generated.deepcopy.go b/apis/api/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..055a634 --- /dev/null +++ b/apis/api/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,374 @@ +//go:build !ignore_autogenerated +// +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 *EnvironmentObservation) DeepCopyInto(out *EnvironmentObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentObservation. +func (in *EnvironmentObservation) DeepCopy() *EnvironmentObservation { + if in == nil { + return nil + } + out := new(EnvironmentObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EnvironmentParameters) DeepCopyInto(out *EnvironmentParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentParameters. +func (in *EnvironmentParameters) DeepCopy() *EnvironmentParameters { + if in == nil { + return nil + } + out := new(EnvironmentParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Key) DeepCopyInto(out *Key) { + *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 Key. +func (in *Key) DeepCopy() *Key { + if in == nil { + return nil + } + out := new(Key) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Key) 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 *KeyList) DeepCopyInto(out *KeyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Key, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyList. +func (in *KeyList) DeepCopy() *KeyList { + if in == nil { + return nil + } + out := new(KeyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KeyList) 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 *KeyObservation) DeepCopyInto(out *KeyObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisableWaitForReady != nil { + in, out := &in.DisableWaitForReady, &out.DisableWaitForReady + *out = new(bool) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ManagedResource != nil { + in, out := &in.ManagedResource, &out.ManagedResource + *out = make([]ManagedResourceObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = make([]OwnerObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyObservation. +func (in *KeyObservation) DeepCopy() *KeyObservation { + if in == nil { + return nil + } + out := new(KeyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeyParameters) DeepCopyInto(out *KeyParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisableWaitForReady != nil { + in, out := &in.DisableWaitForReady, &out.DisableWaitForReady + *out = new(bool) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.ManagedResource != nil { + in, out := &in.ManagedResource, &out.ManagedResource + *out = make([]ManagedResourceParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = make([]OwnerParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyParameters. +func (in *KeyParameters) DeepCopy() *KeyParameters { + if in == nil { + return nil + } + out := new(KeyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeySpec) DeepCopyInto(out *KeySpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeySpec. +func (in *KeySpec) DeepCopy() *KeySpec { + if in == nil { + return nil + } + out := new(KeySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeyStatus) DeepCopyInto(out *KeyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyStatus. +func (in *KeyStatus) DeepCopy() *KeyStatus { + if in == nil { + return nil + } + out := new(KeyStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedResourceObservation) DeepCopyInto(out *ManagedResourceObservation) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.Environment != nil { + in, out := &in.Environment, &out.Environment + *out = make([]EnvironmentObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedResourceObservation. +func (in *ManagedResourceObservation) DeepCopy() *ManagedResourceObservation { + if in == nil { + return nil + } + out := new(ManagedResourceObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedResourceParameters) DeepCopyInto(out *ManagedResourceParameters) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.Environment != nil { + in, out := &in.Environment, &out.Environment + *out = make([]EnvironmentParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedResourceParameters. +func (in *ManagedResourceParameters) DeepCopy() *ManagedResourceParameters { + if in == nil { + return nil + } + out := new(ManagedResourceParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OwnerObservation) DeepCopyInto(out *OwnerObservation) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OwnerObservation. +func (in *OwnerObservation) DeepCopy() *OwnerObservation { + if in == nil { + return nil + } + out := new(OwnerObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OwnerParameters) DeepCopyInto(out *OwnerParameters) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OwnerParameters. +func (in *OwnerParameters) DeepCopy() *OwnerParameters { + if in == nil { + return nil + } + out := new(OwnerParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/api/v1alpha1/zz_generated.managed.go b/apis/api/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..04e4eeb --- /dev/null +++ b/apis/api/v1alpha1/zz_generated.managed.go @@ -0,0 +1,84 @@ +/* +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 Key. +func (mg *Key) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Key. +func (mg *Key) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this Key. +func (mg *Key) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this Key. +func (mg *Key) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this Key. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *Key) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this Key. +func (mg *Key) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Key. +func (mg *Key) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Key. +func (mg *Key) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Key. +func (mg *Key) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this Key. +func (mg *Key) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this Key. +func (mg *Key) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this Key. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *Key) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this Key. +func (mg *Key) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Key. +func (mg *Key) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/api/v1alpha1/zz_generated.managedlist.go b/apis/api/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..bdceecc --- /dev/null +++ b/apis/api/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this KeyList. +func (l *KeyList) 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/api/v1alpha1/zz_generated_terraformed.go b/apis/api/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..b2ea713 --- /dev/null +++ b/apis/api/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,88 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Key +func (mg *Key) GetTerraformResourceType() string { + return "confluent_api_key" +} + +// GetConnectionDetailsMapping for this Key +func (tr *Key) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"secret": "status.atProvider.secret"} +} + +// GetObservation of this Key +func (tr *Key) 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 Key +func (tr *Key) 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 Key +func (tr *Key) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Key +func (tr *Key) 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 Key +func (tr *Key) 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) +} + +// LateInitialize this Key using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Key) LateInitialize(attrs []byte) (bool, error) { + params := &KeyParameters{} + 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 *Key) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/api/v1alpha1/zz_groupversion_info.go b/apis/api/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..9ba1f43 --- /dev/null +++ b/apis/api/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=api.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "api.crossplane.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/api/v1alpha1/zz_key_types.go b/apis/api/v1alpha1/zz_key_types.go new file mode 100755 index 0000000..0b69461 --- /dev/null +++ b/apis/api/v1alpha1/zz_key_types.go @@ -0,0 +1,181 @@ +/* +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 EnvironmentObservation struct { + + // The unique identifier for the environment. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type EnvironmentParameters struct { + + // The unique identifier for the environment. + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` +} + +type KeyObservation struct { + + // A free-form description of the API key. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Defaults to `false`. + DisableWaitForReady *bool `json:"disableWaitForReady,omitempty" tf:"disable_wait_for_ready,omitempty"` + + // A human-readable name for the API key. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The resource associated with this object. The only resource that is supported is 'cmk.v2.Cluster', 'srcm.v2.Cluster'. + ManagedResource []ManagedResourceObservation `json:"managedResource,omitempty" tf:"managed_resource,omitempty"` + + // The owner to which the API Key belongs. The owner can be one of 'iam.v2.User', 'iam.v2.ServiceAccount'. + Owner []OwnerObservation `json:"owner,omitempty" tf:"owner,omitempty"` +} + +type KeyParameters struct { + + // A free-form description of the API key. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Defaults to `false`. + // +kubebuilder:validation:Optional + DisableWaitForReady *bool `json:"disableWaitForReady,omitempty" tf:"disable_wait_for_ready,omitempty"` + + // A human-readable name for the API key. + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // The resource associated with this object. The only resource that is supported is 'cmk.v2.Cluster', 'srcm.v2.Cluster'. + // +kubebuilder:validation:Optional + ManagedResource []ManagedResourceParameters `json:"managedResource,omitempty" tf:"managed_resource,omitempty"` + + // The owner to which the API Key belongs. The owner can be one of 'iam.v2.User', 'iam.v2.ServiceAccount'. + // +kubebuilder:validation:Optional + Owner []OwnerParameters `json:"owner,omitempty" tf:"owner,omitempty"` +} + +type ManagedResourceObservation struct { + + // The API version of the referred owner. + APIVersion *string `json:"apiVersion,omitempty" tf:"api_version,omitempty"` + + // Environment objects represent an isolated namespace for your Confluent resources for organizational purposes. + Environment []EnvironmentObservation `json:"environment,omitempty" tf:"environment,omitempty"` + + // The unique identifier for the referred resource. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The kind of the referred resource. + Kind *string `json:"kind,omitempty" tf:"kind,omitempty"` +} + +type ManagedResourceParameters struct { + + // The API version of the referred owner. + // +kubebuilder:validation:Required + APIVersion *string `json:"apiVersion" tf:"api_version,omitempty"` + + // Environment objects represent an isolated namespace for your Confluent resources for organizational purposes. + // +kubebuilder:validation:Required + Environment []EnvironmentParameters `json:"environment" tf:"environment,omitempty"` + + // The unique identifier for the referred resource. + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` + + // The kind of the referred resource. + // +kubebuilder:validation:Required + Kind *string `json:"kind" tf:"kind,omitempty"` +} + +type OwnerObservation struct { + + // The API version of the referred owner. + APIVersion *string `json:"apiVersion,omitempty" tf:"api_version,omitempty"` + + // The unique identifier for the referred owner. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The kind of the referred owner. + Kind *string `json:"kind,omitempty" tf:"kind,omitempty"` +} + +type OwnerParameters struct { + + // The API version of the referred owner. + // +kubebuilder:validation:Required + APIVersion *string `json:"apiVersion" tf:"api_version,omitempty"` + + // The unique identifier for the referred owner. + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` + + // The kind of the referred owner. + // +kubebuilder:validation:Required + Kind *string `json:"kind" tf:"kind,omitempty"` +} + +// KeySpec defines the desired state of Key +type KeySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider KeyParameters `json:"forProvider"` +} + +// KeyStatus defines the observed state of Key. +type KeyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider KeyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Key is the Schema for the Keys 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,confluent} +type Key struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.owner)",message="owner is a required parameter" + Spec KeySpec `json:"spec"` + Status KeyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// KeyList contains a list of Keys +type KeyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Key `json:"items"` +} + +// Repository type metadata. +var ( + Key_Kind = "Key" + Key_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Key_Kind}.String() + Key_KindAPIVersion = Key_Kind + "." + CRDGroupVersion.String() + Key_GroupVersionKind = CRDGroupVersion.WithKind(Key_Kind) +) + +func init() { + SchemeBuilder.Register(&Key{}, &KeyList{}) +} diff --git a/apis/kafka/v1alpha1/zz_acl_types.go b/apis/kafka/v1alpha1/zz_acl_types.go new file mode 100755 index 0000000..b9f6528 --- /dev/null +++ b/apis/kafka/v1alpha1/zz_acl_types.go @@ -0,0 +1,173 @@ +/* +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 ACLObservation struct { + + // The Cluster API Credentials. + Credentials []CredentialsParameters `json:"credentials,omitempty" tf:"credentials,omitempty"` + + // The host for the ACL. + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + KafkaCluster []KafkaClusterObservation `json:"kafkaCluster,omitempty" tf:"kafka_cluster,omitempty"` + + // The operation type for the ACL. + Operation *string `json:"operation,omitempty" tf:"operation,omitempty"` + + // The pattern type for the ACL. + PatternType *string `json:"patternType,omitempty" tf:"pattern_type,omitempty"` + + // The permission for the ACL. + Permission *string `json:"permission,omitempty" tf:"permission,omitempty"` + + // The principal for the ACL. + Principal *string `json:"principal,omitempty" tf:"principal,omitempty"` + + // The resource name for the ACL. + ResourceName *string `json:"resourceName,omitempty" tf:"resource_name,omitempty"` + + // The type of the resource. + ResourceType *string `json:"resourceType,omitempty" tf:"resource_type,omitempty"` + + // The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + RestEndpoint *string `json:"restEndpoint,omitempty" tf:"rest_endpoint,omitempty"` +} + +type ACLParameters struct { + + // The Cluster API Credentials. + // +kubebuilder:validation:Optional + Credentials []CredentialsParameters `json:"credentials,omitempty" tf:"credentials,omitempty"` + + // The host for the ACL. + // +kubebuilder:validation:Optional + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + // +kubebuilder:validation:Optional + KafkaCluster []KafkaClusterParameters `json:"kafkaCluster,omitempty" tf:"kafka_cluster,omitempty"` + + // The operation type for the ACL. + // +kubebuilder:validation:Optional + Operation *string `json:"operation,omitempty" tf:"operation,omitempty"` + + // The pattern type for the ACL. + // +kubebuilder:validation:Optional + PatternType *string `json:"patternType,omitempty" tf:"pattern_type,omitempty"` + + // The permission for the ACL. + // +kubebuilder:validation:Optional + Permission *string `json:"permission,omitempty" tf:"permission,omitempty"` + + // The principal for the ACL. + // +kubebuilder:validation:Optional + Principal *string `json:"principal,omitempty" tf:"principal,omitempty"` + + // The resource name for the ACL. + // +kubebuilder:validation:Optional + ResourceName *string `json:"resourceName,omitempty" tf:"resource_name,omitempty"` + + // The type of the resource. + // +kubebuilder:validation:Optional + ResourceType *string `json:"resourceType,omitempty" tf:"resource_type,omitempty"` + + // The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + // +kubebuilder:validation:Optional + RestEndpoint *string `json:"restEndpoint,omitempty" tf:"rest_endpoint,omitempty"` +} + +type CredentialsObservation struct { +} + +type CredentialsParameters struct { + + // The Cluster API Key for your Confluent Cloud cluster. + // +kubebuilder:validation:Required + KeySecretRef v1.SecretKeySelector `json:"keySecretRef" tf:"-"` + + // The Cluster API Secret for your Confluent Cloud cluster. + // +kubebuilder:validation:Required + SecretSecretRef v1.SecretKeySelector `json:"secretSecretRef" tf:"-"` +} + +type KafkaClusterObservation struct { + + // The Kafka cluster ID (e.g., `lkc-12345`). + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type KafkaClusterParameters struct { + + // The Kafka cluster ID (e.g., `lkc-12345`). + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` +} + +// ACLSpec defines the desired state of ACL +type ACLSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ACLParameters `json:"forProvider"` +} + +// ACLStatus defines the observed state of ACL. +type ACLStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ACLObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ACL is the Schema for the ACLs 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,confluent} +type ACL struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.host)",message="host is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.operation)",message="operation is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.patternType)",message="patternType is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.permission)",message="permission is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.principal)",message="principal is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceName)",message="resourceName is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceType)",message="resourceType is a required parameter" + Spec ACLSpec `json:"spec"` + Status ACLStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ACLList contains a list of ACLs +type ACLList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ACL `json:"items"` +} + +// Repository type metadata. +var ( + ACL_Kind = "ACL" + ACL_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ACL_Kind}.String() + ACL_KindAPIVersion = ACL_Kind + "." + CRDGroupVersion.String() + ACL_GroupVersionKind = CRDGroupVersion.WithKind(ACL_Kind) +) + +func init() { + SchemeBuilder.Register(&ACL{}, &ACLList{}) +} diff --git a/apis/kafka/v1alpha1/zz_cluster_types.go b/apis/kafka/v1alpha1/zz_cluster_types.go new file mode 100755 index 0000000..f0e3ea0 --- /dev/null +++ b/apis/kafka/v1alpha1/zz_cluster_types.go @@ -0,0 +1,206 @@ +/* +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 BasicObservation struct { +} + +type BasicParameters struct { +} + +type ClusterObservation struct { + + // API Version defines the schema version of this representation of a Kafka cluster. + APIVersion *string `json:"apiVersion,omitempty" tf:"api_version,omitempty"` + + // The availability zone configuration of the Kafka cluster. + Availability *string `json:"availability,omitempty" tf:"availability,omitempty"` + + Basic []BasicParameters `json:"basic,omitempty" tf:"basic,omitempty"` + + // The bootstrap endpoint used by Kafka clients to connect to the Kafka cluster. + BootstrapEndpoint *string `json:"bootstrapEndpoint,omitempty" tf:"bootstrap_endpoint,omitempty"` + + // The cloud service provider that runs the Kafka cluster. + Cloud *string `json:"cloud,omitempty" tf:"cloud,omitempty"` + + Dedicated []DedicatedObservation `json:"dedicated,omitempty" tf:"dedicated,omitempty"` + + // The name of the Kafka cluster. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Environment objects represent an isolated namespace for your Confluent resources for organizational purposes. + Environment []EnvironmentObservation `json:"environment,omitempty" tf:"environment,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Kind defines the object Kafka cluster represents. + Kind *string `json:"kind,omitempty" tf:"kind,omitempty"` + + // Network represents a network (VPC) in Confluent Cloud. All Networks exist within Confluent-managed cloud provider accounts. + Network []NetworkObservation `json:"network,omitempty" tf:"network,omitempty"` + + // The Confluent Resource Name of the Kafka cluster suitable for confluent_role_binding's crn_pattern. + RbacCrn *string `json:"rbacCrn,omitempty" tf:"rbac_crn,omitempty"` + + // The cloud service provider region where the Kafka cluster is running. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The REST endpoint of the Kafka cluster. + RestEndpoint *string `json:"restEndpoint,omitempty" tf:"rest_endpoint,omitempty"` + + Standard []StandardParameters `json:"standard,omitempty" tf:"standard,omitempty"` +} + +type ClusterParameters struct { + + // The availability zone configuration of the Kafka cluster. + // +kubebuilder:validation:Optional + Availability *string `json:"availability,omitempty" tf:"availability,omitempty"` + + // +kubebuilder:validation:Optional + Basic []BasicParameters `json:"basic,omitempty" tf:"basic,omitempty"` + + // The cloud service provider that runs the Kafka cluster. + // +kubebuilder:validation:Optional + Cloud *string `json:"cloud,omitempty" tf:"cloud,omitempty"` + + // +kubebuilder:validation:Optional + Dedicated []DedicatedParameters `json:"dedicated,omitempty" tf:"dedicated,omitempty"` + + // The name of the Kafka cluster. + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Environment objects represent an isolated namespace for your Confluent resources for organizational purposes. + // +kubebuilder:validation:Optional + Environment []EnvironmentParameters `json:"environment,omitempty" tf:"environment,omitempty"` + + // Network represents a network (VPC) in Confluent Cloud. All Networks exist within Confluent-managed cloud provider accounts. + // +kubebuilder:validation:Optional + Network []NetworkParameters `json:"network,omitempty" tf:"network,omitempty"` + + // The cloud service provider region where the Kafka cluster is running. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // +kubebuilder:validation:Optional + Standard []StandardParameters `json:"standard,omitempty" tf:"standard,omitempty"` +} + +type DedicatedObservation struct { + + // The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. MULTI_ZONE dedicated clusters must have at least two CKUs. + Cku *float64 `json:"cku,omitempty" tf:"cku,omitempty"` + + // The ID of the encryption key that is used to encrypt the data in the Kafka cluster. + EncryptionKey *string `json:"encryptionKey,omitempty" tf:"encryption_key,omitempty"` +} + +type DedicatedParameters struct { + + // The number of Confluent Kafka Units (CKUs) for Dedicated cluster types. MULTI_ZONE dedicated clusters must have at least two CKUs. + // +kubebuilder:validation:Required + Cku *float64 `json:"cku" tf:"cku,omitempty"` + + // The ID of the encryption key that is used to encrypt the data in the Kafka cluster. + // +kubebuilder:validation:Optional + EncryptionKey *string `json:"encryptionKey,omitempty" tf:"encryption_key,omitempty"` +} + +type EnvironmentObservation struct { + + // The unique identifier for the environment. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type EnvironmentParameters struct { + + // The unique identifier for the environment. + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` +} + +type NetworkObservation struct { + + // The unique identifier for the network. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type NetworkParameters struct { + + // The unique identifier for the network. + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` +} + +type StandardObservation struct { +} + +type StandardParameters struct { +} + +// ClusterSpec defines the desired state of Cluster +type ClusterSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ClusterParameters `json:"forProvider"` +} + +// ClusterStatus defines the observed state of Cluster. +type ClusterStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ClusterObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Cluster is the Schema for the Clusters 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,confluent} +type Cluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.availability)",message="availability is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.cloud)",message="cloud is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.displayName)",message="displayName is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.environment)",message="environment is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region)",message="region is a required parameter" + Spec ClusterSpec `json:"spec"` + Status ClusterStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ClusterList contains a list of Clusters +type ClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Cluster `json:"items"` +} + +// Repository type metadata. +var ( + Cluster_Kind = "Cluster" + Cluster_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Cluster_Kind}.String() + Cluster_KindAPIVersion = Cluster_Kind + "." + CRDGroupVersion.String() + Cluster_GroupVersionKind = CRDGroupVersion.WithKind(Cluster_Kind) +) + +func init() { + SchemeBuilder.Register(&Cluster{}, &ClusterList{}) +} diff --git a/apis/kafka/v1alpha1/zz_clusterconfig_types.go b/apis/kafka/v1alpha1/zz_clusterconfig_types.go new file mode 100755 index 0000000..2dd590c --- /dev/null +++ b/apis/kafka/v1alpha1/zz_clusterconfig_types.go @@ -0,0 +1,125 @@ +/* +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 ClusterConfigCredentialsObservation struct { +} + +type ClusterConfigCredentialsParameters struct { + + // The Cluster API Key for your Confluent Cloud cluster. + // +kubebuilder:validation:Required + KeySecretRef v1.SecretKeySelector `json:"keySecretRef" tf:"-"` + + // The Cluster API Secret for your Confluent Cloud cluster. + // +kubebuilder:validation:Required + SecretSecretRef v1.SecretKeySelector `json:"secretSecretRef" tf:"-"` +} + +type ClusterConfigKafkaClusterObservation struct { + + // The Kafka cluster ID (e.g., `lkc-12345`). + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type ClusterConfigKafkaClusterParameters struct { + + // The Kafka cluster ID (e.g., `lkc-12345`). + // +kubebuilder:validation:Required + ID *string `json:"id" tf:"id,omitempty"` +} + +type ClusterConfigObservation struct { + + // The custom cluster settings to set (e.g., `"num.partitions" = "8"`). + Config map[string]*string `json:"config,omitempty" tf:"config,omitempty"` + + // The Cluster API Credentials. + Credentials []ClusterConfigCredentialsParameters `json:"credentials,omitempty" tf:"credentials,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + KafkaCluster []ClusterConfigKafkaClusterObservation `json:"kafkaCluster,omitempty" tf:"kafka_cluster,omitempty"` + + // The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + RestEndpoint *string `json:"restEndpoint,omitempty" tf:"rest_endpoint,omitempty"` +} + +type ClusterConfigParameters struct { + + // The custom cluster settings to set (e.g., `"num.partitions" = "8"`). + // +kubebuilder:validation:Optional + Config map[string]*string `json:"config,omitempty" tf:"config,omitempty"` + + // The Cluster API Credentials. + // +kubebuilder:validation:Optional + Credentials []ClusterConfigCredentialsParameters `json:"credentials,omitempty" tf:"credentials,omitempty"` + + // +kubebuilder:validation:Optional + KafkaCluster []ClusterConfigKafkaClusterParameters `json:"kafkaCluster,omitempty" tf:"kafka_cluster,omitempty"` + + // The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + // +kubebuilder:validation:Optional + RestEndpoint *string `json:"restEndpoint,omitempty" tf:"rest_endpoint,omitempty"` +} + +// ClusterConfigSpec defines the desired state of ClusterConfig +type ClusterConfigSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ClusterConfigParameters `json:"forProvider"` +} + +// ClusterConfigStatus defines the observed state of ClusterConfig. +type ClusterConfigStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ClusterConfigObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ClusterConfig is the Schema for the ClusterConfigs 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,confluent} +type ClusterConfig struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.config)",message="config is a required parameter" + Spec ClusterConfigSpec `json:"spec"` + Status ClusterConfigStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ClusterConfigList contains a list of ClusterConfigs +type ClusterConfigList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ClusterConfig `json:"items"` +} + +// Repository type metadata. +var ( + ClusterConfig_Kind = "ClusterConfig" + ClusterConfig_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ClusterConfig_Kind}.String() + ClusterConfig_KindAPIVersion = ClusterConfig_Kind + "." + CRDGroupVersion.String() + ClusterConfig_GroupVersionKind = CRDGroupVersion.WithKind(ClusterConfig_Kind) +) + +func init() { + SchemeBuilder.Register(&ClusterConfig{}, &ClusterConfigList{}) +} diff --git a/apis/kafka/v1alpha1/zz_generated.deepcopy.go b/apis/kafka/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..c93ee95 --- /dev/null +++ b/apis/kafka/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1027 @@ +//go:build !ignore_autogenerated +// +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 *ACL) DeepCopyInto(out *ACL) { + *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 ACL. +func (in *ACL) DeepCopy() *ACL { + if in == nil { + return nil + } + out := new(ACL) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ACL) 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 *ACLList) DeepCopyInto(out *ACLList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ACL, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLList. +func (in *ACLList) DeepCopy() *ACLList { + if in == nil { + return nil + } + out := new(ACLList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ACLList) 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 *ACLObservation) DeepCopyInto(out *ACLObservation) { + *out = *in + if in.Credentials != nil { + in, out := &in.Credentials, &out.Credentials + *out = make([]CredentialsParameters, len(*in)) + copy(*out, *in) + } + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KafkaCluster != nil { + in, out := &in.KafkaCluster, &out.KafkaCluster + *out = make([]KafkaClusterObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Operation != nil { + in, out := &in.Operation, &out.Operation + *out = new(string) + **out = **in + } + if in.PatternType != nil { + in, out := &in.PatternType, &out.PatternType + *out = new(string) + **out = **in + } + if in.Permission != nil { + in, out := &in.Permission, &out.Permission + *out = new(string) + **out = **in + } + if in.Principal != nil { + in, out := &in.Principal, &out.Principal + *out = new(string) + **out = **in + } + if in.ResourceName != nil { + in, out := &in.ResourceName, &out.ResourceName + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.RestEndpoint != nil { + in, out := &in.RestEndpoint, &out.RestEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLObservation. +func (in *ACLObservation) DeepCopy() *ACLObservation { + if in == nil { + return nil + } + out := new(ACLObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ACLParameters) DeepCopyInto(out *ACLParameters) { + *out = *in + if in.Credentials != nil { + in, out := &in.Credentials, &out.Credentials + *out = make([]CredentialsParameters, len(*in)) + copy(*out, *in) + } + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.KafkaCluster != nil { + in, out := &in.KafkaCluster, &out.KafkaCluster + *out = make([]KafkaClusterParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Operation != nil { + in, out := &in.Operation, &out.Operation + *out = new(string) + **out = **in + } + if in.PatternType != nil { + in, out := &in.PatternType, &out.PatternType + *out = new(string) + **out = **in + } + if in.Permission != nil { + in, out := &in.Permission, &out.Permission + *out = new(string) + **out = **in + } + if in.Principal != nil { + in, out := &in.Principal, &out.Principal + *out = new(string) + **out = **in + } + if in.ResourceName != nil { + in, out := &in.ResourceName, &out.ResourceName + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.RestEndpoint != nil { + in, out := &in.RestEndpoint, &out.RestEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLParameters. +func (in *ACLParameters) DeepCopy() *ACLParameters { + if in == nil { + return nil + } + out := new(ACLParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ACLSpec) DeepCopyInto(out *ACLSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLSpec. +func (in *ACLSpec) DeepCopy() *ACLSpec { + if in == nil { + return nil + } + out := new(ACLSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ACLStatus) DeepCopyInto(out *ACLStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ACLStatus. +func (in *ACLStatus) DeepCopy() *ACLStatus { + if in == nil { + return nil + } + out := new(ACLStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BasicObservation) DeepCopyInto(out *BasicObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicObservation. +func (in *BasicObservation) DeepCopy() *BasicObservation { + if in == nil { + return nil + } + out := new(BasicObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BasicParameters) DeepCopyInto(out *BasicParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicParameters. +func (in *BasicParameters) DeepCopy() *BasicParameters { + if in == nil { + return nil + } + out := new(BasicParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Cluster) DeepCopyInto(out *Cluster) { + *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 Cluster. +func (in *Cluster) DeepCopy() *Cluster { + if in == nil { + return nil + } + out := new(Cluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Cluster) 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 *ClusterConfig) DeepCopyInto(out *ClusterConfig) { + *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 ClusterConfig. +func (in *ClusterConfig) DeepCopy() *ClusterConfig { + if in == nil { + return nil + } + out := new(ClusterConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterConfig) 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 *ClusterConfigCredentialsObservation) DeepCopyInto(out *ClusterConfigCredentialsObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigCredentialsObservation. +func (in *ClusterConfigCredentialsObservation) DeepCopy() *ClusterConfigCredentialsObservation { + if in == nil { + return nil + } + out := new(ClusterConfigCredentialsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigCredentialsParameters) DeepCopyInto(out *ClusterConfigCredentialsParameters) { + *out = *in + out.KeySecretRef = in.KeySecretRef + out.SecretSecretRef = in.SecretSecretRef +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigCredentialsParameters. +func (in *ClusterConfigCredentialsParameters) DeepCopy() *ClusterConfigCredentialsParameters { + if in == nil { + return nil + } + out := new(ClusterConfigCredentialsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigKafkaClusterObservation) DeepCopyInto(out *ClusterConfigKafkaClusterObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigKafkaClusterObservation. +func (in *ClusterConfigKafkaClusterObservation) DeepCopy() *ClusterConfigKafkaClusterObservation { + if in == nil { + return nil + } + out := new(ClusterConfigKafkaClusterObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigKafkaClusterParameters) DeepCopyInto(out *ClusterConfigKafkaClusterParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigKafkaClusterParameters. +func (in *ClusterConfigKafkaClusterParameters) DeepCopy() *ClusterConfigKafkaClusterParameters { + if in == nil { + return nil + } + out := new(ClusterConfigKafkaClusterParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigList) DeepCopyInto(out *ClusterConfigList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ClusterConfig, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigList. +func (in *ClusterConfigList) DeepCopy() *ClusterConfigList { + if in == nil { + return nil + } + out := new(ClusterConfigList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterConfigList) 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 *ClusterConfigObservation) DeepCopyInto(out *ClusterConfigObservation) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.Credentials != nil { + in, out := &in.Credentials, &out.Credentials + *out = make([]ClusterConfigCredentialsParameters, len(*in)) + copy(*out, *in) + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KafkaCluster != nil { + in, out := &in.KafkaCluster, &out.KafkaCluster + *out = make([]ClusterConfigKafkaClusterObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestEndpoint != nil { + in, out := &in.RestEndpoint, &out.RestEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigObservation. +func (in *ClusterConfigObservation) DeepCopy() *ClusterConfigObservation { + if in == nil { + return nil + } + out := new(ClusterConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigParameters) DeepCopyInto(out *ClusterConfigParameters) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + in, out := &val, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.Credentials != nil { + in, out := &in.Credentials, &out.Credentials + *out = make([]ClusterConfigCredentialsParameters, len(*in)) + copy(*out, *in) + } + if in.KafkaCluster != nil { + in, out := &in.KafkaCluster, &out.KafkaCluster + *out = make([]ClusterConfigKafkaClusterParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestEndpoint != nil { + in, out := &in.RestEndpoint, &out.RestEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigParameters. +func (in *ClusterConfigParameters) DeepCopy() *ClusterConfigParameters { + if in == nil { + return nil + } + out := new(ClusterConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigSpec) DeepCopyInto(out *ClusterConfigSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigSpec. +func (in *ClusterConfigSpec) DeepCopy() *ClusterConfigSpec { + if in == nil { + return nil + } + out := new(ClusterConfigSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterConfigStatus) DeepCopyInto(out *ClusterConfigStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigStatus. +func (in *ClusterConfigStatus) DeepCopy() *ClusterConfigStatus { + if in == nil { + return nil + } + out := new(ClusterConfigStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterList) DeepCopyInto(out *ClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Cluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList. +func (in *ClusterList) DeepCopy() *ClusterList { + if in == nil { + return nil + } + out := new(ClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterList) 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 *ClusterObservation) DeepCopyInto(out *ClusterObservation) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.Availability != nil { + in, out := &in.Availability, &out.Availability + *out = new(string) + **out = **in + } + if in.Basic != nil { + in, out := &in.Basic, &out.Basic + *out = make([]BasicParameters, len(*in)) + copy(*out, *in) + } + if in.BootstrapEndpoint != nil { + in, out := &in.BootstrapEndpoint, &out.BootstrapEndpoint + *out = new(string) + **out = **in + } + if in.Cloud != nil { + in, out := &in.Cloud, &out.Cloud + *out = new(string) + **out = **in + } + if in.Dedicated != nil { + in, out := &in.Dedicated, &out.Dedicated + *out = make([]DedicatedObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Environment != nil { + in, out := &in.Environment, &out.Environment + *out = make([]EnvironmentObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } + if in.Network != nil { + in, out := &in.Network, &out.Network + *out = make([]NetworkObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RbacCrn != nil { + in, out := &in.RbacCrn, &out.RbacCrn + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RestEndpoint != nil { + in, out := &in.RestEndpoint, &out.RestEndpoint + *out = new(string) + **out = **in + } + if in.Standard != nil { + in, out := &in.Standard, &out.Standard + *out = make([]StandardParameters, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterObservation. +func (in *ClusterObservation) DeepCopy() *ClusterObservation { + if in == nil { + return nil + } + out := new(ClusterObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters) { + *out = *in + if in.Availability != nil { + in, out := &in.Availability, &out.Availability + *out = new(string) + **out = **in + } + if in.Basic != nil { + in, out := &in.Basic, &out.Basic + *out = make([]BasicParameters, len(*in)) + copy(*out, *in) + } + if in.Cloud != nil { + in, out := &in.Cloud, &out.Cloud + *out = new(string) + **out = **in + } + if in.Dedicated != nil { + in, out := &in.Dedicated, &out.Dedicated + *out = make([]DedicatedParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Environment != nil { + in, out := &in.Environment, &out.Environment + *out = make([]EnvironmentParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Network != nil { + in, out := &in.Network, &out.Network + *out = make([]NetworkParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Standard != nil { + in, out := &in.Standard, &out.Standard + *out = make([]StandardParameters, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterParameters. +func (in *ClusterParameters) DeepCopy() *ClusterParameters { + if in == nil { + return nil + } + out := new(ClusterParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec. +func (in *ClusterSpec) DeepCopy() *ClusterSpec { + if in == nil { + return nil + } + out := new(ClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus. +func (in *ClusterStatus) DeepCopy() *ClusterStatus { + if in == nil { + return nil + } + out := new(ClusterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsObservation) DeepCopyInto(out *CredentialsObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsObservation. +func (in *CredentialsObservation) DeepCopy() *CredentialsObservation { + if in == nil { + return nil + } + out := new(CredentialsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialsParameters) DeepCopyInto(out *CredentialsParameters) { + *out = *in + out.KeySecretRef = in.KeySecretRef + out.SecretSecretRef = in.SecretSecretRef +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsParameters. +func (in *CredentialsParameters) DeepCopy() *CredentialsParameters { + if in == nil { + return nil + } + out := new(CredentialsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedObservation) DeepCopyInto(out *DedicatedObservation) { + *out = *in + if in.Cku != nil { + in, out := &in.Cku, &out.Cku + *out = new(float64) + **out = **in + } + if in.EncryptionKey != nil { + in, out := &in.EncryptionKey, &out.EncryptionKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedObservation. +func (in *DedicatedObservation) DeepCopy() *DedicatedObservation { + if in == nil { + return nil + } + out := new(DedicatedObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedParameters) DeepCopyInto(out *DedicatedParameters) { + *out = *in + if in.Cku != nil { + in, out := &in.Cku, &out.Cku + *out = new(float64) + **out = **in + } + if in.EncryptionKey != nil { + in, out := &in.EncryptionKey, &out.EncryptionKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedParameters. +func (in *DedicatedParameters) DeepCopy() *DedicatedParameters { + if in == nil { + return nil + } + out := new(DedicatedParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EnvironmentObservation) DeepCopyInto(out *EnvironmentObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentObservation. +func (in *EnvironmentObservation) DeepCopy() *EnvironmentObservation { + if in == nil { + return nil + } + out := new(EnvironmentObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EnvironmentParameters) DeepCopyInto(out *EnvironmentParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentParameters. +func (in *EnvironmentParameters) DeepCopy() *EnvironmentParameters { + if in == nil { + return nil + } + out := new(EnvironmentParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KafkaClusterObservation) DeepCopyInto(out *KafkaClusterObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaClusterObservation. +func (in *KafkaClusterObservation) DeepCopy() *KafkaClusterObservation { + if in == nil { + return nil + } + out := new(KafkaClusterObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KafkaClusterParameters) DeepCopyInto(out *KafkaClusterParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KafkaClusterParameters. +func (in *KafkaClusterParameters) DeepCopy() *KafkaClusterParameters { + if in == nil { + return nil + } + out := new(KafkaClusterParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkObservation) DeepCopyInto(out *NetworkObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkObservation. +func (in *NetworkObservation) DeepCopy() *NetworkObservation { + if in == nil { + return nil + } + out := new(NetworkObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkParameters) DeepCopyInto(out *NetworkParameters) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkParameters. +func (in *NetworkParameters) DeepCopy() *NetworkParameters { + if in == nil { + return nil + } + out := new(NetworkParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StandardObservation) DeepCopyInto(out *StandardObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StandardObservation. +func (in *StandardObservation) DeepCopy() *StandardObservation { + if in == nil { + return nil + } + out := new(StandardObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StandardParameters) DeepCopyInto(out *StandardParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StandardParameters. +func (in *StandardParameters) DeepCopy() *StandardParameters { + if in == nil { + return nil + } + out := new(StandardParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/kafka/v1alpha1/zz_generated.managed.go b/apis/kafka/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..6b0d0a7 --- /dev/null +++ b/apis/kafka/v1alpha1/zz_generated.managed.go @@ -0,0 +1,236 @@ +/* +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 ACL. +func (mg *ACL) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ACL. +func (mg *ACL) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this ACL. +func (mg *ACL) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this ACL. +func (mg *ACL) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this ACL. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *ACL) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this ACL. +func (mg *ACL) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ACL. +func (mg *ACL) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ACL. +func (mg *ACL) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ACL. +func (mg *ACL) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this ACL. +func (mg *ACL) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this ACL. +func (mg *ACL) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this ACL. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *ACL) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this ACL. +func (mg *ACL) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ACL. +func (mg *ACL) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Cluster. +func (mg *Cluster) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Cluster. +func (mg *Cluster) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this Cluster. +func (mg *Cluster) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this Cluster. +func (mg *Cluster) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this Cluster. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *Cluster) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this Cluster. +func (mg *Cluster) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Cluster. +func (mg *Cluster) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Cluster. +func (mg *Cluster) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Cluster. +func (mg *Cluster) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this Cluster. +func (mg *Cluster) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this Cluster. +func (mg *Cluster) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this Cluster. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *Cluster) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this Cluster. +func (mg *Cluster) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Cluster. +func (mg *Cluster) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ClusterConfig. +func (mg *ClusterConfig) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ClusterConfig. +func (mg *ClusterConfig) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this ClusterConfig. +func (mg *ClusterConfig) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this ClusterConfig. +func (mg *ClusterConfig) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this ClusterConfig. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *ClusterConfig) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this ClusterConfig. +func (mg *ClusterConfig) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ClusterConfig. +func (mg *ClusterConfig) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ClusterConfig. +func (mg *ClusterConfig) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ClusterConfig. +func (mg *ClusterConfig) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this ClusterConfig. +func (mg *ClusterConfig) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this ClusterConfig. +func (mg *ClusterConfig) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this ClusterConfig. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *ClusterConfig) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this ClusterConfig. +func (mg *ClusterConfig) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ClusterConfig. +func (mg *ClusterConfig) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/kafka/v1alpha1/zz_generated.managedlist.go b/apis/kafka/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..7dbbf9c --- /dev/null +++ b/apis/kafka/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 ACLList. +func (l *ACLList) 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 ClusterConfigList. +func (l *ClusterConfigList) 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 ClusterList. +func (l *ClusterList) 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/kafka/v1alpha1/zz_generated_terraformed.go b/apis/kafka/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..56120ab --- /dev/null +++ b/apis/kafka/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,236 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this ACL +func (mg *ACL) GetTerraformResourceType() string { + return "confluent_kafka_acl" +} + +// GetConnectionDetailsMapping for this ACL +func (tr *ACL) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"credentials[*].key": "spec.forProvider.credentials[*].keySecretRef", "credentials[*].secret": "spec.forProvider.credentials[*].secretSecretRef"} +} + +// GetObservation of this ACL +func (tr *ACL) 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 ACL +func (tr *ACL) 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 ACL +func (tr *ACL) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ACL +func (tr *ACL) 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 ACL +func (tr *ACL) 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) +} + +// LateInitialize this ACL using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ACL) LateInitialize(attrs []byte) (bool, error) { + params := &ACLParameters{} + 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 *ACL) GetTerraformSchemaVersion() int { + return 2 +} + +// GetTerraformResourceType returns Terraform resource type for this Cluster +func (mg *Cluster) GetTerraformResourceType() string { + return "confluent_kafka_cluster" +} + +// GetConnectionDetailsMapping for this Cluster +func (tr *Cluster) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Cluster +func (tr *Cluster) 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 Cluster +func (tr *Cluster) 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 Cluster +func (tr *Cluster) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Cluster +func (tr *Cluster) 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 Cluster +func (tr *Cluster) 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) +} + +// LateInitialize this Cluster using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Cluster) LateInitialize(attrs []byte) (bool, error) { + params := &ClusterParameters{} + 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 *Cluster) GetTerraformSchemaVersion() int { + return 1 +} + +// GetTerraformResourceType returns Terraform resource type for this ClusterConfig +func (mg *ClusterConfig) GetTerraformResourceType() string { + return "confluent_kafka_cluster_config" +} + +// GetConnectionDetailsMapping for this ClusterConfig +func (tr *ClusterConfig) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"credentials[*].key": "spec.forProvider.credentials[*].keySecretRef", "credentials[*].secret": "spec.forProvider.credentials[*].secretSecretRef"} +} + +// GetObservation of this ClusterConfig +func (tr *ClusterConfig) 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 ClusterConfig +func (tr *ClusterConfig) 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 ClusterConfig +func (tr *ClusterConfig) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ClusterConfig +func (tr *ClusterConfig) 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 ClusterConfig +func (tr *ClusterConfig) 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) +} + +// LateInitialize this ClusterConfig using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ClusterConfig) LateInitialize(attrs []byte) (bool, error) { + params := &ClusterConfigParameters{} + 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 *ClusterConfig) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/kafka/v1alpha1/zz_groupversion_info.go b/apis/kafka/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..9408c3d --- /dev/null +++ b/apis/kafka/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=kafka.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "kafka.crossplane.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/role/v1alpha1/zz_binding_types.go b/apis/role/v1alpha1/zz_binding_types.go new file mode 100755 index 0000000..2be0254 --- /dev/null +++ b/apis/role/v1alpha1/zz_binding_types.go @@ -0,0 +1,95 @@ +/* +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 BindingObservation struct { + + // A CRN that specifies the scope and resource patterns necessary for the role to bind. + CrnPattern *string `json:"crnPattern,omitempty" tf:"crn_pattern,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The principal User to bind the role to. + Principal *string `json:"principal,omitempty" tf:"principal,omitempty"` + + // The name of the role to bind to the principal. + RoleName *string `json:"roleName,omitempty" tf:"role_name,omitempty"` +} + +type BindingParameters struct { + + // A CRN that specifies the scope and resource patterns necessary for the role to bind. + // +kubebuilder:validation:Optional + CrnPattern *string `json:"crnPattern,omitempty" tf:"crn_pattern,omitempty"` + + // The principal User to bind the role to. + // +kubebuilder:validation:Optional + Principal *string `json:"principal,omitempty" tf:"principal,omitempty"` + + // The name of the role to bind to the principal. + // +kubebuilder:validation:Optional + RoleName *string `json:"roleName,omitempty" tf:"role_name,omitempty"` +} + +// BindingSpec defines the desired state of Binding +type BindingSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BindingParameters `json:"forProvider"` +} + +// BindingStatus defines the observed state of Binding. +type BindingStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BindingObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Binding is the Schema for the Bindings 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,confluent} +type Binding struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.crnPattern)",message="crnPattern is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.principal)",message="principal is a required parameter" + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleName)",message="roleName is a required parameter" + Spec BindingSpec `json:"spec"` + Status BindingStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BindingList contains a list of Bindings +type BindingList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Binding `json:"items"` +} + +// Repository type metadata. +var ( + Binding_Kind = "Binding" + Binding_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Binding_Kind}.String() + Binding_KindAPIVersion = Binding_Kind + "." + CRDGroupVersion.String() + Binding_GroupVersionKind = CRDGroupVersion.WithKind(Binding_Kind) +) + +func init() { + SchemeBuilder.Register(&Binding{}, &BindingList{}) +} diff --git a/apis/role/v1alpha1/zz_generated.deepcopy.go b/apis/role/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..ecfbdba --- /dev/null +++ b/apis/role/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,172 @@ +//go:build !ignore_autogenerated +// +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 *Binding) DeepCopyInto(out *Binding) { + *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 Binding. +func (in *Binding) DeepCopy() *Binding { + if in == nil { + return nil + } + out := new(Binding) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Binding) 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 *BindingList) DeepCopyInto(out *BindingList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Binding, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingList. +func (in *BindingList) DeepCopy() *BindingList { + if in == nil { + return nil + } + out := new(BindingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BindingList) 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 *BindingObservation) DeepCopyInto(out *BindingObservation) { + *out = *in + if in.CrnPattern != nil { + in, out := &in.CrnPattern, &out.CrnPattern + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Principal != nil { + in, out := &in.Principal, &out.Principal + *out = new(string) + **out = **in + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingObservation. +func (in *BindingObservation) DeepCopy() *BindingObservation { + if in == nil { + return nil + } + out := new(BindingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BindingParameters) DeepCopyInto(out *BindingParameters) { + *out = *in + if in.CrnPattern != nil { + in, out := &in.CrnPattern, &out.CrnPattern + *out = new(string) + **out = **in + } + if in.Principal != nil { + in, out := &in.Principal, &out.Principal + *out = new(string) + **out = **in + } + if in.RoleName != nil { + in, out := &in.RoleName, &out.RoleName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingParameters. +func (in *BindingParameters) DeepCopy() *BindingParameters { + if in == nil { + return nil + } + out := new(BindingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BindingSpec) DeepCopyInto(out *BindingSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingSpec. +func (in *BindingSpec) DeepCopy() *BindingSpec { + if in == nil { + return nil + } + out := new(BindingSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BindingStatus) DeepCopyInto(out *BindingStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BindingStatus. +func (in *BindingStatus) DeepCopy() *BindingStatus { + if in == nil { + return nil + } + out := new(BindingStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/role/v1alpha1/zz_generated.managed.go b/apis/role/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..b28e74b --- /dev/null +++ b/apis/role/v1alpha1/zz_generated.managed.go @@ -0,0 +1,84 @@ +/* +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 Binding. +func (mg *Binding) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Binding. +func (mg *Binding) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this Binding. +func (mg *Binding) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this Binding. +func (mg *Binding) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this Binding. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *Binding) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this Binding. +func (mg *Binding) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Binding. +func (mg *Binding) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Binding. +func (mg *Binding) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Binding. +func (mg *Binding) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this Binding. +func (mg *Binding) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this Binding. +func (mg *Binding) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this Binding. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *Binding) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this Binding. +func (mg *Binding) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Binding. +func (mg *Binding) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/role/v1alpha1/zz_generated.managedlist.go b/apis/role/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..68e9d26 --- /dev/null +++ b/apis/role/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this BindingList. +func (l *BindingList) 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/role/v1alpha1/zz_generated_terraformed.go b/apis/role/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..37d6ff2 --- /dev/null +++ b/apis/role/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,88 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Binding +func (mg *Binding) GetTerraformResourceType() string { + return "confluent_role_binding" +} + +// GetConnectionDetailsMapping for this Binding +func (tr *Binding) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Binding +func (tr *Binding) 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 Binding +func (tr *Binding) 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 Binding +func (tr *Binding) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Binding +func (tr *Binding) 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 Binding +func (tr *Binding) 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) +} + +// LateInitialize this Binding using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Binding) LateInitialize(attrs []byte) (bool, error) { + params := &BindingParameters{} + 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 *Binding) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/role/v1alpha1/zz_groupversion_info.go b/apis/role/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..01af4f5 --- /dev/null +++ b/apis/role/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=role.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "role.crossplane.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/service/v1alpha1/zz_account_types.go b/apis/service/v1alpha1/zz_account_types.go new file mode 100755 index 0000000..3bba5d0 --- /dev/null +++ b/apis/service/v1alpha1/zz_account_types.go @@ -0,0 +1,92 @@ +/* +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 AccountObservation struct { + + // API Version defines the schema version of this representation of a Service Account. + APIVersion *string `json:"apiVersion,omitempty" tf:"api_version,omitempty"` + + // A free-form description of the Service Account. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A human-readable name for the Service Account. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Kind defines the object Service Account represents. + Kind *string `json:"kind,omitempty" tf:"kind,omitempty"` +} + +type AccountParameters struct { + + // A free-form description of the Service Account. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A human-readable name for the Service Account. + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` +} + +// AccountSpec defines the desired state of Account +type AccountSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider AccountParameters `json:"forProvider"` +} + +// AccountStatus defines the observed state of Account. +type AccountStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider AccountObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Account is the Schema for the Accounts 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,confluent} +type Account struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.displayName)",message="displayName is a required parameter" + Spec AccountSpec `json:"spec"` + Status AccountStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// AccountList contains a list of Accounts +type AccountList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Account `json:"items"` +} + +// Repository type metadata. +var ( + Account_Kind = "Account" + Account_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Account_Kind}.String() + Account_KindAPIVersion = Account_Kind + "." + CRDGroupVersion.String() + Account_GroupVersionKind = CRDGroupVersion.WithKind(Account_Kind) +) + +func init() { + SchemeBuilder.Register(&Account{}, &AccountList{}) +} diff --git a/apis/service/v1alpha1/zz_generated.deepcopy.go b/apis/service/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..22c10e6 --- /dev/null +++ b/apis/service/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,172 @@ +//go:build !ignore_autogenerated +// +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 *Account) DeepCopyInto(out *Account) { + *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 Account. +func (in *Account) DeepCopy() *Account { + if in == nil { + return nil + } + out := new(Account) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Account) 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 *AccountList) DeepCopyInto(out *AccountList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Account, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountList. +func (in *AccountList) DeepCopy() *AccountList { + if in == nil { + return nil + } + out := new(AccountList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AccountList) 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 *AccountObservation) DeepCopyInto(out *AccountObservation) { + *out = *in + if in.APIVersion != nil { + in, out := &in.APIVersion, &out.APIVersion + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Kind != nil { + in, out := &in.Kind, &out.Kind + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountObservation. +func (in *AccountObservation) DeepCopy() *AccountObservation { + if in == nil { + return nil + } + out := new(AccountObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccountParameters) DeepCopyInto(out *AccountParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountParameters. +func (in *AccountParameters) DeepCopy() *AccountParameters { + if in == nil { + return nil + } + out := new(AccountParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccountSpec) DeepCopyInto(out *AccountSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountSpec. +func (in *AccountSpec) DeepCopy() *AccountSpec { + if in == nil { + return nil + } + out := new(AccountSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccountStatus) DeepCopyInto(out *AccountStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountStatus. +func (in *AccountStatus) DeepCopy() *AccountStatus { + if in == nil { + return nil + } + out := new(AccountStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/service/v1alpha1/zz_generated.managed.go b/apis/service/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..e4aba79 --- /dev/null +++ b/apis/service/v1alpha1/zz_generated.managed.go @@ -0,0 +1,84 @@ +/* +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 Account. +func (mg *Account) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Account. +func (mg *Account) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicy of this Account. +func (mg *Account) GetManagementPolicy() xpv1.ManagementPolicy { + return mg.Spec.ManagementPolicy +} + +// GetProviderConfigReference of this Account. +func (mg *Account) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this Account. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *Account) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this Account. +func (mg *Account) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Account. +func (mg *Account) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Account. +func (mg *Account) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Account. +func (mg *Account) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicy of this Account. +func (mg *Account) SetManagementPolicy(r xpv1.ManagementPolicy) { + mg.Spec.ManagementPolicy = r +} + +// SetProviderConfigReference of this Account. +func (mg *Account) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this Account. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *Account) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this Account. +func (mg *Account) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Account. +func (mg *Account) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/service/v1alpha1/zz_generated.managedlist.go b/apis/service/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..f451b33 --- /dev/null +++ b/apis/service/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this AccountList. +func (l *AccountList) 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/service/v1alpha1/zz_generated_terraformed.go b/apis/service/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..fe68973 --- /dev/null +++ b/apis/service/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,88 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Account +func (mg *Account) GetTerraformResourceType() string { + return "confluent_service_account" +} + +// GetConnectionDetailsMapping for this Account +func (tr *Account) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Account +func (tr *Account) 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 Account +func (tr *Account) 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 Account +func (tr *Account) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Account +func (tr *Account) 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 Account +func (tr *Account) 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) +} + +// LateInitialize this Account using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Account) LateInitialize(attrs []byte) (bool, error) { + params := &AccountParameters{} + 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 *Account) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/service/v1alpha1/zz_groupversion_info.go b/apis/service/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..d9effa2 --- /dev/null +++ b/apis/service/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,32 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=service.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "service.crossplane.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/cluster/local/integration-tests.sh b/cluster/local/integration-tests.sh new file mode 100644 index 0000000..b893573 --- /dev/null +++ b/cluster/local/integration-tests.sh @@ -0,0 +1,196 @@ +#!/usr/bin/env bash +set -e + +# setting up colors +BLU='\033[0;34m' +YLW='\033[0;33m' +GRN='\033[0;32m' +RED='\033[0;31m' +NOC='\033[0m' # No Color +echo_info(){ + printf "\n${BLU}%s${NOC}" "$1" +} +echo_step(){ + printf "\n${BLU}>>>>>>> %s${NOC}\n" "$1" +} +echo_sub_step(){ + printf "\n${BLU}>>> %s${NOC}\n" "$1" +} + +echo_step_completed(){ + printf "${GRN} [✔]${NOC}" +} + +echo_success(){ + printf "\n${GRN}%s${NOC}\n" "$1" +} +echo_warn(){ + printf "\n${YLW}%s${NOC}" "$1" +} +echo_error(){ + printf "\n${RED}%s${NOC}" "$1" + exit 1 +} + +# ------------------------------ +projectdir="$( cd "$( dirname "${BASH_SOURCE[0]}")"/../.. && pwd )" + +# get the build environment variables from the special build.vars target in the main makefile +eval $(make --no-print-directory -C ${projectdir} build.vars) + +# ------------------------------ + +SAFEHOSTARCH="${SAFEHOSTARCH:-amd64}" +CONTROLLER_IMAGE="${BUILD_REGISTRY}/${PROJECT_NAME}-${SAFEHOSTARCH}" + +# tag as latest version to load into kind cluster +K8S_CLUSTER="${K8S_CLUSTER:-${BUILD_REGISTRY}-inttests}" + +CROSSPLANE_NAMESPACE="crossplane-system" +PACKAGE_NAME="provider-gitlab" + +# cleanup on exit +if [ "$skipcleanup" != true ]; then + function cleanup { + echo_step "Cleaning up..." + export KUBECONFIG= + "${KIND}" delete cluster --name="${K8S_CLUSTER}" + } + + trap cleanup EXIT +fi + +# setup package cache +echo_step "setting up local package cache" +CACHE_PATH="${projectdir}/.work/inttest-package-cache" +mkdir -p "${CACHE_PATH}" +echo "created cache dir at ${CACHE_PATH}" +"${UP}" alpha xpkg xp-extract --from-xpkg "${OUTPUT_DIR}"/xpkg/linux_"${SAFEHOSTARCH}"/"${PACKAGE_NAME}"-"${VERSION}".xpkg -o "${CACHE_PATH}/${PACKAGE_NAME}.gz" && chmod 644 "${CACHE_PATH}/${PACKAGE_NAME}.gz" + +# create kind cluster with extra mounts +KIND_NODE_IMAGE="kindest/node:${KIND_NODE_IMAGE_TAG}" +echo_step "creating k8s cluster using kind ${KIND_VERSION} and node image ${KIND_NODE_IMAGE}" +KIND_CONFIG="$( cat < + 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: KeySpec defines the desired state of Key + 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 ManagementPolicy 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: A free-form description of the API key. + type: string + disableWaitForReady: + description: Defaults to `false`. + type: boolean + displayName: + description: A human-readable name for the API key. + type: string + managedResource: + description: The resource associated with this object. The only + resource that is supported is 'cmk.v2.Cluster', 'srcm.v2.Cluster'. + items: + properties: + apiVersion: + description: The API version of the referred owner. + type: string + environment: + description: Environment objects represent an isolated namespace + for your Confluent resources for organizational purposes. + items: + properties: + id: + description: The unique identifier for the environment. + type: string + required: + - id + type: object + type: array + id: + description: The unique identifier for the referred resource. + type: string + kind: + description: The kind of the referred resource. + type: string + required: + - apiVersion + - environment + - id + - kind + type: object + type: array + owner: + description: The owner to which the API Key belongs. The owner + can be one of 'iam.v2.User', 'iam.v2.ServiceAccount'. + items: + properties: + apiVersion: + description: The API version of the referred owner. + type: string + id: + description: The unique identifier for the referred owner. + type: string + kind: + description: The kind of the referred owner. + type: string + required: + - apiVersion + - id + - kind + type: object + type: array + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: owner is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.owner) + status: + description: KeyStatus defines the observed state of Key. + properties: + atProvider: + properties: + description: + description: A free-form description of the API key. + type: string + disableWaitForReady: + description: Defaults to `false`. + type: boolean + displayName: + description: A human-readable name for the API key. + type: string + id: + type: string + managedResource: + description: The resource associated with this object. The only + resource that is supported is 'cmk.v2.Cluster', 'srcm.v2.Cluster'. + items: + properties: + apiVersion: + description: The API version of the referred owner. + type: string + environment: + description: Environment objects represent an isolated namespace + for your Confluent resources for organizational purposes. + items: + properties: + id: + description: The unique identifier for the environment. + type: string + type: object + type: array + id: + description: The unique identifier for the referred resource. + type: string + kind: + description: The kind of the referred resource. + type: string + type: object + type: array + owner: + description: The owner to which the API Key belongs. The owner + can be one of 'iam.v2.User', 'iam.v2.ServiceAccount'. + items: + properties: + apiVersion: + description: The API version of the referred owner. + type: string + id: + description: The unique identifier for the referred owner. + type: string + kind: + description: The kind of the referred owner. + type: string + type: object + type: array + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/kafka.crossplane.io_acls.yaml b/package/crds/kafka.crossplane.io_acls.yaml new file mode 100644 index 0000000..fa4d0f2 --- /dev/null +++ b/package/crds/kafka.crossplane.io_acls.yaml @@ -0,0 +1,476 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: acls.kafka.crossplane.io +spec: + group: kafka.crossplane.io + names: + categories: + - crossplane + - managed + - confluent + kind: ACL + listKind: ACLList + plural: acls + singular: acl + 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: ACL is the Schema for the ACLs 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: ACLSpec defines the desired state of ACL + 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 ManagementPolicy 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: + credentials: + description: The Cluster API Credentials. + items: + properties: + keySecretRef: + description: The Cluster API Key for your Confluent Cloud + cluster. + 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 + secretSecretRef: + description: The Cluster API Secret for your Confluent Cloud + cluster. + 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 + required: + - keySecretRef + - secretSecretRef + type: object + type: array + host: + description: The host for the ACL. + type: string + kafkaCluster: + items: + properties: + id: + description: The Kafka cluster ID (e.g., `lkc-12345`). + type: string + required: + - id + type: object + type: array + operation: + description: The operation type for the ACL. + type: string + patternType: + description: The pattern type for the ACL. + type: string + permission: + description: The permission for the ACL. + type: string + principal: + description: The principal for the ACL. + type: string + resourceName: + description: The resource name for the ACL. + type: string + resourceType: + description: The type of the resource. + type: string + restEndpoint: + description: The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + type: string + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: host is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.host) + - message: operation is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.operation) + - message: patternType is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.patternType) + - message: permission is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.permission) + - message: principal is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.principal) + - message: resourceName is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceName) + - message: resourceType is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.resourceType) + status: + description: ACLStatus defines the observed state of ACL. + properties: + atProvider: + properties: + credentials: + description: The Cluster API Credentials. + items: + properties: + keySecretRef: + description: The Cluster API Key for your Confluent Cloud + cluster. + 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 + secretSecretRef: + description: The Cluster API Secret for your Confluent Cloud + cluster. + 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 + required: + - keySecretRef + - secretSecretRef + type: object + type: array + host: + description: The host for the ACL. + type: string + id: + type: string + kafkaCluster: + items: + properties: + id: + description: The Kafka cluster ID (e.g., `lkc-12345`). + type: string + type: object + type: array + operation: + description: The operation type for the ACL. + type: string + patternType: + description: The pattern type for the ACL. + type: string + permission: + description: The permission for the ACL. + type: string + principal: + description: The principal for the ACL. + type: string + resourceName: + description: The resource name for the ACL. + type: string + resourceType: + description: The type of the resource. + type: string + restEndpoint: + description: The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/kafka.crossplane.io_clusterconfigs.yaml b/package/crds/kafka.crossplane.io_clusterconfigs.yaml new file mode 100644 index 0000000..becfee8 --- /dev/null +++ b/package/crds/kafka.crossplane.io_clusterconfigs.yaml @@ -0,0 +1,434 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: clusterconfigs.kafka.crossplane.io +spec: + group: kafka.crossplane.io + names: + categories: + - crossplane + - managed + - confluent + kind: ClusterConfig + listKind: ClusterConfigList + plural: clusterconfigs + singular: clusterconfig + 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: ClusterConfig is the Schema for the ClusterConfigs 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: ClusterConfigSpec defines the desired state of ClusterConfig + 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 ManagementPolicy 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: + config: + additionalProperties: + type: string + description: The custom cluster settings to set (e.g., `"num.partitions" + = "8"`). + type: object + credentials: + description: The Cluster API Credentials. + items: + properties: + keySecretRef: + description: The Cluster API Key for your Confluent Cloud + cluster. + 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 + secretSecretRef: + description: The Cluster API Secret for your Confluent Cloud + cluster. + 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 + required: + - keySecretRef + - secretSecretRef + type: object + type: array + kafkaCluster: + items: + properties: + id: + description: The Kafka cluster ID (e.g., `lkc-12345`). + type: string + required: + - id + type: object + type: array + restEndpoint: + description: The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + type: string + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: config is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.config) + status: + description: ClusterConfigStatus defines the observed state of ClusterConfig. + properties: + atProvider: + properties: + config: + additionalProperties: + type: string + description: The custom cluster settings to set (e.g., `"num.partitions" + = "8"`). + type: object + credentials: + description: The Cluster API Credentials. + items: + properties: + keySecretRef: + description: The Cluster API Key for your Confluent Cloud + cluster. + 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 + secretSecretRef: + description: The Cluster API Secret for your Confluent Cloud + cluster. + 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 + required: + - keySecretRef + - secretSecretRef + type: object + type: array + id: + type: string + kafkaCluster: + items: + properties: + id: + description: The Kafka cluster ID (e.g., `lkc-12345`). + type: string + type: object + type: array + restEndpoint: + description: The REST endpoint of the Kafka cluster (e.g., `https://pkc-00000.us-central1.gcp.confluent.cloud:443`). + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/kafka.crossplane.io_clusters.yaml b/package/crds/kafka.crossplane.io_clusters.yaml new file mode 100644 index 0000000..fae2154 --- /dev/null +++ b/package/crds/kafka.crossplane.io_clusters.yaml @@ -0,0 +1,452 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: clusters.kafka.crossplane.io +spec: + group: kafka.crossplane.io + names: + categories: + - crossplane + - managed + - confluent + kind: Cluster + listKind: ClusterList + plural: clusters + singular: cluster + 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: Cluster is the Schema for the Clusters 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: ClusterSpec defines the desired state of Cluster + 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 ManagementPolicy 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: + availability: + description: The availability zone configuration of the Kafka + cluster. + type: string + basic: + items: + type: object + type: array + cloud: + description: The cloud service provider that runs the Kafka cluster. + type: string + dedicated: + items: + properties: + cku: + description: The number of Confluent Kafka Units (CKUs) + for Dedicated cluster types. MULTI_ZONE dedicated clusters + must have at least two CKUs. + type: number + encryptionKey: + description: The ID of the encryption key that is used to + encrypt the data in the Kafka cluster. + type: string + required: + - cku + type: object + type: array + displayName: + description: The name of the Kafka cluster. + type: string + environment: + description: Environment objects represent an isolated namespace + for your Confluent resources for organizational purposes. + items: + properties: + id: + description: The unique identifier for the environment. + type: string + required: + - id + type: object + type: array + network: + description: Network represents a network (VPC) in Confluent Cloud. + All Networks exist within Confluent-managed cloud provider accounts. + items: + properties: + id: + description: The unique identifier for the network. + type: string + required: + - id + type: object + type: array + region: + description: The cloud service provider region where the Kafka + cluster is running. + type: string + standard: + items: + type: object + type: array + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: availability is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.availability) + - message: cloud is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.cloud) + - message: displayName is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.displayName) + - message: environment is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.environment) + - message: region is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) + status: + description: ClusterStatus defines the observed state of Cluster. + properties: + atProvider: + properties: + apiVersion: + description: API Version defines the schema version of this representation + of a Kafka cluster. + type: string + availability: + description: The availability zone configuration of the Kafka + cluster. + type: string + basic: + items: + type: object + type: array + bootstrapEndpoint: + description: The bootstrap endpoint used by Kafka clients to connect + to the Kafka cluster. + type: string + cloud: + description: The cloud service provider that runs the Kafka cluster. + type: string + dedicated: + items: + properties: + cku: + description: The number of Confluent Kafka Units (CKUs) + for Dedicated cluster types. MULTI_ZONE dedicated clusters + must have at least two CKUs. + type: number + encryptionKey: + description: The ID of the encryption key that is used to + encrypt the data in the Kafka cluster. + type: string + type: object + type: array + displayName: + description: The name of the Kafka cluster. + type: string + environment: + description: Environment objects represent an isolated namespace + for your Confluent resources for organizational purposes. + items: + properties: + id: + description: The unique identifier for the environment. + type: string + type: object + type: array + id: + type: string + kind: + description: Kind defines the object Kafka cluster represents. + type: string + network: + description: Network represents a network (VPC) in Confluent Cloud. + All Networks exist within Confluent-managed cloud provider accounts. + items: + properties: + id: + description: The unique identifier for the network. + type: string + type: object + type: array + rbacCrn: + description: The Confluent Resource Name of the Kafka cluster + suitable for confluent_role_binding's crn_pattern. + type: string + region: + description: The cloud service provider region where the Kafka + cluster is running. + type: string + restEndpoint: + description: The REST endpoint of the Kafka cluster. + type: string + standard: + items: + type: object + type: array + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/role.crossplane.io_bindings.yaml b/package/crds/role.crossplane.io_bindings.yaml new file mode 100644 index 0000000..f76d879 --- /dev/null +++ b/package/crds/role.crossplane.io_bindings.yaml @@ -0,0 +1,332 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: bindings.role.crossplane.io +spec: + group: role.crossplane.io + names: + categories: + - crossplane + - managed + - confluent + kind: Binding + listKind: BindingList + plural: bindings + singular: binding + 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: Binding is the Schema for the Bindings 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: BindingSpec defines the desired state of Binding + 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 ManagementPolicy 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: + crnPattern: + description: A CRN that specifies the scope and resource patterns + necessary for the role to bind. + type: string + principal: + description: The principal User to bind the role to. + type: string + roleName: + description: The name of the role to bind to the principal. + type: string + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: crnPattern is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.crnPattern) + - message: principal is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.principal) + - message: roleName is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.roleName) + status: + description: BindingStatus defines the observed state of Binding. + properties: + atProvider: + properties: + crnPattern: + description: A CRN that specifies the scope and resource patterns + necessary for the role to bind. + type: string + id: + type: string + principal: + description: The principal User to bind the role to. + type: string + roleName: + description: The name of the role to bind to the principal. + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/service.crossplane.io_accounts.yaml b/package/crds/service.crossplane.io_accounts.yaml new file mode 100644 index 0000000..717b9cd --- /dev/null +++ b/package/crds/service.crossplane.io_accounts.yaml @@ -0,0 +1,327 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: accounts.service.crossplane.io +spec: + group: service.crossplane.io + names: + categories: + - crossplane + - managed + - confluent + kind: Account + listKind: AccountList + plural: accounts + singular: account + 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: Account is the Schema for the Accounts 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: AccountSpec defines the desired state of Account + 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 ManagementPolicy 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: A free-form description of the Service Account. + type: string + displayName: + description: A human-readable name for the Service Account. + type: string + type: object + managementPolicy: + default: FullControl + description: 'THIS IS AN ALPHA FIELD. Do not use it in production. + It is not honored unless the relevant Crossplane feature flag is + enabled, and may be changed or removed without notice. ManagementPolicy + specifies the level of control Crossplane has over the managed external + resource. 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. + 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: + - FullControl + - ObserveOnly + - OrphanOnDelete + type: string + 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 + providerRef: + description: 'ProviderReference specifies the provider that will be + used to create, observe, update, and delete this managed resource. + Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' + 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: displayName is a required parameter + rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.displayName) + status: + description: AccountStatus defines the observed state of Account. + properties: + atProvider: + properties: + apiVersion: + description: API Version defines the schema version of this representation + of a Service Account. + type: string + description: + description: A free-form description of the Service Account. + type: string + displayName: + description: A human-readable name for the Service Account. + type: string + id: + type: string + kind: + description: Kind defines the object Service Account represents. + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {}