diff --git a/apis/fsx/v1beta1/zz_generated.deepcopy.go b/apis/fsx/v1beta1/zz_generated.deepcopy.go index 863e8bf6bf..4c888b6888 100644 --- a/apis/fsx/v1beta1/zz_generated.deepcopy.go +++ b/apis/fsx/v1beta1/zz_generated.deepcopy.go @@ -14,6 +14,48 @@ 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 *ActiveDirectoryConfigurationObservation) DeepCopyInto(out *ActiveDirectoryConfigurationObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveDirectoryConfigurationObservation. +func (in *ActiveDirectoryConfigurationObservation) DeepCopy() *ActiveDirectoryConfigurationObservation { + if in == nil { + return nil + } + out := new(ActiveDirectoryConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ActiveDirectoryConfigurationParameters) DeepCopyInto(out *ActiveDirectoryConfigurationParameters) { + *out = *in + if in.NetbiosName != nil { + in, out := &in.NetbiosName, &out.NetbiosName + *out = new(string) + **out = **in + } + if in.SelfManagedActiveDirectoryConfiguration != nil { + in, out := &in.SelfManagedActiveDirectoryConfiguration, &out.SelfManagedActiveDirectoryConfiguration + *out = make([]SelfManagedActiveDirectoryConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveDirectoryConfigurationParameters. +func (in *ActiveDirectoryConfigurationParameters) DeepCopy() *ActiveDirectoryConfigurationParameters { + if in == nil { + return nil + } + out := new(ActiveDirectoryConfigurationParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AuditLogConfigurationObservation) DeepCopyInto(out *AuditLogConfigurationObservation) { *out = *in @@ -564,6 +606,228 @@ func (in *DataRepositoryAssociationStatus) DeepCopy() *DataRepositoryAssociation return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DiskIopsConfigurationObservation) DeepCopyInto(out *DiskIopsConfigurationObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskIopsConfigurationObservation. +func (in *DiskIopsConfigurationObservation) DeepCopy() *DiskIopsConfigurationObservation { + if in == nil { + return nil + } + out := new(DiskIopsConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DiskIopsConfigurationParameters) DeepCopyInto(out *DiskIopsConfigurationParameters) { + *out = *in + if in.Iops != nil { + in, out := &in.Iops, &out.Iops + *out = new(float64) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiskIopsConfigurationParameters. +func (in *DiskIopsConfigurationParameters) DeepCopy() *DiskIopsConfigurationParameters { + if in == nil { + return nil + } + out := new(DiskIopsConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointsManagementObservation) DeepCopyInto(out *EndpointsManagementObservation) { + *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsManagementObservation. +func (in *EndpointsManagementObservation) DeepCopy() *EndpointsManagementObservation { + if in == nil { + return nil + } + out := new(EndpointsManagementObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointsManagementParameters) DeepCopyInto(out *EndpointsManagementParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsManagementParameters. +func (in *EndpointsManagementParameters) DeepCopy() *EndpointsManagementParameters { + if in == nil { + return nil + } + out := new(EndpointsManagementParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointsObservation) DeepCopyInto(out *EndpointsObservation) { + *out = *in + if in.Intercluster != nil { + in, out := &in.Intercluster, &out.Intercluster + *out = make([]InterclusterObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Management != nil { + in, out := &in.Management, &out.Management + *out = make([]ManagementObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsObservation. +func (in *EndpointsObservation) DeepCopy() *EndpointsObservation { + if in == nil { + return nil + } + out := new(EndpointsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointsParameters) DeepCopyInto(out *EndpointsParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsParameters. +func (in *EndpointsParameters) DeepCopy() *EndpointsParameters { + if in == nil { + return nil + } + out := new(EndpointsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ISCSIObservation) DeepCopyInto(out *ISCSIObservation) { + *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIObservation. +func (in *ISCSIObservation) DeepCopy() *ISCSIObservation { + if in == nil { + return nil + } + out := new(ISCSIObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ISCSIParameters) DeepCopyInto(out *ISCSIParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIParameters. +func (in *ISCSIParameters) DeepCopy() *ISCSIParameters { + if in == nil { + return nil + } + out := new(ISCSIParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InterclusterObservation) DeepCopyInto(out *InterclusterObservation) { + *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterclusterObservation. +func (in *InterclusterObservation) DeepCopy() *InterclusterObservation { + if in == nil { + return nil + } + out := new(InterclusterObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InterclusterParameters) DeepCopyInto(out *InterclusterParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InterclusterParameters. +func (in *InterclusterParameters) DeepCopy() *InterclusterParameters { + if in == nil { + return nil + } + out := new(InterclusterParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LogConfigurationObservation) DeepCopyInto(out *LogConfigurationObservation) { *out = *in @@ -952,45 +1216,865 @@ func (in *LustreFileSystemStatus) DeepCopy() *LustreFileSystemStatus { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *S3Observation) DeepCopyInto(out *S3Observation) { +func (in *ManagementObservation) DeepCopyInto(out *ManagementObservation) { *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Observation. -func (in *S3Observation) DeepCopy() *S3Observation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementObservation. +func (in *ManagementObservation) DeepCopy() *ManagementObservation { if in == nil { return nil } - out := new(S3Observation) + out := new(ManagementObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *S3Parameters) DeepCopyInto(out *S3Parameters) { +func (in *ManagementParameters) DeepCopyInto(out *ManagementParameters) { *out = *in - if in.AutoExportPolicy != nil { - in, out := &in.AutoExportPolicy, &out.AutoExportPolicy - *out = make([]AutoExportPolicyParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagementParameters. +func (in *ManagementParameters) DeepCopy() *ManagementParameters { + if in == nil { + return nil } - if in.AutoImportPolicy != nil { - in, out := &in.AutoImportPolicy, &out.AutoImportPolicy - *out = make([]AutoImportPolicyParameters, len(*in)) + out := new(ManagementParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NFSObservation) DeepCopyInto(out *NFSObservation) { + *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Parameters. -func (in *S3Parameters) DeepCopy() *S3Parameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSObservation. +func (in *NFSObservation) DeepCopy() *NFSObservation { if in == nil { return nil } - out := new(S3Parameters) + out := new(NFSObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NFSParameters) DeepCopyInto(out *NFSParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSParameters. +func (in *NFSParameters) DeepCopy() *NFSParameters { + if in == nil { + return nil + } + out := new(NFSParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapFileSystem) DeepCopyInto(out *OntapFileSystem) { + *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 OntapFileSystem. +func (in *OntapFileSystem) DeepCopy() *OntapFileSystem { + if in == nil { + return nil + } + out := new(OntapFileSystem) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *OntapFileSystem) 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 *OntapFileSystemList) DeepCopyInto(out *OntapFileSystemList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]OntapFileSystem, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapFileSystemList. +func (in *OntapFileSystemList) DeepCopy() *OntapFileSystemList { + if in == nil { + return nil + } + out := new(OntapFileSystemList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *OntapFileSystemList) 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 *OntapFileSystemObservation) DeepCopyInto(out *OntapFileSystemObservation) { + *out = *in + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *out = make([]EndpointsObservation, 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.NetworkInterfaceIds != nil { + in, out := &in.NetworkInterfaceIds, &out.NetworkInterfaceIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.OwnerID != nil { + in, out := &in.OwnerID, &out.OwnerID + *out = new(string) + **out = **in + } + if in.TagsAll != nil { + in, out := &in.TagsAll, &out.TagsAll + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapFileSystemObservation. +func (in *OntapFileSystemObservation) DeepCopy() *OntapFileSystemObservation { + if in == nil { + return nil + } + out := new(OntapFileSystemObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapFileSystemParameters) DeepCopyInto(out *OntapFileSystemParameters) { + *out = *in + if in.AutomaticBackupRetentionDays != nil { + in, out := &in.AutomaticBackupRetentionDays, &out.AutomaticBackupRetentionDays + *out = new(float64) + **out = **in + } + if in.DailyAutomaticBackupStartTime != nil { + in, out := &in.DailyAutomaticBackupStartTime, &out.DailyAutomaticBackupStartTime + *out = new(string) + **out = **in + } + if in.DeploymentType != nil { + in, out := &in.DeploymentType, &out.DeploymentType + *out = new(string) + **out = **in + } + if in.DiskIopsConfiguration != nil { + in, out := &in.DiskIopsConfiguration, &out.DiskIopsConfiguration + *out = make([]DiskIopsConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EndpointIPAddressRange != nil { + in, out := &in.EndpointIPAddressRange, &out.EndpointIPAddressRange + *out = new(string) + **out = **in + } + if in.FSXAdminPasswordSecretRef != nil { + in, out := &in.FSXAdminPasswordSecretRef, &out.FSXAdminPasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } + if in.KMSKeyIDRef != nil { + in, out := &in.KMSKeyIDRef, &out.KMSKeyIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.KMSKeyIDSelector != nil { + in, out := &in.KMSKeyIDSelector, &out.KMSKeyIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.PreferredSubnetID != nil { + in, out := &in.PreferredSubnetID, &out.PreferredSubnetID + *out = new(string) + **out = **in + } + if in.PreferredSubnetIDRef != nil { + in, out := &in.PreferredSubnetIDRef, &out.PreferredSubnetIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PreferredSubnetIDSelector != nil { + in, out := &in.PreferredSubnetIDSelector, &out.PreferredSubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouteTableIds != nil { + in, out := &in.RouteTableIds, &out.RouteTableIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SecurityGroupIDRefs != nil { + in, out := &in.SecurityGroupIDRefs, &out.SecurityGroupIDRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SecurityGroupIDSelector != nil { + in, out := &in.SecurityGroupIDSelector, &out.SecurityGroupIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SecurityGroupIds != nil { + in, out := &in.SecurityGroupIds, &out.SecurityGroupIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.StorageCapacity != nil { + in, out := &in.StorageCapacity, &out.StorageCapacity + *out = new(float64) + **out = **in + } + if in.StorageType != nil { + in, out := &in.StorageType, &out.StorageType + *out = new(string) + **out = **in + } + if in.SubnetIDRefs != nil { + in, out := &in.SubnetIDRefs, &out.SubnetIDRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SubnetIDSelector != nil { + in, out := &in.SubnetIDSelector, &out.SubnetIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SubnetIds != nil { + in, out := &in.SubnetIds, &out.SubnetIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *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.ThroughputCapacity != nil { + in, out := &in.ThroughputCapacity, &out.ThroughputCapacity + *out = new(float64) + **out = **in + } + if in.WeeklyMaintenanceStartTime != nil { + in, out := &in.WeeklyMaintenanceStartTime, &out.WeeklyMaintenanceStartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapFileSystemParameters. +func (in *OntapFileSystemParameters) DeepCopy() *OntapFileSystemParameters { + if in == nil { + return nil + } + out := new(OntapFileSystemParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapFileSystemSpec) DeepCopyInto(out *OntapFileSystemSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapFileSystemSpec. +func (in *OntapFileSystemSpec) DeepCopy() *OntapFileSystemSpec { + if in == nil { + return nil + } + out := new(OntapFileSystemSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapFileSystemStatus) DeepCopyInto(out *OntapFileSystemStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapFileSystemStatus. +func (in *OntapFileSystemStatus) DeepCopy() *OntapFileSystemStatus { + if in == nil { + return nil + } + out := new(OntapFileSystemStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachine) DeepCopyInto(out *OntapStorageVirtualMachine) { + *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 OntapStorageVirtualMachine. +func (in *OntapStorageVirtualMachine) DeepCopy() *OntapStorageVirtualMachine { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachine) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *OntapStorageVirtualMachine) 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 *OntapStorageVirtualMachineEndpointsObservation) DeepCopyInto(out *OntapStorageVirtualMachineEndpointsObservation) { + *out = *in + if in.ISCSI != nil { + in, out := &in.ISCSI, &out.ISCSI + *out = make([]ISCSIObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Management != nil { + in, out := &in.Management, &out.Management + *out = make([]EndpointsManagementObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NFS != nil { + in, out := &in.NFS, &out.NFS + *out = make([]NFSObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SMB != nil { + in, out := &in.SMB, &out.SMB + *out = make([]SMBObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineEndpointsObservation. +func (in *OntapStorageVirtualMachineEndpointsObservation) DeepCopy() *OntapStorageVirtualMachineEndpointsObservation { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineEndpointsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachineEndpointsParameters) DeepCopyInto(out *OntapStorageVirtualMachineEndpointsParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineEndpointsParameters. +func (in *OntapStorageVirtualMachineEndpointsParameters) DeepCopy() *OntapStorageVirtualMachineEndpointsParameters { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineEndpointsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachineList) DeepCopyInto(out *OntapStorageVirtualMachineList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]OntapStorageVirtualMachine, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineList. +func (in *OntapStorageVirtualMachineList) DeepCopy() *OntapStorageVirtualMachineList { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *OntapStorageVirtualMachineList) 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 *OntapStorageVirtualMachineObservation) DeepCopyInto(out *OntapStorageVirtualMachineObservation) { + *out = *in + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *out = make([]OntapStorageVirtualMachineEndpointsObservation, 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.Subtype != nil { + in, out := &in.Subtype, &out.Subtype + *out = new(string) + **out = **in + } + if in.TagsAll != nil { + in, out := &in.TagsAll, &out.TagsAll + *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.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineObservation. +func (in *OntapStorageVirtualMachineObservation) DeepCopy() *OntapStorageVirtualMachineObservation { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachineParameters) DeepCopyInto(out *OntapStorageVirtualMachineParameters) { + *out = *in + if in.ActiveDirectoryConfiguration != nil { + in, out := &in.ActiveDirectoryConfiguration, &out.ActiveDirectoryConfiguration + *out = make([]ActiveDirectoryConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FileSystemID != nil { + in, out := &in.FileSystemID, &out.FileSystemID + *out = new(string) + **out = **in + } + if in.FileSystemIDRef != nil { + in, out := &in.FileSystemIDRef, &out.FileSystemIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.FileSystemIDSelector != nil { + in, out := &in.FileSystemIDSelector, &out.FileSystemIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RootVolumeSecurityStyle != nil { + in, out := &in.RootVolumeSecurityStyle, &out.RootVolumeSecurityStyle + *out = new(string) + **out = **in + } + if in.SvmAdminPasswordSecretRef != nil { + in, out := &in.SvmAdminPasswordSecretRef, &out.SvmAdminPasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineParameters. +func (in *OntapStorageVirtualMachineParameters) DeepCopy() *OntapStorageVirtualMachineParameters { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachineSpec) DeepCopyInto(out *OntapStorageVirtualMachineSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineSpec. +func (in *OntapStorageVirtualMachineSpec) DeepCopy() *OntapStorageVirtualMachineSpec { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OntapStorageVirtualMachineStatus) DeepCopyInto(out *OntapStorageVirtualMachineStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OntapStorageVirtualMachineStatus. +func (in *OntapStorageVirtualMachineStatus) DeepCopy() *OntapStorageVirtualMachineStatus { + if in == nil { + return nil + } + out := new(OntapStorageVirtualMachineStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3Observation) DeepCopyInto(out *S3Observation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Observation. +func (in *S3Observation) DeepCopy() *S3Observation { + if in == nil { + return nil + } + out := new(S3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3Parameters) DeepCopyInto(out *S3Parameters) { + *out = *in + if in.AutoExportPolicy != nil { + in, out := &in.AutoExportPolicy, &out.AutoExportPolicy + *out = make([]AutoExportPolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AutoImportPolicy != nil { + in, out := &in.AutoImportPolicy, &out.AutoImportPolicy + *out = make([]AutoImportPolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Parameters. +func (in *S3Parameters) DeepCopy() *S3Parameters { + if in == nil { + return nil + } + out := new(S3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SMBObservation) DeepCopyInto(out *SMBObservation) { + *out = *in + if in.DNSName != nil { + in, out := &in.DNSName, &out.DNSName + *out = new(string) + **out = **in + } + if in.IPAddresses != nil { + in, out := &in.IPAddresses, &out.IPAddresses + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SMBObservation. +func (in *SMBObservation) DeepCopy() *SMBObservation { + if in == nil { + return nil + } + out := new(SMBObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SMBParameters) DeepCopyInto(out *SMBParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SMBParameters. +func (in *SMBParameters) DeepCopy() *SMBParameters { + if in == nil { + return nil + } + out := new(SMBParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SelfManagedActiveDirectoryConfigurationObservation) DeepCopyInto(out *SelfManagedActiveDirectoryConfigurationObservation) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfManagedActiveDirectoryConfigurationObservation. +func (in *SelfManagedActiveDirectoryConfigurationObservation) DeepCopy() *SelfManagedActiveDirectoryConfigurationObservation { + if in == nil { + return nil + } + out := new(SelfManagedActiveDirectoryConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SelfManagedActiveDirectoryConfigurationParameters) DeepCopyInto(out *SelfManagedActiveDirectoryConfigurationParameters) { + *out = *in + if in.DNSIps != nil { + in, out := &in.DNSIps, &out.DNSIps + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.DomainName != nil { + in, out := &in.DomainName, &out.DomainName + *out = new(string) + **out = **in + } + if in.FileSystemAdministratorsGroup != nil { + in, out := &in.FileSystemAdministratorsGroup, &out.FileSystemAdministratorsGroup + *out = new(string) + **out = **in + } + if in.OrganizationalUnitDistinguishedName != nil { + in, out := &in.OrganizationalUnitDistinguishedName, &out.OrganizationalUnitDistinguishedName + *out = new(string) + **out = **in + } + out.PasswordSecretRef = in.PasswordSecretRef + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfManagedActiveDirectoryConfigurationParameters. +func (in *SelfManagedActiveDirectoryConfigurationParameters) DeepCopy() *SelfManagedActiveDirectoryConfigurationParameters { + if in == nil { + return nil + } + out := new(SelfManagedActiveDirectoryConfigurationParameters) in.DeepCopyInto(out) return out } diff --git a/apis/fsx/v1beta1/zz_generated.managed.go b/apis/fsx/v1beta1/zz_generated.managed.go index e4235816a6..4b614e5b88 100644 --- a/apis/fsx/v1beta1/zz_generated.managed.go +++ b/apis/fsx/v1beta1/zz_generated.managed.go @@ -205,6 +205,138 @@ func (mg *LustreFileSystem) SetWriteConnectionSecretToReference(r *xpv1.SecretRe mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this OntapFileSystem. +func (mg *OntapFileSystem) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this OntapFileSystem. +func (mg *OntapFileSystem) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetProviderConfigReference of this OntapFileSystem. +func (mg *OntapFileSystem) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this OntapFileSystem. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *OntapFileSystem) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this OntapFileSystem. +func (mg *OntapFileSystem) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this OntapFileSystem. +func (mg *OntapFileSystem) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this OntapFileSystem. +func (mg *OntapFileSystem) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this OntapFileSystem. +func (mg *OntapFileSystem) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetProviderConfigReference of this OntapFileSystem. +func (mg *OntapFileSystem) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this OntapFileSystem. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *OntapFileSystem) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this OntapFileSystem. +func (mg *OntapFileSystem) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this OntapFileSystem. +func (mg *OntapFileSystem) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetProviderConfigReference of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +/* +GetProviderReference of this OntapStorageVirtualMachine. +Deprecated: Use GetProviderConfigReference. +*/ +func (mg *OntapStorageVirtualMachine) GetProviderReference() *xpv1.Reference { + return mg.Spec.ProviderReference +} + +// GetPublishConnectionDetailsTo of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetProviderConfigReference of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +/* +SetProviderReference of this OntapStorageVirtualMachine. +Deprecated: Use SetProviderConfigReference. +*/ +func (mg *OntapStorageVirtualMachine) SetProviderReference(r *xpv1.Reference) { + mg.Spec.ProviderReference = r +} + +// SetPublishConnectionDetailsTo of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this WindowsFileSystem. func (mg *WindowsFileSystem) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/fsx/v1beta1/zz_generated.managedlist.go b/apis/fsx/v1beta1/zz_generated.managedlist.go index 68b8f7878e..1d5b49a558 100644 --- a/apis/fsx/v1beta1/zz_generated.managedlist.go +++ b/apis/fsx/v1beta1/zz_generated.managedlist.go @@ -34,6 +34,24 @@ func (l *LustreFileSystemList) GetItems() []resource.Managed { return items } +// GetItems of this OntapFileSystemList. +func (l *OntapFileSystemList) 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 OntapStorageVirtualMachineList. +func (l *OntapStorageVirtualMachineList) 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 WindowsFileSystemList. func (l *WindowsFileSystemList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/fsx/v1beta1/zz_generated.resolvers.go b/apis/fsx/v1beta1/zz_generated.resolvers.go index 272c371a8e..b3b1c2ec59 100644 --- a/apis/fsx/v1beta1/zz_generated.resolvers.go +++ b/apis/fsx/v1beta1/zz_generated.resolvers.go @@ -128,6 +128,107 @@ func (mg *LustreFileSystem) ResolveReferences(ctx context.Context, c client.Read return nil } +// ResolveReferences of this OntapFileSystem. +func (mg *OntapFileSystem) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var mrsp reference.MultiResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.KMSKeyID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.KMSKeyIDRef, + Selector: mg.Spec.ForProvider.KMSKeyIDSelector, + To: reference.To{ + List: &v1beta1.KeyList{}, + Managed: &v1beta1.Key{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.KMSKeyID") + } + mg.Spec.ForProvider.KMSKeyID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.KMSKeyIDRef = rsp.ResolvedReference + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PreferredSubnetID), + Extract: resource.ExtractResourceID(), + Reference: mg.Spec.ForProvider.PreferredSubnetIDRef, + Selector: mg.Spec.ForProvider.PreferredSubnetIDSelector, + To: reference.To{ + List: &v1beta11.SubnetList{}, + Managed: &v1beta11.Subnet{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PreferredSubnetID") + } + mg.Spec.ForProvider.PreferredSubnetID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PreferredSubnetIDRef = rsp.ResolvedReference + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.SecurityGroupIds), + Extract: reference.ExternalName(), + References: mg.Spec.ForProvider.SecurityGroupIDRefs, + Selector: mg.Spec.ForProvider.SecurityGroupIDSelector, + To: reference.To{ + List: &v1beta11.SecurityGroupList{}, + Managed: &v1beta11.SecurityGroup{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SecurityGroupIds") + } + mg.Spec.ForProvider.SecurityGroupIds = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.SecurityGroupIDRefs = mrsp.ResolvedReferences + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.SubnetIds), + Extract: reference.ExternalName(), + References: mg.Spec.ForProvider.SubnetIDRefs, + Selector: mg.Spec.ForProvider.SubnetIDSelector, + To: reference.To{ + List: &v1beta11.SubnetList{}, + Managed: &v1beta11.Subnet{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SubnetIds") + } + mg.Spec.ForProvider.SubnetIds = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.SubnetIDRefs = mrsp.ResolvedReferences + + return nil +} + +// ResolveReferences of this OntapStorageVirtualMachine. +func (mg *OntapStorageVirtualMachine) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.FileSystemID), + Extract: resource.ExtractResourceID(), + Reference: mg.Spec.ForProvider.FileSystemIDRef, + Selector: mg.Spec.ForProvider.FileSystemIDSelector, + To: reference.To{ + List: &OntapFileSystemList{}, + Managed: &OntapFileSystem{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.FileSystemID") + } + mg.Spec.ForProvider.FileSystemID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.FileSystemIDRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this WindowsFileSystem. func (mg *WindowsFileSystem) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/fsx/v1beta1/zz_generated_terraformed.go b/apis/fsx/v1beta1/zz_generated_terraformed.go index 2bf63219a6..3ca50dc81b 100755 --- a/apis/fsx/v1beta1/zz_generated_terraformed.go +++ b/apis/fsx/v1beta1/zz_generated_terraformed.go @@ -235,6 +235,154 @@ func (tr *LustreFileSystem) GetTerraformSchemaVersion() int { return 0 } +// GetTerraformResourceType returns Terraform resource type for this OntapFileSystem +func (mg *OntapFileSystem) GetTerraformResourceType() string { + return "aws_fsx_ontap_file_system" +} + +// GetConnectionDetailsMapping for this OntapFileSystem +func (tr *OntapFileSystem) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"fsx_admin_password": "spec.forProvider.fsxAdminPasswordSecretRef"} +} + +// GetObservation of this OntapFileSystem +func (tr *OntapFileSystem) 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 OntapFileSystem +func (tr *OntapFileSystem) 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 OntapFileSystem +func (tr *OntapFileSystem) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this OntapFileSystem +func (tr *OntapFileSystem) 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 OntapFileSystem +func (tr *OntapFileSystem) 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 OntapFileSystem using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *OntapFileSystem) LateInitialize(attrs []byte) (bool, error) { + params := &OntapFileSystemParameters{} + 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 *OntapFileSystem) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this OntapStorageVirtualMachine +func (mg *OntapStorageVirtualMachine) GetTerraformResourceType() string { + return "aws_fsx_ontap_storage_virtual_machine" +} + +// GetConnectionDetailsMapping for this OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"active_directory_configuration[*].self_managed_active_directory_configuration[*].password": "spec.forProvider.activeDirectoryConfiguration[*].selfManagedActiveDirectoryConfiguration[*].passwordSecretRef", "svm_admin_password": "spec.forProvider.svmAdminPasswordSecretRef"} +} + +// GetObservation of this OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) 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 OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) 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 OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) 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 OntapStorageVirtualMachine +func (tr *OntapStorageVirtualMachine) 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 OntapStorageVirtualMachine using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *OntapStorageVirtualMachine) LateInitialize(attrs []byte) (bool, error) { + params := &OntapStorageVirtualMachineParameters{} + 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 *OntapStorageVirtualMachine) GetTerraformSchemaVersion() int { + return 1 +} + // GetTerraformResourceType returns Terraform resource type for this WindowsFileSystem func (mg *WindowsFileSystem) GetTerraformResourceType() string { return "aws_fsx_windows_file_system" diff --git a/apis/fsx/v1beta1/zz_ontapfilesystem_types.go b/apis/fsx/v1beta1/zz_ontapfilesystem_types.go new file mode 100755 index 0000000000..281e0427cc --- /dev/null +++ b/apis/fsx/v1beta1/zz_ontapfilesystem_types.go @@ -0,0 +1,253 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1beta1 + +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 DiskIopsConfigurationObservation struct { +} + +type DiskIopsConfigurationParameters struct { + + // - The total number of SSD IOPS provisioned for the file system. + // +kubebuilder:validation:Optional + Iops *float64 `json:"iops,omitempty" tf:"iops,omitempty"` + + // - Specifies whether the number of IOPS for the file system is using the system. Valid values are AUTOMATIC and USER_PROVISIONED. Default value is AUTOMATIC. + // +kubebuilder:validation:Optional + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` +} + +type EndpointsObservation struct { + + // An endpoint for managing your file system by setting up NetApp SnapMirror with other ONTAP systems. See Endpoint. + Intercluster []InterclusterObservation `json:"intercluster,omitempty" tf:"intercluster,omitempty"` + + // An endpoint for managing your file system using the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. + Management []ManagementObservation `json:"management,omitempty" tf:"management,omitempty"` +} + +type EndpointsParameters struct { +} + +type InterclusterObservation struct { + + // DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the file system endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type InterclusterParameters struct { +} + +type ManagementObservation struct { + + // DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the file system endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type ManagementParameters struct { +} + +type OntapFileSystemObservation struct { + + // Amazon Resource Name of the file system. + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // The endpoints that are used to access data or to manage the file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror. See Endpoints below. + Endpoints []EndpointsObservation `json:"endpoints,omitempty" tf:"endpoints,omitempty"` + + // Identifier of the file system, e.g., fs-12345678 + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Set of Elastic Network Interface identifiers from which the file system is accessible The first network interface returned is the primary network interface. + NetworkInterfaceIds []*string `json:"networkInterfaceIds,omitempty" tf:"network_interface_ids,omitempty"` + + // AWS account identifier that created the file system. + OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` + + // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. + TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + + // Identifier of the Virtual Private Cloud for the file system. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type OntapFileSystemParameters struct { + + // The number of days to retain automatic backups. Setting this to 0 disables automatic backups. You can retain automatic backups for a maximum of 90 days. + // +kubebuilder:validation:Optional + AutomaticBackupRetentionDays *float64 `json:"automaticBackupRetentionDays,omitempty" tf:"automatic_backup_retention_days,omitempty"` + + // A recurring daily time, in the format HH:MM. HH is the zero-padded hour of the day (0-23), and MM is the zero-padded minute of the hour. For example, 05:00 specifies 5 AM daily. Requires automatic_backup_retention_days to be set. + // +kubebuilder:validation:Optional + DailyAutomaticBackupStartTime *string `json:"dailyAutomaticBackupStartTime,omitempty" tf:"daily_automatic_backup_start_time,omitempty"` + + // - The filesystem deployment type. Supports MULTI_AZ_1 and SINGLE_AZ_1. + // +kubebuilder:validation:Required + DeploymentType *string `json:"deploymentType" tf:"deployment_type,omitempty"` + + // The SSD IOPS configuration for the Amazon FSx for NetApp ONTAP file system. See Disk Iops Configuration Below. + // +kubebuilder:validation:Optional + DiskIopsConfiguration []DiskIopsConfigurationParameters `json:"diskIopsConfiguration,omitempty" tf:"disk_iops_configuration,omitempty"` + + // Specifies the IP address range in which the endpoints to access your file system will be created. By default, Amazon FSx selects an unused IP address range for you from the 198.19.* range. + // +kubebuilder:validation:Optional + EndpointIPAddressRange *string `json:"endpointIpAddressRange,omitempty" tf:"endpoint_ip_address_range,omitempty"` + + // The ONTAP administrative password for the fsxadmin user that you can use to administer your file system using the ONTAP CLI and REST API. + // +kubebuilder:validation:Optional + FSXAdminPasswordSecretRef *v1.SecretKeySelector `json:"fsxAdminPasswordSecretRef,omitempty" tf:"-"` + + // ARN for the KMS Key to encrypt the file system at rest, Defaults to an AWS managed KMS Key. + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/kms/v1beta1.Key + // +kubebuilder:validation:Optional + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + + // Reference to a Key in kms to populate kmsKeyId. + // +kubebuilder:validation:Optional + KMSKeyIDRef *v1.Reference `json:"kmsKeyIdRef,omitempty" tf:"-"` + + // Selector for a Key in kms to populate kmsKeyId. + // +kubebuilder:validation:Optional + KMSKeyIDSelector *v1.Selector `json:"kmsKeyIdSelector,omitempty" tf:"-"` + + // The ID for a subnet. A subnet is a range of IP addresses in your virtual private cloud (VPC). + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/ec2/v1beta1.Subnet + // +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractResourceID() + // +kubebuilder:validation:Optional + PreferredSubnetID *string `json:"preferredSubnetId,omitempty" tf:"preferred_subnet_id,omitempty"` + + // Reference to a Subnet in ec2 to populate preferredSubnetId. + // +kubebuilder:validation:Optional + PreferredSubnetIDRef *v1.Reference `json:"preferredSubnetIdRef,omitempty" tf:"-"` + + // Selector for a Subnet in ec2 to populate preferredSubnetId. + // +kubebuilder:validation:Optional + PreferredSubnetIDSelector *v1.Selector `json:"preferredSubnetIdSelector,omitempty" tf:"-"` + + // Region is the region you'd like your resource to be created in. + // +upjet:crd:field:TFTag=- + // +kubebuilder:validation:Required + Region *string `json:"region" tf:"-"` + + // Specifies the VPC route tables in which your file system's endpoints will be created. You should specify all VPC route tables associated with the subnets in which your clients are located. By default, Amazon FSx selects your VPC's default route table. + // +kubebuilder:validation:Optional + RouteTableIds []*string `json:"routeTableIds,omitempty" tf:"route_table_ids,omitempty"` + + // References to SecurityGroup in ec2 to populate securityGroupIds. + // +kubebuilder:validation:Optional + SecurityGroupIDRefs []v1.Reference `json:"securityGroupIdRefs,omitempty" tf:"-"` + + // Selector for a list of SecurityGroup in ec2 to populate securityGroupIds. + // +kubebuilder:validation:Optional + SecurityGroupIDSelector *v1.Selector `json:"securityGroupIdSelector,omitempty" tf:"-"` + + // A list of IDs for the security groups that apply to the specified network interfaces created for file system access. These security groups will apply to all network interfaces. + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/ec2/v1beta1.SecurityGroup + // +crossplane:generate:reference:refFieldName=SecurityGroupIDRefs + // +crossplane:generate:reference:selectorFieldName=SecurityGroupIDSelector + // +kubebuilder:validation:Optional + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + + // The storage capacity (GiB) of the file system. Valid values between 1024 and 196608. + // +kubebuilder:validation:Optional + StorageCapacity *float64 `json:"storageCapacity,omitempty" tf:"storage_capacity,omitempty"` + + // - The filesystem storage type. defaults to SSD. + // +kubebuilder:validation:Optional + StorageType *string `json:"storageType,omitempty" tf:"storage_type,omitempty"` + + // References to Subnet in ec2 to populate subnetIds. + // +kubebuilder:validation:Optional + SubnetIDRefs []v1.Reference `json:"subnetIdRefs,omitempty" tf:"-"` + + // Selector for a list of Subnet in ec2 to populate subnetIds. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` + + // A list of IDs for the subnets that the file system will be accessible from. Upto 2 subnets can be provided. + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/ec2/v1beta1.Subnet + // +crossplane:generate:reference:refFieldName=SubnetIDRefs + // +crossplane:generate:reference:selectorFieldName=SubnetIDSelector + // +kubebuilder:validation:Optional + SubnetIds []*string `json:"subnetIds,omitempty" tf:"subnet_ids,omitempty"` + + // Key-value map of resource tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Sets the throughput capacity (in MBps) for the file system that you're creating. Valid values are 128, 256, 512, 1024, and 2048. + // +kubebuilder:validation:Required + ThroughputCapacity *float64 `json:"throughputCapacity" tf:"throughput_capacity,omitempty"` + + // The preferred start time (in d:HH:MM format) to perform weekly maintenance, in the UTC time zone. + // +kubebuilder:validation:Optional + WeeklyMaintenanceStartTime *string `json:"weeklyMaintenanceStartTime,omitempty" tf:"weekly_maintenance_start_time,omitempty"` +} + +// OntapFileSystemSpec defines the desired state of OntapFileSystem +type OntapFileSystemSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider OntapFileSystemParameters `json:"forProvider"` +} + +// OntapFileSystemStatus defines the observed state of OntapFileSystem. +type OntapFileSystemStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider OntapFileSystemObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// OntapFileSystem is the Schema for the OntapFileSystems API. Manages an Amazon FSx for NetApp ONTAP file system. +// +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,aws} +type OntapFileSystem struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec OntapFileSystemSpec `json:"spec"` + Status OntapFileSystemStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// OntapFileSystemList contains a list of OntapFileSystems +type OntapFileSystemList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []OntapFileSystem `json:"items"` +} + +// Repository type metadata. +var ( + OntapFileSystem_Kind = "OntapFileSystem" + OntapFileSystem_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: OntapFileSystem_Kind}.String() + OntapFileSystem_KindAPIVersion = OntapFileSystem_Kind + "." + CRDGroupVersion.String() + OntapFileSystem_GroupVersionKind = CRDGroupVersion.WithKind(OntapFileSystem_Kind) +) + +func init() { + SchemeBuilder.Register(&OntapFileSystem{}, &OntapFileSystemList{}) +} diff --git a/apis/fsx/v1beta1/zz_ontapstoragevirtualmachine_types.go b/apis/fsx/v1beta1/zz_ontapstoragevirtualmachine_types.go new file mode 100755 index 0000000000..35a59c7d57 --- /dev/null +++ b/apis/fsx/v1beta1/zz_ontapstoragevirtualmachine_types.go @@ -0,0 +1,235 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1beta1 + +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 ActiveDirectoryConfigurationObservation struct { +} + +type ActiveDirectoryConfigurationParameters struct { + + // The NetBIOS name of the Active Directory computer object that will be created for your SVM. This is often the same as the SVM name but can be different. It is limited to 15 characters because of standard NetBIOS naming limits. + // +kubebuilder:validation:Optional + NetbiosName *string `json:"netbiosName,omitempty" tf:"netbios_name,omitempty"` + + // Configuration block that Amazon FSx uses to join the FSx ONTAP Storage Virtual Machine(SVM) to your Microsoft Active Directory (AD) directory. Detailed below. + // +kubebuilder:validation:Optional + SelfManagedActiveDirectoryConfiguration []SelfManagedActiveDirectoryConfigurationParameters `json:"selfManagedActiveDirectoryConfiguration,omitempty" tf:"self_managed_active_directory_configuration,omitempty"` +} + +type EndpointsManagementObservation struct { + + // The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the storage virtual machine endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type EndpointsManagementParameters struct { +} + +type ISCSIObservation struct { + + // The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the storage virtual machine endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type ISCSIParameters struct { +} + +type NFSObservation struct { + + // The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the storage virtual machine endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type NFSParameters struct { +} + +type OntapStorageVirtualMachineEndpointsObservation struct { + + // An endpoint for accessing data on your storage virtual machine via iSCSI protocol. See Endpoint. + ISCSI []ISCSIObservation `json:"iscsi,omitempty" tf:"iscsi,omitempty"` + + // An endpoint for managing your file system using the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. + Management []EndpointsManagementObservation `json:"management,omitempty" tf:"management,omitempty"` + + // An endpoint for accessing data on your storage virtual machine via NFS protocol. See Endpoint. + NFS []NFSObservation `json:"nfs,omitempty" tf:"nfs,omitempty"` + + // An endpoint for accessing data on your storage virtual machine via SMB protocol. This is only set if an active_directory_configuration has been set. See Endpoint. + SMB []SMBObservation `json:"smb,omitempty" tf:"smb,omitempty"` +} + +type OntapStorageVirtualMachineEndpointsParameters struct { +} + +type OntapStorageVirtualMachineObservation struct { + + // Amazon Resource Name of the storage virtual machine. + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // The endpoints that are used to access data or to manage the storage virtual machine using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror. See Endpoints below. + Endpoints []OntapStorageVirtualMachineEndpointsObservation `json:"endpoints,omitempty" tf:"endpoints,omitempty"` + + // Identifier of the storage virtual machine, e.g., svm-12345678 + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Describes the SVM's subtype, e.g. DEFAULT + Subtype *string `json:"subtype,omitempty" tf:"subtype,omitempty"` + + // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. + TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` + + // The SVM's UUID (universally unique identifier). + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type OntapStorageVirtualMachineParameters struct { + + // Configuration block that Amazon FSx uses to join the FSx ONTAP Storage Virtual Machine(SVM) to your Microsoft Active Directory (AD) directory. Detailed below. + // +kubebuilder:validation:Optional + ActiveDirectoryConfiguration []ActiveDirectoryConfigurationParameters `json:"activeDirectoryConfiguration,omitempty" tf:"active_directory_configuration,omitempty"` + + // The ID of the Amazon FSx ONTAP File System that this SVM will be created on. + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/fsx/v1beta1.OntapFileSystem + // +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractResourceID() + // +kubebuilder:validation:Optional + FileSystemID *string `json:"fileSystemId,omitempty" tf:"file_system_id,omitempty"` + + // Reference to a OntapFileSystem in fsx to populate fileSystemId. + // +kubebuilder:validation:Optional + FileSystemIDRef *v1.Reference `json:"fileSystemIdRef,omitempty" tf:"-"` + + // Selector for a OntapFileSystem in fsx to populate fileSystemId. + // +kubebuilder:validation:Optional + FileSystemIDSelector *v1.Selector `json:"fileSystemIdSelector,omitempty" tf:"-"` + + // The name of the SVM. You can use a maximum of 47 alphanumeric characters, plus the underscore (_) special character. + // +kubebuilder:validation:Required + Name *string `json:"name" tf:"name,omitempty"` + + // Region is the region you'd like your resource to be created in. + // +upjet:crd:field:TFTag=- + // +kubebuilder:validation:Required + Region *string `json:"region" tf:"-"` + + // Specifies the root volume security style, Valid values are UNIX, NTFS, and MIXED. All volumes created under this SVM will inherit the root security style unless the security style is specified on the volume. Default value is UNIX. + // +kubebuilder:validation:Optional + RootVolumeSecurityStyle *string `json:"rootVolumeSecurityStyle,omitempty" tf:"root_volume_security_style,omitempty"` + + // +kubebuilder:validation:Optional + SvmAdminPasswordSecretRef *v1.SecretKeySelector `json:"svmAdminPasswordSecretRef,omitempty" tf:"-"` + + // Key-value map of resource tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type SMBObservation struct { + + // The Domain Name Service (DNS) name for the storage virtual machine. You can mount your storage virtual machine using its DNS name. + DNSName *string `json:"dnsName,omitempty" tf:"dns_name,omitempty"` + + // IP addresses of the storage virtual machine endpoint. + IPAddresses []*string `json:"ipAddresses,omitempty" tf:"ip_addresses,omitempty"` +} + +type SMBParameters struct { +} + +type SelfManagedActiveDirectoryConfigurationObservation struct { +} + +type SelfManagedActiveDirectoryConfigurationParameters struct { + + // A list of up to three IP addresses of DNS servers or domain controllers in the self-managed AD directory. + // +kubebuilder:validation:Required + DNSIps []*string `json:"dnsIps" tf:"dns_ips,omitempty"` + + // The fully qualified domain name of the self-managed AD directory. For example, corp.example.com. + // +kubebuilder:validation:Required + DomainName *string `json:"domainName" tf:"domain_name,omitempty"` + + // The name of the domain group whose members are granted administrative privileges for the SVM. The group that you specify must already exist in your domain. Defaults to Domain Admins. + // +kubebuilder:validation:Optional + FileSystemAdministratorsGroup *string `json:"fileSystemAdministratorsGroup,omitempty" tf:"file_system_administrators_group,omitempty"` + + // The fully qualified distinguished name of the organizational unit within your self-managed AD directory that the Windows File Server instance will join. For example, OU=FSx,DC=yourdomain,DC=corp,DC=com. Only accepts OU as the direct parent of the SVM. If none is provided, the SVM is created in the default location of your self-managed AD directory. To learn more, see RFC 2253. + // +kubebuilder:validation:Optional + OrganizationalUnitDistinguishedName *string `json:"organizationalUnitDistinguishedName,omitempty" tf:"organizational_unit_distinguished_name,omitempty"` + + // The password for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain. + // +kubebuilder:validation:Required + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + + // The user name for the service account on your self-managed AD domain that Amazon FSx will use to join to your AD domain. + // +kubebuilder:validation:Required + Username *string `json:"username" tf:"username,omitempty"` +} + +// OntapStorageVirtualMachineSpec defines the desired state of OntapStorageVirtualMachine +type OntapStorageVirtualMachineSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider OntapStorageVirtualMachineParameters `json:"forProvider"` +} + +// OntapStorageVirtualMachineStatus defines the observed state of OntapStorageVirtualMachine. +type OntapStorageVirtualMachineStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider OntapStorageVirtualMachineObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// OntapStorageVirtualMachine is the Schema for the OntapStorageVirtualMachines API. Manages a FSx Storage Virtual Machine. +// +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,aws} +type OntapStorageVirtualMachine struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec OntapStorageVirtualMachineSpec `json:"spec"` + Status OntapStorageVirtualMachineStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// OntapStorageVirtualMachineList contains a list of OntapStorageVirtualMachines +type OntapStorageVirtualMachineList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []OntapStorageVirtualMachine `json:"items"` +} + +// Repository type metadata. +var ( + OntapStorageVirtualMachine_Kind = "OntapStorageVirtualMachine" + OntapStorageVirtualMachine_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: OntapStorageVirtualMachine_Kind}.String() + OntapStorageVirtualMachine_KindAPIVersion = OntapStorageVirtualMachine_Kind + "." + CRDGroupVersion.String() + OntapStorageVirtualMachine_GroupVersionKind = CRDGroupVersion.WithKind(OntapStorageVirtualMachine_Kind) +) + +func init() { + SchemeBuilder.Register(&OntapStorageVirtualMachine{}, &OntapStorageVirtualMachineList{}) +} diff --git a/config/externalname.go b/config/externalname.go index e162244ccf..663f019767 100644 --- a/config/externalname.go +++ b/config/externalname.go @@ -1894,6 +1894,10 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "aws_fsx_backup": config.IdentifierFromProvider, // FSx Data Repository Associations can be imported using the id "aws_fsx_data_repository_association": config.IdentifierFromProvider, + // FSx File Systems can be imported using the id + "aws_fsx_ontap_file_system": config.IdentifierFromProvider, + // FSx Storage Virtual Machine can be imported using the id + "aws_fsx_ontap_storage_virtual_machine": config.IdentifierFromProvider, // route53recoverycontrolconfig // diff --git a/config/externalnamenottested.go b/config/externalnamenottested.go index 8e4cbe45cb..7e74a9567a 100644 --- a/config/externalnamenottested.go +++ b/config/externalnamenottested.go @@ -361,10 +361,6 @@ var ExternalNameNotTestedConfigs = map[string]config.ExternalName{ // fsx // - // FSx File Systems can be imported using the id - "aws_fsx_ontap_file_system": config.IdentifierFromProvider, - // FSx Storage Virtual Machine can be imported using the id - "aws_fsx_ontap_storage_virtual_machine": config.IdentifierFromProvider, // FSx ONTAP volume can be imported using the id "aws_fsx_ontap_volume": config.IdentifierFromProvider, // FSx File Systems can be imported using the id diff --git a/examples-generated/fsx/ontapfilesystem.yaml b/examples-generated/fsx/ontapfilesystem.yaml new file mode 100644 index 0000000000..6ae6d84ffc --- /dev/null +++ b/examples-generated/fsx/ontapfilesystem.yaml @@ -0,0 +1,23 @@ +apiVersion: fsx.aws.upbound.io/v1beta1 +kind: OntapFileSystem +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapfilesystem + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + deploymentType: MULTI_AZ_1 + preferredSubnetIdSelector: + matchLabels: + testing.upbound.io/example-name: test1 + region: us-west-1 + storageCapacity: 1024 + subnetIdRefs: + - name: test1 + - name: test2 + throughputCapacity: 512 + +--- + diff --git a/examples-generated/fsx/ontapstoragevirtualmachine.yaml b/examples-generated/fsx/ontapstoragevirtualmachine.yaml new file mode 100644 index 0000000000..0fd15aca0a --- /dev/null +++ b/examples-generated/fsx/ontapstoragevirtualmachine.yaml @@ -0,0 +1,18 @@ +apiVersion: fsx.aws.upbound.io/v1beta1 +kind: OntapStorageVirtualMachine +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapstoragevirtualmachine + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + fileSystemIdSelector: + matchLabels: + testing.upbound.io/example-name: test + name: test + region: us-west-1 + +--- + diff --git a/examples/fsx/ontapfilesystem.yaml b/examples/fsx/ontapfilesystem.yaml new file mode 100644 index 0000000000..1e504ec769 --- /dev/null +++ b/examples/fsx/ontapfilesystem.yaml @@ -0,0 +1,52 @@ +apiVersion: fsx.aws.upbound.io/v1beta1 +kind: OntapFileSystem +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapfilesystem + uptest.upbound.io/timeout: "5400" # Takes very long. + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + deploymentType: SINGLE_AZ_1 + preferredSubnetIdSelector: + matchLabels: + testing.upbound.io/example-name: test1 + region: us-east-1 + storageCapacity: 1024 + automaticBackupRetentionDays: 0 + subnetIdRefs: + - name: test1 + throughputCapacity: 128 +--- +apiVersion: ec2.aws.upbound.io/v1beta1 +kind: Subnet +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapfilesystem + labels: + testing.upbound.io/example-name: test1 + name: test1 +spec: + forProvider: + availabilityZone: us-east-1a + cidrBlock: 10.0.1.0/24 + region: us-east-1 + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: main +--- +apiVersion: ec2.aws.upbound.io/v1beta1 +kind: VPC +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapfilesystem + labels: + testing.upbound.io/example-name: main + name: main +spec: + forProvider: + cidrBlock: 10.0.0.0/16 + region: us-east-1 + diff --git a/examples/fsx/ontapstoragevirtualmachine.yaml b/examples/fsx/ontapstoragevirtualmachine.yaml new file mode 100644 index 0000000000..08358428e9 --- /dev/null +++ b/examples/fsx/ontapstoragevirtualmachine.yaml @@ -0,0 +1,67 @@ +apiVersion: fsx.aws.upbound.io/v1beta1 +kind: OntapStorageVirtualMachine +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapstoragevirtualmachine + uptest.upbound.io/timeout: "7200" # Takes very long. + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + fileSystemIdSelector: + matchLabels: + testing.upbound.io/example-name: test + name: test + region: us-east-1 +--- +apiVersion: fsx.aws.upbound.io/v1beta1 +kind: OntapFileSystem +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapstoragevirtualmachine + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + deploymentType: SINGLE_AZ_1 + preferredSubnetIdSelector: + matchLabels: + testing.upbound.io/example-name: test1 + region: us-east-1 + storageCapacity: 1024 + automaticBackupRetentionDays: 0 + subnetIdRefs: + - name: test1 + throughputCapacity: 128 +--- +apiVersion: ec2.aws.upbound.io/v1beta1 +kind: Subnet +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapstoragevirtualmachine + labels: + testing.upbound.io/example-name: test1 + name: test1 +spec: + forProvider: + availabilityZone: us-east-1a + cidrBlock: 10.0.1.0/24 + region: us-east-1 + vpcIdSelector: + matchLabels: + testing.upbound.io/example-name: main +--- +apiVersion: ec2.aws.upbound.io/v1beta1 +kind: VPC +metadata: + annotations: + meta.upbound.io/example-id: fsx/v1beta1/ontapstoragevirtualmachine + labels: + testing.upbound.io/example-name: main + name: main +spec: + forProvider: + cidrBlock: 10.0.0.0/16 + region: us-east-1 \ No newline at end of file diff --git a/internal/controller/fsx/ontapfilesystem/zz_controller.go b/internal/controller/fsx/ontapfilesystem/zz_controller.go new file mode 100755 index 0000000000..f89206f7f6 --- /dev/null +++ b/internal/controller/fsx/ontapfilesystem/zz_controller.go @@ -0,0 +1,54 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ontapfilesystem + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1beta1 "github.com/upbound/provider-aws/apis/fsx/v1beta1" +) + +// Setup adds a controller that reconciles OntapFileSystem managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1beta1.OntapFileSystem_GroupVersionKind.String()) + var initializers managed.InitializerChain + for _, i := range o.Provider.Resources["aws_fsx_ontap_file_system"].InitializerFns { + initializers = append(initializers, i(mgr.GetClient())) + } + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK)) + } + r := managed.NewReconciler(mgr, + xpresource.ManagedKind(v1beta1.OntapFileSystem_GroupVersionKind), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["aws_fsx_ontap_file_system"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1beta1.OntapFileSystem_GroupVersionKind))), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3*time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + ) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + For(&v1beta1.OntapFileSystem{}). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fsx/ontapstoragevirtualmachine/zz_controller.go b/internal/controller/fsx/ontapstoragevirtualmachine/zz_controller.go new file mode 100755 index 0000000000..96dfd11adb --- /dev/null +++ b/internal/controller/fsx/ontapstoragevirtualmachine/zz_controller.go @@ -0,0 +1,54 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ontapstoragevirtualmachine + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1beta1 "github.com/upbound/provider-aws/apis/fsx/v1beta1" +) + +// Setup adds a controller that reconciles OntapStorageVirtualMachine managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1beta1.OntapStorageVirtualMachine_GroupVersionKind.String()) + var initializers managed.InitializerChain + for _, i := range o.Provider.Resources["aws_fsx_ontap_storage_virtual_machine"].InitializerFns { + initializers = append(initializers, i(mgr.GetClient())) + } + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK)) + } + r := managed.NewReconciler(mgr, + xpresource.ManagedKind(v1beta1.OntapStorageVirtualMachine_GroupVersionKind), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["aws_fsx_ontap_storage_virtual_machine"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1beta1.OntapStorageVirtualMachine_GroupVersionKind))), + )), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3*time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + ) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + For(&v1beta1.OntapStorageVirtualMachine{}). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 4603f8ad7e..a25706443f 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -408,6 +408,8 @@ import ( backup "github.com/upbound/provider-aws/internal/controller/fsx/backup" datarepositoryassociation "github.com/upbound/provider-aws/internal/controller/fsx/datarepositoryassociation" lustrefilesystem "github.com/upbound/provider-aws/internal/controller/fsx/lustrefilesystem" + ontapfilesystem "github.com/upbound/provider-aws/internal/controller/fsx/ontapfilesystem" + ontapstoragevirtualmachine "github.com/upbound/provider-aws/internal/controller/fsx/ontapstoragevirtualmachine" windowsfilesystem "github.com/upbound/provider-aws/internal/controller/fsx/windowsfilesystem" alias "github.com/upbound/provider-aws/internal/controller/gamelift/alias" build "github.com/upbound/provider-aws/internal/controller/gamelift/build" @@ -1115,6 +1117,8 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { backup.Setup, datarepositoryassociation.Setup, lustrefilesystem.Setup, + ontapfilesystem.Setup, + ontapstoragevirtualmachine.Setup, windowsfilesystem.Setup, alias.Setup, build.Setup, diff --git a/package/crds/fsx.aws.upbound.io_ontapfilesystems.yaml b/package/crds/fsx.aws.upbound.io_ontapfilesystems.yaml new file mode 100644 index 0000000000..7f067e61d6 --- /dev/null +++ b/package/crds/fsx.aws.upbound.io_ontapfilesystems.yaml @@ -0,0 +1,775 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + creationTimestamp: null + name: ontapfilesystems.fsx.aws.upbound.io +spec: + group: fsx.aws.upbound.io + names: + categories: + - crossplane + - managed + - aws + kind: OntapFileSystem + listKind: OntapFileSystemList + plural: ontapfilesystems + singular: ontapfilesystem + 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: v1beta1 + schema: + openAPIV3Schema: + description: OntapFileSystem is the Schema for the OntapFileSystems API. Manages + an Amazon FSx for NetApp ONTAP file system. + 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: OntapFileSystemSpec defines the desired state of OntapFileSystem + 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. + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + automaticBackupRetentionDays: + description: The number of days to retain automatic backups. Setting + this to 0 disables automatic backups. You can retain automatic + backups for a maximum of 90 days. + type: number + dailyAutomaticBackupStartTime: + description: A recurring daily time, in the format HH:MM. HH is + the zero-padded hour of the day (0-23), and MM is the zero-padded + minute of the hour. For example, 05:00 specifies 5 AM daily. + Requires automatic_backup_retention_days to be set. + type: string + deploymentType: + description: '- The filesystem deployment type. Supports MULTI_AZ_1 + and SINGLE_AZ_1.' + type: string + diskIopsConfiguration: + description: The SSD IOPS configuration for the Amazon FSx for + NetApp ONTAP file system. See Disk Iops Configuration Below. + items: + properties: + iops: + description: '- The total number of SSD IOPS provisioned + for the file system.' + type: number + mode: + description: '- Specifies whether the number of IOPS for + the file system is using the system. Valid values are + AUTOMATIC and USER_PROVISIONED. Default value is AUTOMATIC.' + type: string + type: object + type: array + endpointIpAddressRange: + description: Specifies the IP address range in which the endpoints + to access your file system will be created. By default, Amazon + FSx selects an unused IP address range for you from the 198.19.* + range. + type: string + fsxAdminPasswordSecretRef: + description: The ONTAP administrative password for the fsxadmin + user that you can use to administer your file system using the + ONTAP CLI and REST API. + 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 + kmsKeyId: + description: ARN for the KMS Key to encrypt the file system at + rest, Defaults to an AWS managed KMS Key. + type: string + kmsKeyIdRef: + description: Reference to a Key in kms to populate kmsKeyId. + 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 + kmsKeyIdSelector: + description: Selector for a Key in kms to populate kmsKeyId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + preferredSubnetId: + description: The ID for a subnet. A subnet is a range of IP addresses + in your virtual private cloud (VPC). + type: string + preferredSubnetIdRef: + description: Reference to a Subnet in ec2 to populate preferredSubnetId. + 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 + preferredSubnetIdSelector: + description: Selector for a Subnet in ec2 to populate preferredSubnetId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + region: + description: Region is the region you'd like your resource to + be created in. + type: string + routeTableIds: + description: Specifies the VPC route tables in which your file + system's endpoints will be created. You should specify all VPC + route tables associated with the subnets in which your clients + are located. By default, Amazon FSx selects your VPC's default + route table. + items: + type: string + type: array + securityGroupIdRefs: + description: References to SecurityGroup in ec2 to populate securityGroupIds. + items: + description: A Reference to a named object. + 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 + type: array + securityGroupIdSelector: + description: Selector for a list of SecurityGroup in ec2 to populate + securityGroupIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + securityGroupIds: + description: A list of IDs for the security groups that apply + to the specified network interfaces created for file system + access. These security groups will apply to all network interfaces. + items: + type: string + type: array + storageCapacity: + description: The storage capacity (GiB) of the file system. Valid + values between 1024 and 196608. + type: number + storageType: + description: '- The filesystem storage type. defaults to SSD.' + type: string + subnetIdRefs: + description: References to Subnet in ec2 to populate subnetIds. + items: + description: A Reference to a named object. + 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 + type: array + subnetIdSelector: + description: Selector for a list of Subnet in ec2 to populate + subnetIds. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + subnetIds: + description: A list of IDs for the subnets that the file system + will be accessible from. Upto 2 subnets can be provided. + items: + type: string + type: array + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. + type: object + throughputCapacity: + description: Sets the throughput capacity (in MBps) for the file + system that you're creating. Valid values are 128, 256, 512, + 1024, and 2048. + type: number + weeklyMaintenanceStartTime: + description: The preferred start time (in d:HH:MM format) to perform + weekly maintenance, in the UTC time zone. + type: string + required: + - deploymentType + - region + - throughputCapacity + type: object + 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 + status: + description: OntapFileSystemStatus defines the observed state of OntapFileSystem. + properties: + atProvider: + properties: + arn: + description: Amazon Resource Name of the file system. + type: string + dnsName: + description: DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + type: string + endpoints: + description: The endpoints that are used to access data or to + manage the file system using the NetApp ONTAP CLI, REST API, + or NetApp SnapMirror. See Endpoints below. + items: + properties: + intercluster: + description: An endpoint for managing your file system by + setting up NetApp SnapMirror with other ONTAP systems. + See Endpoint. + items: + properties: + dnsName: + description: DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + type: string + ipAddresses: + description: IP addresses of the file system endpoint. + items: + type: string + type: array + type: object + type: array + management: + description: An endpoint for managing your file system using + the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. + items: + properties: + dnsName: + description: DNS name for the file system, e.g., fs-12345678.fsx.us-west-2.amazonaws.com + type: string + ipAddresses: + description: IP addresses of the file system endpoint. + items: + type: string + type: array + type: object + type: array + type: object + type: array + id: + description: Identifier of the file system, e.g., fs-12345678 + type: string + networkInterfaceIds: + description: Set of Elastic Network Interface identifiers from + which the file system is accessible The first network interface + returned is the primary network interface. + items: + type: string + type: array + ownerId: + description: AWS account identifier that created the file system. + type: string + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + vpcId: + description: Identifier of the Virtual Private Cloud for the file + system. + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/package/crds/fsx.aws.upbound.io_ontapstoragevirtualmachines.yaml b/package/crds/fsx.aws.upbound.io_ontapstoragevirtualmachines.yaml new file mode 100644 index 0000000000..0bcef0abd2 --- /dev/null +++ b/package/crds/fsx.aws.upbound.io_ontapstoragevirtualmachines.yaml @@ -0,0 +1,591 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + creationTimestamp: null + name: ontapstoragevirtualmachines.fsx.aws.upbound.io +spec: + group: fsx.aws.upbound.io + names: + categories: + - crossplane + - managed + - aws + kind: OntapStorageVirtualMachine + listKind: OntapStorageVirtualMachineList + plural: ontapstoragevirtualmachines + singular: ontapstoragevirtualmachine + 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: v1beta1 + schema: + openAPIV3Schema: + description: OntapStorageVirtualMachine is the Schema for the OntapStorageVirtualMachines + API. Manages a FSx Storage Virtual Machine. + 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: OntapStorageVirtualMachineSpec defines the desired state + of OntapStorageVirtualMachine + 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. + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + activeDirectoryConfiguration: + description: Configuration block that Amazon FSx uses to join + the FSx ONTAP Storage Virtual Machine(SVM) to your Microsoft + Active Directory (AD) directory. Detailed below. + items: + properties: + netbiosName: + description: The NetBIOS name of the Active Directory computer + object that will be created for your SVM. This is often + the same as the SVM name but can be different. It is limited + to 15 characters because of standard NetBIOS naming limits. + type: string + selfManagedActiveDirectoryConfiguration: + description: Configuration block that Amazon FSx uses to + join the FSx ONTAP Storage Virtual Machine(SVM) to your + Microsoft Active Directory (AD) directory. Detailed below. + items: + properties: + dnsIps: + description: A list of up to three IP addresses of + DNS servers or domain controllers in the self-managed + AD directory. + items: + type: string + type: array + domainName: + description: The fully qualified domain name of the + self-managed AD directory. For example, corp.example.com. + type: string + fileSystemAdministratorsGroup: + description: The name of the domain group whose members + are granted administrative privileges for the SVM. + The group that you specify must already exist in + your domain. Defaults to Domain Admins. + type: string + organizationalUnitDistinguishedName: + description: The fully qualified distinguished name + of the organizational unit within your self-managed + AD directory that the Windows File Server instance + will join. For example, OU=FSx,DC=yourdomain,DC=corp,DC=com. + Only accepts OU as the direct parent of the SVM. + If none is provided, the SVM is created in the default + location of your self-managed AD directory. To learn + more, see RFC 2253. + type: string + passwordSecretRef: + description: The password for the service account + on your self-managed AD domain that Amazon FSx will + use to join to your AD domain. + 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 + username: + description: The user name for the service account + on your self-managed AD domain that Amazon FSx will + use to join to your AD domain. + type: string + required: + - dnsIps + - domainName + - passwordSecretRef + - username + type: object + type: array + type: object + type: array + fileSystemId: + description: The ID of the Amazon FSx ONTAP File System that this + SVM will be created on. + type: string + fileSystemIdRef: + description: Reference to a OntapFileSystem in fsx to populate + fileSystemId. + 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 + fileSystemIdSelector: + description: Selector for a OntapFileSystem in fsx to populate + fileSystemId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + name: + description: The name of the SVM. You can use a maximum of 47 + alphanumeric characters, plus the underscore (_) special character. + type: string + region: + description: Region is the region you'd like your resource to + be created in. + type: string + rootVolumeSecurityStyle: + description: Specifies the root volume security style, Valid values + are UNIX, NTFS, and MIXED. All volumes created under this SVM + will inherit the root security style unless the security style + is specified on the volume. Default value is UNIX. + type: string + svmAdminPasswordSecretRef: + description: A SecretKeySelector is a reference to a secret key + in an arbitrary namespace. + 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 + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. + type: object + required: + - name + - region + type: object + 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 + status: + description: OntapStorageVirtualMachineStatus defines the observed state + of OntapStorageVirtualMachine. + properties: + atProvider: + properties: + arn: + description: Amazon Resource Name of the storage virtual machine. + type: string + endpoints: + description: The endpoints that are used to access data or to + manage the storage virtual machine using the NetApp ONTAP CLI, + REST API, or NetApp SnapMirror. See Endpoints below. + items: + properties: + iscsi: + description: An endpoint for accessing data on your storage + virtual machine via iSCSI protocol. See Endpoint. + items: + properties: + dnsName: + description: The Domain Name Service (DNS) name for + the storage virtual machine. You can mount your + storage virtual machine using its DNS name. + type: string + ipAddresses: + description: IP addresses of the storage virtual machine + endpoint. + items: + type: string + type: array + type: object + type: array + management: + description: An endpoint for managing your file system using + the NetApp ONTAP CLI and NetApp ONTAP API. See Endpoint. + items: + properties: + dnsName: + description: The Domain Name Service (DNS) name for + the storage virtual machine. You can mount your + storage virtual machine using its DNS name. + type: string + ipAddresses: + description: IP addresses of the storage virtual machine + endpoint. + items: + type: string + type: array + type: object + type: array + nfs: + description: An endpoint for accessing data on your storage + virtual machine via NFS protocol. See Endpoint. + items: + properties: + dnsName: + description: The Domain Name Service (DNS) name for + the storage virtual machine. You can mount your + storage virtual machine using its DNS name. + type: string + ipAddresses: + description: IP addresses of the storage virtual machine + endpoint. + items: + type: string + type: array + type: object + type: array + smb: + description: An endpoint for accessing data on your storage + virtual machine via SMB protocol. This is only set if + an active_directory_configuration has been set. See Endpoint. + items: + properties: + dnsName: + description: The Domain Name Service (DNS) name for + the storage virtual machine. You can mount your + storage virtual machine using its DNS name. + type: string + ipAddresses: + description: IP addresses of the storage virtual machine + endpoint. + items: + type: string + type: array + type: object + type: array + type: object + type: array + id: + description: Identifier of the storage virtual machine, e.g., + svm-12345678 + type: string + subtype: + description: Describes the SVM's subtype, e.g. DEFAULT + type: string + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + uuid: + description: The SVM's UUID (universally unique identifier). + 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: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: []