diff --git a/docs/hugo/content/reference/_index.md b/docs/hugo/content/reference/_index.md index fe8cfbf6139..7b1111e4dec 100644 --- a/docs/hugo/content/reference/_index.md +++ b/docs/hugo/content/reference/_index.md @@ -155,6 +155,15 @@ These resource(s) are available for use in the current release of ASO. Different To install the CRDs for these resources, your ASO configuration must include `containerservice.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|--------------------------|-------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| ManagedCluster | 2023-10-01 | v1api20231001 | v2.5.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/containerservice/v1api20231001/v1api20231001_managedcluster.yaml) | +| ManagedClustersAgentPool | 2023-10-01 | v1api20231001 | v2.5.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/containerservice/v1api20231001/v1api20231001_managedclustersagentpool.yaml) | + ### Released These resource(s) are available for use in the current release of ASO. Different versions of a given resource reflect different versions of the Azure ARM API. diff --git a/docs/hugo/content/reference/containerservice/_index.md b/docs/hugo/content/reference/containerservice/_index.md index 7e7565e205c..d3d288433ec 100644 --- a/docs/hugo/content/reference/containerservice/_index.md +++ b/docs/hugo/content/reference/containerservice/_index.md @@ -5,6 +5,15 @@ no_list: true --- To install the CRDs for these resources, your ASO configuration must include `containerservice.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|--------------------------|-------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------| +| ManagedCluster | 2023-10-01 | v1api20231001 | v2.5.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/containerservice/v1api20231001/v1api20231001_managedcluster.yaml) | +| ManagedClustersAgentPool | 2023-10-01 | v1api20231001 | v2.5.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/containerservice/v1api20231001/v1api20231001_managedclustersagentpool.yaml) | + ### Released These resource(s) are available for use in the current release of ASO. Different versions of a given resource reflect different versions of the Azure ARM API. diff --git a/v2/api/containerservice/customizations/managed_cluster_extension_types_gen.go b/v2/api/containerservice/customizations/managed_cluster_extension_types_gen.go index 8dbb65e4157..cb5f331882f 100644 --- a/v2/api/containerservice/customizations/managed_cluster_extension_types_gen.go +++ b/v2/api/containerservice/customizations/managed_cluster_extension_types_gen.go @@ -10,6 +10,8 @@ import ( v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" v20230202p "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview" v20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview/storage" + v20231001 "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" ) @@ -24,5 +26,7 @@ func (extension *ManagedClusterExtension) GetExtendedResources() []genruntime.Ku &v20230201.ManagedCluster{}, &v20230201s.ManagedCluster{}, &v20230202p.ManagedCluster{}, - &v20230202ps.ManagedCluster{}} + &v20230202ps.ManagedCluster{}, + &v20231001.ManagedCluster{}, + &v20231001s.ManagedCluster{}} } diff --git a/v2/api/containerservice/customizations/managed_cluster_extensions.go b/v2/api/containerservice/customizations/managed_cluster_extensions.go index fa14b384f45..6715130d35b 100644 --- a/v2/api/containerservice/customizations/managed_cluster_extensions.go +++ b/v2/api/containerservice/customizations/managed_cluster_extensions.go @@ -17,7 +17,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/conversion" - containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" . "github.com/Azure/azure-service-operator/v2/internal/logging" "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" diff --git a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extension_types_gen.go b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extension_types_gen.go index 2efef1cd144..04f24bd794b 100644 --- a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extension_types_gen.go +++ b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extension_types_gen.go @@ -10,6 +10,8 @@ import ( v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" v20230202p "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview" v20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview/storage" + v20231001 "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" ) @@ -24,5 +26,7 @@ func (extension *ManagedClustersAgentPoolExtension) GetExtendedResources() []gen &v20230201.ManagedClustersAgentPool{}, &v20230201s.ManagedClustersAgentPool{}, &v20230202p.ManagedClustersAgentPool{}, - &v20230202ps.ManagedClustersAgentPool{}} + &v20230202ps.ManagedClustersAgentPool{}, + &v20231001.ManagedClustersAgentPool{}, + &v20231001s.ManagedClustersAgentPool{}} } diff --git a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go index 0ba6769e2fd..d6390ff02fb 100644 --- a/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go +++ b/v2/api/containerservice/customizations/managed_clusters_agent_pool_extensions.go @@ -14,7 +14,7 @@ import ( "github.com/pkg/errors" "sigs.k8s.io/controller-runtime/pkg/conversion" - containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + containerservice "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" "github.com/Azure/azure-service-operator/v2/internal/resolver" diff --git a/v2/api/containerservice/v1api20210501/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20210501/managed_cluster_types_gen_test.go index d6d0cafd645..f3a71340182 100644 --- a/v2/api/containerservice/v1api20210501/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20210501/managed_cluster_types_gen_test.go @@ -6,7 +6,7 @@ package v1api20210501 import ( "encoding/json" v20210501s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20210501/storage" - v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -37,7 +37,7 @@ func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedCluster + var hub v20231001s.ManagedCluster err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20210501/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20210501/managed_clusters_agent_pool_types_gen_test.go index 103505e1822..228b6e01a98 100644 --- a/v2/api/containerservice/v1api20210501/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20210501/managed_clusters_agent_pool_types_gen_test.go @@ -6,7 +6,7 @@ package v1api20210501 import ( "encoding/json" v20210501s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20210501/storage" - v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -37,7 +37,7 @@ func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedCluster copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedClustersAgentPool + var hub v20231001s.ManagedClustersAgentPool err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen.go index 75188244ead..8a1513e2e3b 100644 --- a/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen.go +++ b/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen.go @@ -4,7 +4,6 @@ package storage import ( - "fmt" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" @@ -47,22 +46,36 @@ var _ conversion.Convertible = &ManagedCluster{} // ConvertFrom populates our ManagedCluster from the provided hub ManagedCluster func (cluster *ManagedCluster) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedCluster + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = cluster.AssignProperties_From_ManagedCluster(&source) + if err != nil { + return errors.Wrap(err, "converting from source to cluster") } - return cluster.AssignProperties_From_ManagedCluster(source) + return nil } // ConvertTo populates the provided hub ManagedCluster from our ManagedCluster func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedCluster + err := cluster.AssignProperties_To_ManagedCluster(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from cluster") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return cluster.AssignProperties_To_ManagedCluster(destination) + return nil } var _ genruntime.KubernetesResource = &ManagedCluster{} diff --git a/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen_test.go index 4d3042aa499..559b305ed9c 100644 --- a/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20210501/storage/managed_cluster_types_gen_test.go @@ -6,6 +6,7 @@ package storage import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +37,7 @@ func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedCluster + var hub v20231001s.ManagedCluster err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen.go index e581528ed1c..1b56e315a8e 100644 --- a/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen.go +++ b/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen.go @@ -4,7 +4,6 @@ package storage import ( - "fmt" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" @@ -47,22 +46,36 @@ var _ conversion.Convertible = &ManagedClustersAgentPool{} // ConvertFrom populates our ManagedClustersAgentPool from the provided hub ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedClustersAgentPool + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = pool.AssignProperties_From_ManagedClustersAgentPool(&source) + if err != nil { + return errors.Wrap(err, "converting from source to pool") } - return pool.AssignProperties_From_ManagedClustersAgentPool(source) + return nil } // ConvertTo populates the provided hub ManagedClustersAgentPool from our ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedClustersAgentPool + err := pool.AssignProperties_To_ManagedClustersAgentPool(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from pool") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return pool.AssignProperties_To_ManagedClustersAgentPool(destination) + return nil } var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} diff --git a/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen_test.go index ef59c50f74d..d1fb51c69fb 100644 --- a/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20210501/storage/managed_clusters_agent_pool_types_gen_test.go @@ -6,6 +6,7 @@ package storage import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +37,7 @@ func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedCluster copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedClustersAgentPool + var hub v20231001s.ManagedClustersAgentPool err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go index f8690b4d2ce..24d4ff41b14 100644 --- a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go +++ b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen.go @@ -54,22 +54,36 @@ var _ conversion.Convertible = &ManagedCluster{} // ConvertFrom populates our ManagedCluster from the provided hub ManagedCluster func (cluster *ManagedCluster) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedCluster + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = cluster.AssignProperties_From_ManagedCluster(&source) + if err != nil { + return errors.Wrap(err, "converting from source to cluster") } - return cluster.AssignProperties_From_ManagedCluster(source) + return nil } // ConvertTo populates the provided hub ManagedCluster from our ManagedCluster func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedCluster + err := cluster.AssignProperties_To_ManagedCluster(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from cluster") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return cluster.AssignProperties_To_ManagedCluster(destination) + return nil } // +kubebuilder:webhook:path=/mutate-containerservice-azure-com-v1api20230201-managedcluster,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclusters,verbs=create;update,versions=v1api20230201,name=default.v1api20230201.managedclusters.containerservice.azure.com,admissionReviewVersions=v1 @@ -95,17 +109,6 @@ func (cluster *ManagedCluster) defaultAzureName() { // defaultImpl applies the code generated defaults to the ManagedCluster resource func (cluster *ManagedCluster) defaultImpl() { cluster.defaultAzureName() } -var _ genruntime.ImportableResource = &ManagedCluster{} - -// InitializeSpec initializes the spec for this resource from the given status -func (cluster *ManagedCluster) InitializeSpec(status genruntime.ConvertibleStatus) error { - if s, ok := status.(*ManagedCluster_STATUS); ok { - return cluster.Spec.Initialize_From_ManagedCluster_STATUS(s) - } - - return fmt.Errorf("expected Status of type ManagedCluster_STATUS but received %T instead", status) -} - var _ genruntime.KubernetesExporter = &ManagedCluster{} // ExportKubernetesResources defines a resource which can create other resources in Kubernetes. @@ -2037,433 +2040,88 @@ func (cluster *ManagedCluster_Spec) AssignProperties_To_ManagedCluster_Spec(dest return nil } -// Initialize_From_ManagedCluster_STATUS populates our ManagedCluster_Spec from the provided source ManagedCluster_STATUS -func (cluster *ManagedCluster_Spec) Initialize_From_ManagedCluster_STATUS(source *ManagedCluster_STATUS) error { +// OriginalVersion returns the original API version used to create the resource. +func (cluster *ManagedCluster_Spec) OriginalVersion() string { + return GroupVersion.Version +} - // AadProfile - if source.AadProfile != nil { - var aadProfile ManagedClusterAADProfile - err := aadProfile.Initialize_From_ManagedClusterAADProfile_STATUS(source.AadProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAADProfile_STATUS() to populate field AadProfile") - } - cluster.AadProfile = &aadProfile - } else { - cluster.AadProfile = nil - } +// SetAzureName sets the Azure name of the resource +func (cluster *ManagedCluster_Spec) SetAzureName(azureName string) { cluster.AzureName = azureName } - // AddonProfiles - if source.AddonProfiles != nil { - addonProfileMap := make(map[string]ManagedClusterAddonProfile, len(source.AddonProfiles)) - for addonProfileKey, addonProfileValue := range source.AddonProfiles { - // Shadow the loop variable to avoid aliasing - addonProfileValue := addonProfileValue - var addonProfile ManagedClusterAddonProfile - err := addonProfile.Initialize_From_ManagedClusterAddonProfile_STATUS(&addonProfileValue) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") - } - addonProfileMap[addonProfileKey] = addonProfile - } - cluster.AddonProfiles = addonProfileMap - } else { - cluster.AddonProfiles = nil - } +// Managed cluster. +type ManagedCluster_STATUS struct { + // AadProfile: The Azure Active Directory configuration. + AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` - // AgentPoolProfiles - if source.AgentPoolProfiles != nil { - agentPoolProfileList := make([]ManagedClusterAgentPoolProfile, len(source.AgentPoolProfiles)) - for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { - // Shadow the loop variable to avoid aliasing - agentPoolProfileItem := agentPoolProfileItem - var agentPoolProfile ManagedClusterAgentPoolProfile - err := agentPoolProfile.Initialize_From_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfileItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") - } - agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile - } - cluster.AgentPoolProfiles = agentPoolProfileList - } else { - cluster.AgentPoolProfiles = nil - } + // AddonProfiles: The profile of managed cluster add-on. + AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` - // ApiServerAccessProfile - if source.ApiServerAccessProfile != nil { - var apiServerAccessProfile ManagedClusterAPIServerAccessProfile - err := apiServerAccessProfile.Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS(source.ApiServerAccessProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") - } - cluster.ApiServerAccessProfile = &apiServerAccessProfile - } else { - cluster.ApiServerAccessProfile = nil - } + // AgentPoolProfiles: The agent pool properties. + AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` - // AutoScalerProfile - if source.AutoScalerProfile != nil { - var autoScalerProfile ManagedClusterProperties_AutoScalerProfile - err := autoScalerProfile.Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source.AutoScalerProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") - } - cluster.AutoScalerProfile = &autoScalerProfile - } else { - cluster.AutoScalerProfile = nil - } + // ApiServerAccessProfile: The access profile for managed cluster API server. + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` - // AutoUpgradeProfile - if source.AutoUpgradeProfile != nil { - var autoUpgradeProfile ManagedClusterAutoUpgradeProfile - err := autoUpgradeProfile.Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS(source.AutoUpgradeProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") - } - cluster.AutoUpgradeProfile = &autoUpgradeProfile - } else { - cluster.AutoUpgradeProfile = nil - } + // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` - // AzureMonitorProfile - if source.AzureMonitorProfile != nil { - var azureMonitorProfile ManagedClusterAzureMonitorProfile - err := azureMonitorProfile.Initialize_From_ManagedClusterAzureMonitorProfile_STATUS(source.AzureMonitorProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") - } - cluster.AzureMonitorProfile = &azureMonitorProfile - } else { - cluster.AzureMonitorProfile = nil - } + // AutoUpgradeProfile: The auto upgrade configuration. + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` - // DisableLocalAccounts - if source.DisableLocalAccounts != nil { - disableLocalAccount := *source.DisableLocalAccounts - cluster.DisableLocalAccounts = &disableLocalAccount - } else { - cluster.DisableLocalAccounts = nil - } + // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` - // DnsPrefix - cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) + // AzurePortalFQDN: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some + // responses, which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure + // Portal to function properly. + AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` - // EnablePodSecurityPolicy - if source.EnablePodSecurityPolicy != nil { - enablePodSecurityPolicy := *source.EnablePodSecurityPolicy - cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy - } else { - cluster.EnablePodSecurityPolicy = nil - } + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` - // EnableRBAC - if source.EnableRBAC != nil { - enableRBAC := *source.EnableRBAC - cluster.EnableRBAC = &enableRBAC - } else { - cluster.EnableRBAC = nil - } + // CurrentKubernetesVersion: If kubernetesVersion was a fully specified version , this field will be + // exactly equal to it. If kubernetesVersion was , this field will contain the full + // version being used. + CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` - // ExtendedLocation - if source.ExtendedLocation != nil { - var extendedLocation ExtendedLocation - err := extendedLocation.Initialize_From_ExtendedLocation_STATUS(source.ExtendedLocation) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ExtendedLocation_STATUS() to populate field ExtendedLocation") - } - cluster.ExtendedLocation = &extendedLocation - } else { - cluster.ExtendedLocation = nil - } + // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be + // used on Managed Clusters that are AAD enabled. For more details see [disable local + // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` - // FqdnSubdomain - cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) + // DiskEncryptionSetID: This is of the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` - // HttpProxyConfig - if source.HttpProxyConfig != nil { - var httpProxyConfig ManagedClusterHTTPProxyConfig - err := httpProxyConfig.Initialize_From_ManagedClusterHTTPProxyConfig_STATUS(source.HttpProxyConfig) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") - } - cluster.HttpProxyConfig = &httpProxyConfig - } else { - cluster.HttpProxyConfig = nil - } + // DnsPrefix: This cannot be updated once the Managed Cluster has been created. + DnsPrefix *string `json:"dnsPrefix,omitempty"` - // Identity - if source.Identity != nil { - var identity ManagedClusterIdentity - err := identity.Initialize_From_ManagedClusterIdentity_STATUS(source.Identity) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterIdentity_STATUS() to populate field Identity") - } - cluster.Identity = &identity - } else { - cluster.Identity = nil - } + // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was + // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and + // https://aka.ms/aks/psp. + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` - // IdentityProfile - if source.IdentityProfile != nil { - identityProfileMap := make(map[string]UserAssignedIdentity, len(source.IdentityProfile)) - for identityProfileKey, identityProfileValue := range source.IdentityProfile { - // Shadow the loop variable to avoid aliasing - identityProfileValue := identityProfileValue - var identityProfile UserAssignedIdentity - err := identityProfile.Initialize_From_UserAssignedIdentity_STATUS(&identityProfileValue) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_UserAssignedIdentity_STATUS() to populate field IdentityProfile") - } - identityProfileMap[identityProfileKey] = identityProfile - } - cluster.IdentityProfile = identityProfileMap - } else { - cluster.IdentityProfile = nil - } + // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. + EnableRBAC *bool `json:"enableRBAC,omitempty"` - // KubernetesVersion - cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + // ExtendedLocation: The extended location of the Virtual Machine. + ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` - // LinuxProfile - if source.LinuxProfile != nil { - var linuxProfile ContainerServiceLinuxProfile - err := linuxProfile.Initialize_From_ContainerServiceLinuxProfile_STATUS(source.LinuxProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") - } - cluster.LinuxProfile = &linuxProfile - } else { - cluster.LinuxProfile = nil - } + // Fqdn: The FQDN of the master pool. + Fqdn *string `json:"fqdn,omitempty"` - // Location - cluster.Location = genruntime.ClonePointerToString(source.Location) + // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` - // NetworkProfile - if source.NetworkProfile != nil { - var networkProfile ContainerServiceNetworkProfile - err := networkProfile.Initialize_From_ContainerServiceNetworkProfile_STATUS(source.NetworkProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") - } - cluster.NetworkProfile = &networkProfile - } else { - cluster.NetworkProfile = nil - } + // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. + HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` - // NodeResourceGroup - cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + // Id: Fully qualified resource ID for the resource. Ex - + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id *string `json:"id,omitempty"` - // OidcIssuerProfile - if source.OidcIssuerProfile != nil { - var oidcIssuerProfile ManagedClusterOIDCIssuerProfile - err := oidcIssuerProfile.Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS(source.OidcIssuerProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") - } - cluster.OidcIssuerProfile = &oidcIssuerProfile - } else { - cluster.OidcIssuerProfile = nil - } - - // PodIdentityProfile - if source.PodIdentityProfile != nil { - var podIdentityProfile ManagedClusterPodIdentityProfile - err := podIdentityProfile.Initialize_From_ManagedClusterPodIdentityProfile_STATUS(source.PodIdentityProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") - } - cluster.PodIdentityProfile = &podIdentityProfile - } else { - cluster.PodIdentityProfile = nil - } - - // PrivateLinkResources - if source.PrivateLinkResources != nil { - privateLinkResourceList := make([]PrivateLinkResource, len(source.PrivateLinkResources)) - for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { - // Shadow the loop variable to avoid aliasing - privateLinkResourceItem := privateLinkResourceItem - var privateLinkResource PrivateLinkResource - err := privateLinkResource.Initialize_From_PrivateLinkResource_STATUS(&privateLinkResourceItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") - } - privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource - } - cluster.PrivateLinkResources = privateLinkResourceList - } else { - cluster.PrivateLinkResources = nil - } - - // PublicNetworkAccess - if source.PublicNetworkAccess != nil { - publicNetworkAccess := ManagedClusterProperties_PublicNetworkAccess(*source.PublicNetworkAccess) - cluster.PublicNetworkAccess = &publicNetworkAccess - } else { - cluster.PublicNetworkAccess = nil - } - - // SecurityProfile - if source.SecurityProfile != nil { - var securityProfile ManagedClusterSecurityProfile - err := securityProfile.Initialize_From_ManagedClusterSecurityProfile_STATUS(source.SecurityProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") - } - cluster.SecurityProfile = &securityProfile - } else { - cluster.SecurityProfile = nil - } - - // ServicePrincipalProfile - if source.ServicePrincipalProfile != nil { - var servicePrincipalProfile ManagedClusterServicePrincipalProfile - err := servicePrincipalProfile.Initialize_From_ManagedClusterServicePrincipalProfile_STATUS(source.ServicePrincipalProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") - } - cluster.ServicePrincipalProfile = &servicePrincipalProfile - } else { - cluster.ServicePrincipalProfile = nil - } - - // Sku - if source.Sku != nil { - var sku ManagedClusterSKU - err := sku.Initialize_From_ManagedClusterSKU_STATUS(source.Sku) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSKU_STATUS() to populate field Sku") - } - cluster.Sku = &sku - } else { - cluster.Sku = nil - } - - // StorageProfile - if source.StorageProfile != nil { - var storageProfile ManagedClusterStorageProfile - err := storageProfile.Initialize_From_ManagedClusterStorageProfile_STATUS(source.StorageProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") - } - cluster.StorageProfile = &storageProfile - } else { - cluster.StorageProfile = nil - } - - // Tags - cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) - - // WindowsProfile - if source.WindowsProfile != nil { - var windowsProfile ManagedClusterWindowsProfile - err := windowsProfile.Initialize_From_ManagedClusterWindowsProfile_STATUS(source.WindowsProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") - } - cluster.WindowsProfile = &windowsProfile - } else { - cluster.WindowsProfile = nil - } - - // WorkloadAutoScalerProfile - if source.WorkloadAutoScalerProfile != nil { - var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile - err := workloadAutoScalerProfile.Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source.WorkloadAutoScalerProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") - } - cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile - } else { - cluster.WorkloadAutoScalerProfile = nil - } - - // No error - return nil -} - -// OriginalVersion returns the original API version used to create the resource. -func (cluster *ManagedCluster_Spec) OriginalVersion() string { - return GroupVersion.Version -} - -// SetAzureName sets the Azure name of the resource -func (cluster *ManagedCluster_Spec) SetAzureName(azureName string) { cluster.AzureName = azureName } - -// Managed cluster. -type ManagedCluster_STATUS struct { - // AadProfile: The Azure Active Directory configuration. - AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` - - // AddonProfiles: The profile of managed cluster add-on. - AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` - - // AgentPoolProfiles: The agent pool properties. - AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` - - // ApiServerAccessProfile: The access profile for managed cluster API server. - ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` - - // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled - AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` - - // AutoUpgradeProfile: The auto upgrade configuration. - AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` - - // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. - AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` - - // AzurePortalFQDN: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some - // responses, which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure - // Portal to function properly. - AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` - - // Conditions: The observed state of the resource - Conditions []conditions.Condition `json:"conditions,omitempty"` - - // CurrentKubernetesVersion: If kubernetesVersion was a fully specified version , this field will be - // exactly equal to it. If kubernetesVersion was , this field will contain the full - // version being used. - CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` - - // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be - // used on Managed Clusters that are AAD enabled. For more details see [disable local - // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). - DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` - - // DiskEncryptionSetID: This is of the form: - // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' - DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` - - // DnsPrefix: This cannot be updated once the Managed Cluster has been created. - DnsPrefix *string `json:"dnsPrefix,omitempty"` - - // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was - // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and - // https://aka.ms/aks/psp. - EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` - - // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. - EnableRBAC *bool `json:"enableRBAC,omitempty"` - - // ExtendedLocation: The extended location of the Virtual Machine. - ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` - - // Fqdn: The FQDN of the master pool. - Fqdn *string `json:"fqdn,omitempty"` - - // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. - FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` - - // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. - HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` - - // Id: Fully qualified resource ID for the resource. Ex - - // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - Id *string `json:"id,omitempty"` - - // Identity: The identity of the managed cluster, if configured. - Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` + // Identity: The identity of the managed cluster, if configured. + Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` // IdentityProfile: Identities associated with the cluster. IdentityProfile map[string]UserAssignedIdentity_STATUS `json:"identityProfile,omitempty"` @@ -4057,33 +3715,6 @@ func (profile *ContainerServiceLinuxProfile) AssignProperties_To_ContainerServic return nil } -// Initialize_From_ContainerServiceLinuxProfile_STATUS populates our ContainerServiceLinuxProfile from the provided source ContainerServiceLinuxProfile_STATUS -func (profile *ContainerServiceLinuxProfile) Initialize_From_ContainerServiceLinuxProfile_STATUS(source *ContainerServiceLinuxProfile_STATUS) error { - - // AdminUsername - if source.AdminUsername != nil { - adminUsername := *source.AdminUsername - profile.AdminUsername = &adminUsername - } else { - profile.AdminUsername = nil - } - - // Ssh - if source.Ssh != nil { - var ssh ContainerServiceSshConfiguration - err := ssh.Initialize_From_ContainerServiceSshConfiguration_STATUS(source.Ssh) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") - } - profile.Ssh = &ssh - } else { - profile.Ssh = nil - } - - // No error - return nil -} - // Profile for Linux VMs in the container service cluster. type ContainerServiceLinuxProfile_STATUS struct { // AdminUsername: The administrator username to use for Linux VMs. @@ -4761,166 +4392,27 @@ func (profile *ContainerServiceNetworkProfile) AssignProperties_To_ContainerServ return nil } -// Initialize_From_ContainerServiceNetworkProfile_STATUS populates our ContainerServiceNetworkProfile from the provided source ContainerServiceNetworkProfile_STATUS -func (profile *ContainerServiceNetworkProfile) Initialize_From_ContainerServiceNetworkProfile_STATUS(source *ContainerServiceNetworkProfile_STATUS) error { +// Profile of network configuration. +type ContainerServiceNetworkProfile_STATUS struct { + // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address + // range specified in serviceCidr. + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` - // DnsServiceIP - if source.DnsServiceIP != nil { - dnsServiceIP := *source.DnsServiceIP - profile.DnsServiceIP = &dnsServiceIP - } else { - profile.DnsServiceIP = nil - } + // DockerBridgeCidr: A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP + // ranges or the Kubernetes service address range. + DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` - // DockerBridgeCidr - if source.DockerBridgeCidr != nil { - dockerBridgeCidr := *source.DockerBridgeCidr - profile.DockerBridgeCidr = &dockerBridgeCidr - } else { - profile.DockerBridgeCidr = nil - } + // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value + // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. + IpFamilies []ContainerServiceNetworkProfile_IpFamilies_STATUS `json:"ipFamilies,omitempty"` - // IpFamilies - if source.IpFamilies != nil { - ipFamilyList := make([]ContainerServiceNetworkProfile_IpFamilies, len(source.IpFamilies)) - for ipFamilyIndex, ipFamilyItem := range source.IpFamilies { - // Shadow the loop variable to avoid aliasing - ipFamilyItem := ipFamilyItem - ipFamily := ContainerServiceNetworkProfile_IpFamilies(ipFamilyItem) - ipFamilyList[ipFamilyIndex] = ipFamily - } - profile.IpFamilies = ipFamilyList - } else { - profile.IpFamilies = nil - } + // LoadBalancerProfile: Profile of the cluster load balancer. + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` - // LoadBalancerProfile - if source.LoadBalancerProfile != nil { - var loadBalancerProfile ManagedClusterLoadBalancerProfile - err := loadBalancerProfile.Initialize_From_ManagedClusterLoadBalancerProfile_STATUS(source.LoadBalancerProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") - } - profile.LoadBalancerProfile = &loadBalancerProfile - } else { - profile.LoadBalancerProfile = nil - } - - // LoadBalancerSku - if source.LoadBalancerSku != nil { - loadBalancerSku := ContainerServiceNetworkProfile_LoadBalancerSku(*source.LoadBalancerSku) - profile.LoadBalancerSku = &loadBalancerSku - } else { - profile.LoadBalancerSku = nil - } - - // NatGatewayProfile - if source.NatGatewayProfile != nil { - var natGatewayProfile ManagedClusterNATGatewayProfile - err := natGatewayProfile.Initialize_From_ManagedClusterNATGatewayProfile_STATUS(source.NatGatewayProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") - } - profile.NatGatewayProfile = &natGatewayProfile - } else { - profile.NatGatewayProfile = nil - } - - // NetworkDataplane - if source.NetworkDataplane != nil { - networkDataplane := ContainerServiceNetworkProfile_NetworkDataplane(*source.NetworkDataplane) - profile.NetworkDataplane = &networkDataplane - } else { - profile.NetworkDataplane = nil - } - - // NetworkMode - if source.NetworkMode != nil { - networkMode := ContainerServiceNetworkProfile_NetworkMode(*source.NetworkMode) - profile.NetworkMode = &networkMode - } else { - profile.NetworkMode = nil - } - - // NetworkPlugin - if source.NetworkPlugin != nil { - networkPlugin := ContainerServiceNetworkProfile_NetworkPlugin(*source.NetworkPlugin) - profile.NetworkPlugin = &networkPlugin - } else { - profile.NetworkPlugin = nil - } - - // NetworkPluginMode - if source.NetworkPluginMode != nil { - networkPluginMode := ContainerServiceNetworkProfile_NetworkPluginMode(*source.NetworkPluginMode) - profile.NetworkPluginMode = &networkPluginMode - } else { - profile.NetworkPluginMode = nil - } - - // NetworkPolicy - if source.NetworkPolicy != nil { - networkPolicy := ContainerServiceNetworkProfile_NetworkPolicy(*source.NetworkPolicy) - profile.NetworkPolicy = &networkPolicy - } else { - profile.NetworkPolicy = nil - } - - // OutboundType - if source.OutboundType != nil { - outboundType := ContainerServiceNetworkProfile_OutboundType(*source.OutboundType) - profile.OutboundType = &outboundType - } else { - profile.OutboundType = nil - } - - // PodCidr - if source.PodCidr != nil { - podCidr := *source.PodCidr - profile.PodCidr = &podCidr - } else { - profile.PodCidr = nil - } - - // PodCidrs - profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) - - // ServiceCidr - if source.ServiceCidr != nil { - serviceCidr := *source.ServiceCidr - profile.ServiceCidr = &serviceCidr - } else { - profile.ServiceCidr = nil - } - - // ServiceCidrs - profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) - - // No error - return nil -} - -// Profile of network configuration. -type ContainerServiceNetworkProfile_STATUS struct { - // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address - // range specified in serviceCidr. - DnsServiceIP *string `json:"dnsServiceIP,omitempty"` - - // DockerBridgeCidr: A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP - // ranges or the Kubernetes service address range. - DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` - - // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value - // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. - IpFamilies []ContainerServiceNetworkProfile_IpFamilies_STATUS `json:"ipFamilies,omitempty"` - - // LoadBalancerProfile: Profile of the cluster load balancer. - LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` - - // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer - // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load - // balancer SKUs. - LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku_STATUS `json:"loadBalancerSku,omitempty"` + // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer + // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load + // balancer SKUs. + LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku_STATUS `json:"loadBalancerSku,omitempty"` // NatGatewayProfile: Profile of the cluster NAT gateway. NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS `json:"natGatewayProfile,omitempty"` @@ -5431,24 +4923,6 @@ func (location *ExtendedLocation) AssignProperties_To_ExtendedLocation(destinati return nil } -// Initialize_From_ExtendedLocation_STATUS populates our ExtendedLocation from the provided source ExtendedLocation_STATUS -func (location *ExtendedLocation) Initialize_From_ExtendedLocation_STATUS(source *ExtendedLocation_STATUS) error { - - // Name - location.Name = genruntime.ClonePointerToString(source.Name) - - // Type - if source.Type != nil { - typeVar := ExtendedLocationType(*source.Type) - location.Type = &typeVar - } else { - location.Type = nil - } - - // No error - return nil -} - // The complex type of the extended location. type ExtendedLocation_STATUS struct { // Name: The name of the extended location. @@ -5752,44 +5226,6 @@ func (profile *ManagedClusterAADProfile) AssignProperties_To_ManagedClusterAADPr return nil } -// Initialize_From_ManagedClusterAADProfile_STATUS populates our ManagedClusterAADProfile from the provided source ManagedClusterAADProfile_STATUS -func (profile *ManagedClusterAADProfile) Initialize_From_ManagedClusterAADProfile_STATUS(source *ManagedClusterAADProfile_STATUS) error { - - // AdminGroupObjectIDs - profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) - - // ClientAppID - profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) - - // EnableAzureRBAC - if source.EnableAzureRBAC != nil { - enableAzureRBAC := *source.EnableAzureRBAC - profile.EnableAzureRBAC = &enableAzureRBAC - } else { - profile.EnableAzureRBAC = nil - } - - // Managed - if source.Managed != nil { - managed := *source.Managed - profile.Managed = &managed - } else { - profile.Managed = nil - } - - // ServerAppID - profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) - - // ServerAppSecret - profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) - - // TenantID - profile.TenantID = genruntime.ClonePointerToString(source.TenantID) - - // No error - return nil -} - // For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). type ManagedClusterAADProfile_STATUS struct { // AdminGroupObjectIDs: The list of AAD group object IDs that will have admin role of the cluster. @@ -6069,24 +5505,6 @@ func (profile *ManagedClusterAddonProfile) AssignProperties_To_ManagedClusterAdd return nil } -// Initialize_From_ManagedClusterAddonProfile_STATUS populates our ManagedClusterAddonProfile from the provided source ManagedClusterAddonProfile_STATUS -func (profile *ManagedClusterAddonProfile) Initialize_From_ManagedClusterAddonProfile_STATUS(source *ManagedClusterAddonProfile_STATUS) error { - - // Config - profile.Config = genruntime.CloneMapOfStringToString(source.Config) - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - profile.Enabled = &enabled - } else { - profile.Enabled = nil - } - - // No error - return nil -} - // A Kubernetes add-on profile for a managed cluster. type ManagedClusterAddonProfile_STATUS struct { // Config: Key-value pairs for configuring an add-on. @@ -7494,263 +6912,14 @@ func (profile *ManagedClusterAgentPoolProfile) AssignProperties_To_ManagedCluste workloadRuntime := string(*profile.WorkloadRuntime) destination.WorkloadRuntime = &workloadRuntime } else { - destination.WorkloadRuntime = nil - } - - // Update the property bag - if len(propertyBag) > 0 { - destination.PropertyBag = propertyBag - } else { - destination.PropertyBag = nil - } - - // No error - return nil -} - -// Initialize_From_ManagedClusterAgentPoolProfile_STATUS populates our ManagedClusterAgentPoolProfile from the provided source ManagedClusterAgentPoolProfile_STATUS -func (profile *ManagedClusterAgentPoolProfile) Initialize_From_ManagedClusterAgentPoolProfile_STATUS(source *ManagedClusterAgentPoolProfile_STATUS) error { - - // AvailabilityZones - profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) - - // Count - profile.Count = genruntime.ClonePointerToInt(source.Count) - - // CreationData - if source.CreationData != nil { - var creationDatum CreationData - err := creationDatum.Initialize_From_CreationData_STATUS(source.CreationData) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_CreationData_STATUS() to populate field CreationData") - } - profile.CreationData = &creationDatum - } else { - profile.CreationData = nil - } - - // EnableAutoScaling - if source.EnableAutoScaling != nil { - enableAutoScaling := *source.EnableAutoScaling - profile.EnableAutoScaling = &enableAutoScaling - } else { - profile.EnableAutoScaling = nil - } - - // EnableEncryptionAtHost - if source.EnableEncryptionAtHost != nil { - enableEncryptionAtHost := *source.EnableEncryptionAtHost - profile.EnableEncryptionAtHost = &enableEncryptionAtHost - } else { - profile.EnableEncryptionAtHost = nil - } - - // EnableFIPS - if source.EnableFIPS != nil { - enableFIPS := *source.EnableFIPS - profile.EnableFIPS = &enableFIPS - } else { - profile.EnableFIPS = nil - } - - // EnableNodePublicIP - if source.EnableNodePublicIP != nil { - enableNodePublicIP := *source.EnableNodePublicIP - profile.EnableNodePublicIP = &enableNodePublicIP - } else { - profile.EnableNodePublicIP = nil - } - - // EnableUltraSSD - if source.EnableUltraSSD != nil { - enableUltraSSD := *source.EnableUltraSSD - profile.EnableUltraSSD = &enableUltraSSD - } else { - profile.EnableUltraSSD = nil - } - - // GpuInstanceProfile - if source.GpuInstanceProfile != nil { - gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) - profile.GpuInstanceProfile = &gpuInstanceProfile - } else { - profile.GpuInstanceProfile = nil - } - - // KubeletConfig - if source.KubeletConfig != nil { - var kubeletConfig KubeletConfig - err := kubeletConfig.Initialize_From_KubeletConfig_STATUS(source.KubeletConfig) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_KubeletConfig_STATUS() to populate field KubeletConfig") - } - profile.KubeletConfig = &kubeletConfig - } else { - profile.KubeletConfig = nil - } - - // KubeletDiskType - if source.KubeletDiskType != nil { - kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) - profile.KubeletDiskType = &kubeletDiskType - } else { - profile.KubeletDiskType = nil - } - - // LinuxOSConfig - if source.LinuxOSConfig != nil { - var linuxOSConfig LinuxOSConfig - err := linuxOSConfig.Initialize_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") - } - profile.LinuxOSConfig = &linuxOSConfig - } else { - profile.LinuxOSConfig = nil - } - - // MaxCount - profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) - - // MaxPods - profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) - - // MinCount - profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) - - // Mode - if source.Mode != nil { - mode := AgentPoolMode(*source.Mode) - profile.Mode = &mode - } else { - profile.Mode = nil - } - - // Name - if source.Name != nil { - name := *source.Name - profile.Name = &name - } else { - profile.Name = nil - } - - // NodeLabels - profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) - - // NodeTaints - profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) - - // OrchestratorVersion - profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) - - // OsDiskSizeGB - if source.OsDiskSizeGB != nil { - osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) - profile.OsDiskSizeGB = &osDiskSizeGB - } else { - profile.OsDiskSizeGB = nil - } - - // OsDiskType - if source.OsDiskType != nil { - osDiskType := OSDiskType(*source.OsDiskType) - profile.OsDiskType = &osDiskType - } else { - profile.OsDiskType = nil - } - - // OsSKU - if source.OsSKU != nil { - osSKU := OSSKU(*source.OsSKU) - profile.OsSKU = &osSKU - } else { - profile.OsSKU = nil - } - - // OsType - if source.OsType != nil { - osType := OSType(*source.OsType) - profile.OsType = &osType - } else { - profile.OsType = nil - } - - // PowerState - if source.PowerState != nil { - var powerState PowerState - err := powerState.Initialize_From_PowerState_STATUS(source.PowerState) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_PowerState_STATUS() to populate field PowerState") - } - profile.PowerState = &powerState - } else { - profile.PowerState = nil - } - - // ScaleDownMode - if source.ScaleDownMode != nil { - scaleDownMode := ScaleDownMode(*source.ScaleDownMode) - profile.ScaleDownMode = &scaleDownMode - } else { - profile.ScaleDownMode = nil - } - - // ScaleSetEvictionPolicy - if source.ScaleSetEvictionPolicy != nil { - scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) - profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy - } else { - profile.ScaleSetEvictionPolicy = nil - } - - // ScaleSetPriority - if source.ScaleSetPriority != nil { - scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) - profile.ScaleSetPriority = &scaleSetPriority - } else { - profile.ScaleSetPriority = nil - } - - // SpotMaxPrice - if source.SpotMaxPrice != nil { - spotMaxPrice := *source.SpotMaxPrice - profile.SpotMaxPrice = &spotMaxPrice - } else { - profile.SpotMaxPrice = nil - } - - // Tags - profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) - - // Type - if source.Type != nil { - typeVar := AgentPoolType(*source.Type) - profile.Type = &typeVar - } else { - profile.Type = nil - } - - // UpgradeSettings - if source.UpgradeSettings != nil { - var upgradeSetting AgentPoolUpgradeSettings - err := upgradeSetting.Initialize_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") - } - profile.UpgradeSettings = &upgradeSetting - } else { - profile.UpgradeSettings = nil + destination.WorkloadRuntime = nil } - // VmSize - profile.VmSize = genruntime.ClonePointerToString(source.VmSize) - - // WorkloadRuntime - if source.WorkloadRuntime != nil { - workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) - profile.WorkloadRuntime = &workloadRuntime + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag } else { - profile.WorkloadRuntime = nil + destination.PropertyBag = nil } // No error @@ -8945,43 +8114,6 @@ func (profile *ManagedClusterAPIServerAccessProfile) AssignProperties_To_Managed return nil } -// Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS populates our ManagedClusterAPIServerAccessProfile from the provided source ManagedClusterAPIServerAccessProfile_STATUS -func (profile *ManagedClusterAPIServerAccessProfile) Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS(source *ManagedClusterAPIServerAccessProfile_STATUS) error { - - // AuthorizedIPRanges - profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) - - // DisableRunCommand - if source.DisableRunCommand != nil { - disableRunCommand := *source.DisableRunCommand - profile.DisableRunCommand = &disableRunCommand - } else { - profile.DisableRunCommand = nil - } - - // EnablePrivateCluster - if source.EnablePrivateCluster != nil { - enablePrivateCluster := *source.EnablePrivateCluster - profile.EnablePrivateCluster = &enablePrivateCluster - } else { - profile.EnablePrivateCluster = nil - } - - // EnablePrivateClusterPublicFQDN - if source.EnablePrivateClusterPublicFQDN != nil { - enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN - profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN - } else { - profile.EnablePrivateClusterPublicFQDN = nil - } - - // PrivateDNSZone - profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) - - // No error - return nil -} - // Access profile for managed cluster API server. type ManagedClusterAPIServerAccessProfile_STATUS struct { // AuthorizedIPRanges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with @@ -9220,21 +8352,6 @@ func (profile *ManagedClusterAutoUpgradeProfile) AssignProperties_To_ManagedClus return nil } -// Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS populates our ManagedClusterAutoUpgradeProfile from the provided source ManagedClusterAutoUpgradeProfile_STATUS -func (profile *ManagedClusterAutoUpgradeProfile) Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS(source *ManagedClusterAutoUpgradeProfile_STATUS) error { - - // UpgradeChannel - if source.UpgradeChannel != nil { - upgradeChannel := ManagedClusterAutoUpgradeProfile_UpgradeChannel(*source.UpgradeChannel) - profile.UpgradeChannel = &upgradeChannel - } else { - profile.UpgradeChannel = nil - } - - // No error - return nil -} - // Auto upgrade profile for a managed cluster. type ManagedClusterAutoUpgradeProfile_STATUS struct { // UpgradeChannel: For more information see [setting the AKS cluster auto-upgrade @@ -9408,25 +8525,6 @@ func (profile *ManagedClusterAzureMonitorProfile) AssignProperties_To_ManagedClu return nil } -// Initialize_From_ManagedClusterAzureMonitorProfile_STATUS populates our ManagedClusterAzureMonitorProfile from the provided source ManagedClusterAzureMonitorProfile_STATUS -func (profile *ManagedClusterAzureMonitorProfile) Initialize_From_ManagedClusterAzureMonitorProfile_STATUS(source *ManagedClusterAzureMonitorProfile_STATUS) error { - - // Metrics - if source.Metrics != nil { - var metric ManagedClusterAzureMonitorProfileMetrics - err := metric.Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source.Metrics) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") - } - profile.Metrics = &metric - } else { - profile.Metrics = nil - } - - // No error - return nil -} - // Azure Monitor addon profiles for monitoring the managed cluster. type ManagedClusterAzureMonitorProfile_STATUS struct { // Metrics: Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes @@ -9646,25 +8744,6 @@ func (config *ManagedClusterHTTPProxyConfig) AssignProperties_To_ManagedClusterH return nil } -// Initialize_From_ManagedClusterHTTPProxyConfig_STATUS populates our ManagedClusterHTTPProxyConfig from the provided source ManagedClusterHTTPProxyConfig_STATUS -func (config *ManagedClusterHTTPProxyConfig) Initialize_From_ManagedClusterHTTPProxyConfig_STATUS(source *ManagedClusterHTTPProxyConfig_STATUS) error { - - // HttpProxy - config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) - - // HttpsProxy - config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) - - // NoProxy - config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) - - // TrustedCa - config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) - - // No error - return nil -} - // Cluster HTTP proxy configuration. type ManagedClusterHTTPProxyConfig_STATUS struct { // HttpProxy: The HTTP proxy server endpoint to use. @@ -9906,33 +8985,6 @@ func (identity *ManagedClusterIdentity) AssignProperties_To_ManagedClusterIdenti return nil } -// Initialize_From_ManagedClusterIdentity_STATUS populates our ManagedClusterIdentity from the provided source ManagedClusterIdentity_STATUS -func (identity *ManagedClusterIdentity) Initialize_From_ManagedClusterIdentity_STATUS(source *ManagedClusterIdentity_STATUS) error { - - // Type - if source.Type != nil { - typeVar := ManagedClusterIdentity_Type(*source.Type) - identity.Type = &typeVar - } else { - identity.Type = nil - } - - // UserAssignedIdentities - if source.UserAssignedIdentities != nil { - userAssignedIdentityList := make([]UserAssignedIdentityDetails, 0, len(source.UserAssignedIdentities)) - for userAssignedIdentitiesKey := range source.UserAssignedIdentities { - userAssignedIdentitiesRef := genruntime.CreateResourceReferenceFromARMID(userAssignedIdentitiesKey) - userAssignedIdentityList = append(userAssignedIdentityList, UserAssignedIdentityDetails{Reference: userAssignedIdentitiesRef}) - } - identity.UserAssignedIdentities = userAssignedIdentityList - } else { - identity.UserAssignedIdentities = nil - } - - // No error - return nil -} - // Identity for the managed cluster. type ManagedClusterIdentity_STATUS struct { // PrincipalId: The principal id of the system assigned identity which is used by master components. @@ -10170,21 +9222,6 @@ func (profile *ManagedClusterOIDCIssuerProfile) AssignProperties_To_ManagedClust return nil } -// Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS populates our ManagedClusterOIDCIssuerProfile from the provided source ManagedClusterOIDCIssuerProfile_STATUS -func (profile *ManagedClusterOIDCIssuerProfile) Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS(source *ManagedClusterOIDCIssuerProfile_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - profile.Enabled = &enabled - } else { - profile.Enabled = nil - } - - // No error - return nil -} - // The OIDC issuer profile of the Managed Cluster. type ManagedClusterOIDCIssuerProfile_STATUS struct { // Enabled: Whether the OIDC issuer is enabled. @@ -10584,65 +9621,6 @@ func (profile *ManagedClusterPodIdentityProfile) AssignProperties_To_ManagedClus return nil } -// Initialize_From_ManagedClusterPodIdentityProfile_STATUS populates our ManagedClusterPodIdentityProfile from the provided source ManagedClusterPodIdentityProfile_STATUS -func (profile *ManagedClusterPodIdentityProfile) Initialize_From_ManagedClusterPodIdentityProfile_STATUS(source *ManagedClusterPodIdentityProfile_STATUS) error { - - // AllowNetworkPluginKubenet - if source.AllowNetworkPluginKubenet != nil { - allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet - profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet - } else { - profile.AllowNetworkPluginKubenet = nil - } - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - profile.Enabled = &enabled - } else { - profile.Enabled = nil - } - - // UserAssignedIdentities - if source.UserAssignedIdentities != nil { - userAssignedIdentityList := make([]ManagedClusterPodIdentity, len(source.UserAssignedIdentities)) - for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { - // Shadow the loop variable to avoid aliasing - userAssignedIdentityItem := userAssignedIdentityItem - var userAssignedIdentity ManagedClusterPodIdentity - err := userAssignedIdentity.Initialize_From_ManagedClusterPodIdentity_STATUS(&userAssignedIdentityItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") - } - userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity - } - profile.UserAssignedIdentities = userAssignedIdentityList - } else { - profile.UserAssignedIdentities = nil - } - - // UserAssignedIdentityExceptions - if source.UserAssignedIdentityExceptions != nil { - userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException, len(source.UserAssignedIdentityExceptions)) - for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { - // Shadow the loop variable to avoid aliasing - userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem - var userAssignedIdentityException ManagedClusterPodIdentityException - err := userAssignedIdentityException.Initialize_From_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityExceptionItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") - } - userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException - } - profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList - } else { - profile.UserAssignedIdentityExceptions = nil - } - - // No error - return nil -} - // See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod // identity integration. type ManagedClusterPodIdentityProfile_STATUS struct { @@ -11189,143 +10167,80 @@ func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_From // SkipNodesWithLocalStorage profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) - // SkipNodesWithSystemPods - profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) - - // No error - return nil -} - -// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile populates the provided destination ManagedClusterProperties_AutoScalerProfile from our ManagedClusterProperties_AutoScalerProfile -func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(destination *v20230201s.ManagedClusterProperties_AutoScalerProfile) error { - // Create a new property bag - propertyBag := genruntime.NewPropertyBag() - - // BalanceSimilarNodeGroups - destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) - - // Expander - if profile.Expander != nil { - expander := string(*profile.Expander) - destination.Expander = &expander - } else { - destination.Expander = nil - } - - // MaxEmptyBulkDelete - destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) - - // MaxGracefulTerminationSec - destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) - - // MaxNodeProvisionTime - destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) - - // MaxTotalUnreadyPercentage - destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) - - // NewPodScaleUpDelay - destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) - - // OkTotalUnreadyCount - destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) - - // ScaleDownDelayAfterAdd - destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) - - // ScaleDownDelayAfterDelete - destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) - - // ScaleDownDelayAfterFailure - destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) - - // ScaleDownUnneededTime - destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) - - // ScaleDownUnreadyTime - destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) - - // ScaleDownUtilizationThreshold - destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) - - // ScanInterval - destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) - - // SkipNodesWithLocalStorage - destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) - - // SkipNodesWithSystemPods - destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) - - // Update the property bag - if len(propertyBag) > 0 { - destination.PropertyBag = propertyBag - } else { - destination.PropertyBag = nil - } - + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + // No error return nil } -// Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS populates our ManagedClusterProperties_AutoScalerProfile from the provided source ManagedClusterProperties_AutoScalerProfile_STATUS -func (profile *ManagedClusterProperties_AutoScalerProfile) Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source *ManagedClusterProperties_AutoScalerProfile_STATUS) error { +// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile populates the provided destination ManagedClusterProperties_AutoScalerProfile from our ManagedClusterProperties_AutoScalerProfile +func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(destination *v20230201s.ManagedClusterProperties_AutoScalerProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() // BalanceSimilarNodeGroups - profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) // Expander - if source.Expander != nil { - expander := ManagedClusterProperties_AutoScalerProfile_Expander(*source.Expander) - profile.Expander = &expander + if profile.Expander != nil { + expander := string(*profile.Expander) + destination.Expander = &expander } else { - profile.Expander = nil + destination.Expander = nil } // MaxEmptyBulkDelete - profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) // MaxGracefulTerminationSec - profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) // MaxNodeProvisionTime - profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) // MaxTotalUnreadyPercentage - profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) // NewPodScaleUpDelay - profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) // OkTotalUnreadyCount - profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) // ScaleDownDelayAfterAdd - profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) // ScaleDownDelayAfterDelete - profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) // ScaleDownDelayAfterFailure - profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) // ScaleDownUnneededTime - profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) // ScaleDownUnreadyTime - profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) // ScaleDownUtilizationThreshold - profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) // ScanInterval - profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) // SkipNodesWithLocalStorage - profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) // SkipNodesWithSystemPods - profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } // No error return nil @@ -11911,61 +10826,6 @@ func (profile *ManagedClusterSecurityProfile) AssignProperties_To_ManagedCluster return nil } -// Initialize_From_ManagedClusterSecurityProfile_STATUS populates our ManagedClusterSecurityProfile from the provided source ManagedClusterSecurityProfile_STATUS -func (profile *ManagedClusterSecurityProfile) Initialize_From_ManagedClusterSecurityProfile_STATUS(source *ManagedClusterSecurityProfile_STATUS) error { - - // AzureKeyVaultKms - if source.AzureKeyVaultKms != nil { - var azureKeyVaultKm AzureKeyVaultKms - err := azureKeyVaultKm.Initialize_From_AzureKeyVaultKms_STATUS(source.AzureKeyVaultKms) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") - } - profile.AzureKeyVaultKms = &azureKeyVaultKm - } else { - profile.AzureKeyVaultKms = nil - } - - // Defender - if source.Defender != nil { - var defender ManagedClusterSecurityProfileDefender - err := defender.Initialize_From_ManagedClusterSecurityProfileDefender_STATUS(source.Defender) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") - } - profile.Defender = &defender - } else { - profile.Defender = nil - } - - // ImageCleaner - if source.ImageCleaner != nil { - var imageCleaner ManagedClusterSecurityProfileImageCleaner - err := imageCleaner.Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source.ImageCleaner) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") - } - profile.ImageCleaner = &imageCleaner - } else { - profile.ImageCleaner = nil - } - - // WorkloadIdentity - if source.WorkloadIdentity != nil { - var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity - err := workloadIdentity.Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source.WorkloadIdentity) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") - } - profile.WorkloadIdentity = &workloadIdentity - } else { - profile.WorkloadIdentity = nil - } - - // No error - return nil -} - // Security profile for the container service cluster. type ManagedClusterSecurityProfile_STATUS struct { // AzureKeyVaultKms: Azure Key Vault [key management @@ -12270,16 +11130,6 @@ func (profile *ManagedClusterServicePrincipalProfile) AssignProperties_To_Manage return nil } -// Initialize_From_ManagedClusterServicePrincipalProfile_STATUS populates our ManagedClusterServicePrincipalProfile from the provided source ManagedClusterServicePrincipalProfile_STATUS -func (profile *ManagedClusterServicePrincipalProfile) Initialize_From_ManagedClusterServicePrincipalProfile_STATUS(source *ManagedClusterServicePrincipalProfile_STATUS) error { - - // ClientId - profile.ClientId = genruntime.ClonePointerToString(source.ClientId) - - // No error - return nil -} - // Information about a service principal identity for the cluster to use for manipulating Azure APIs. type ManagedClusterServicePrincipalProfile_STATUS struct { // ClientId: The ID for the service principal. @@ -12455,29 +11305,6 @@ func (clusterSKU *ManagedClusterSKU) AssignProperties_To_ManagedClusterSKU(desti return nil } -// Initialize_From_ManagedClusterSKU_STATUS populates our ManagedClusterSKU from the provided source ManagedClusterSKU_STATUS -func (clusterSKU *ManagedClusterSKU) Initialize_From_ManagedClusterSKU_STATUS(source *ManagedClusterSKU_STATUS) error { - - // Name - if source.Name != nil { - name := ManagedClusterSKU_Name(*source.Name) - clusterSKU.Name = &name - } else { - clusterSKU.Name = nil - } - - // Tier - if source.Tier != nil { - tier := ManagedClusterSKU_Tier(*source.Tier) - clusterSKU.Tier = &tier - } else { - clusterSKU.Tier = nil - } - - // No error - return nil -} - // The SKU of a Managed Cluster. type ManagedClusterSKU_STATUS struct { // Name: The name of a managed cluster SKU. @@ -12818,61 +11645,6 @@ func (profile *ManagedClusterStorageProfile) AssignProperties_To_ManagedClusterS return nil } -// Initialize_From_ManagedClusterStorageProfile_STATUS populates our ManagedClusterStorageProfile from the provided source ManagedClusterStorageProfile_STATUS -func (profile *ManagedClusterStorageProfile) Initialize_From_ManagedClusterStorageProfile_STATUS(source *ManagedClusterStorageProfile_STATUS) error { - - // BlobCSIDriver - if source.BlobCSIDriver != nil { - var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver - err := blobCSIDriver.Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source.BlobCSIDriver) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") - } - profile.BlobCSIDriver = &blobCSIDriver - } else { - profile.BlobCSIDriver = nil - } - - // DiskCSIDriver - if source.DiskCSIDriver != nil { - var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver - err := diskCSIDriver.Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source.DiskCSIDriver) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") - } - profile.DiskCSIDriver = &diskCSIDriver - } else { - profile.DiskCSIDriver = nil - } - - // FileCSIDriver - if source.FileCSIDriver != nil { - var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver - err := fileCSIDriver.Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source.FileCSIDriver) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") - } - profile.FileCSIDriver = &fileCSIDriver - } else { - profile.FileCSIDriver = nil - } - - // SnapshotController - if source.SnapshotController != nil { - var snapshotController ManagedClusterStorageProfileSnapshotController - err := snapshotController.Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS(source.SnapshotController) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") - } - profile.SnapshotController = &snapshotController - } else { - profile.SnapshotController = nil - } - - // No error - return nil -} - // Storage profile for the container service cluster. type ManagedClusterStorageProfile_STATUS struct { // BlobCSIDriver: AzureBlob CSI Driver settings for the storage profile. @@ -13292,47 +12064,6 @@ func (profile *ManagedClusterWindowsProfile) AssignProperties_To_ManagedClusterW return nil } -// Initialize_From_ManagedClusterWindowsProfile_STATUS populates our ManagedClusterWindowsProfile from the provided source ManagedClusterWindowsProfile_STATUS -func (profile *ManagedClusterWindowsProfile) Initialize_From_ManagedClusterWindowsProfile_STATUS(source *ManagedClusterWindowsProfile_STATUS) error { - - // AdminPassword - profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) - - // AdminUsername - profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) - - // EnableCSIProxy - if source.EnableCSIProxy != nil { - enableCSIProxy := *source.EnableCSIProxy - profile.EnableCSIProxy = &enableCSIProxy - } else { - profile.EnableCSIProxy = nil - } - - // GmsaProfile - if source.GmsaProfile != nil { - var gmsaProfile WindowsGmsaProfile - err := gmsaProfile.Initialize_From_WindowsGmsaProfile_STATUS(source.GmsaProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") - } - profile.GmsaProfile = &gmsaProfile - } else { - profile.GmsaProfile = nil - } - - // LicenseType - if source.LicenseType != nil { - licenseType := ManagedClusterWindowsProfile_LicenseType(*source.LicenseType) - profile.LicenseType = &licenseType - } else { - profile.LicenseType = nil - } - - // No error - return nil -} - // Profile for Windows VMs in the managed cluster. type ManagedClusterWindowsProfile_STATUS struct { // AdminPassword: Specifies the password of the administrator account. @@ -13613,25 +12344,6 @@ func (profile *ManagedClusterWorkloadAutoScalerProfile) AssignProperties_To_Mana return nil } -// Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS populates our ManagedClusterWorkloadAutoScalerProfile from the provided source ManagedClusterWorkloadAutoScalerProfile_STATUS -func (profile *ManagedClusterWorkloadAutoScalerProfile) Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source *ManagedClusterWorkloadAutoScalerProfile_STATUS) error { - - // Keda - if source.Keda != nil { - var kedum ManagedClusterWorkloadAutoScalerProfileKeda - err := kedum.Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source.Keda) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") - } - profile.Keda = &kedum - } else { - profile.Keda = nil - } - - // No error - return nil -} - // Workload Auto-scaler profile for the managed cluster. type ManagedClusterWorkloadAutoScalerProfile_STATUS struct { // Keda: KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. @@ -13933,44 +12645,17 @@ func (resource *PrivateLinkResource) AssignProperties_To_PrivateLinkResource(des } // RequiredMembers - destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) - - // Type - destination.Type = genruntime.ClonePointerToString(resource.Type) - - // Update the property bag - if len(propertyBag) > 0 { - destination.PropertyBag = propertyBag - } else { - destination.PropertyBag = nil - } - - // No error - return nil -} - -// Initialize_From_PrivateLinkResource_STATUS populates our PrivateLinkResource from the provided source PrivateLinkResource_STATUS -func (resource *PrivateLinkResource) Initialize_From_PrivateLinkResource_STATUS(source *PrivateLinkResource_STATUS) error { - - // GroupId - resource.GroupId = genruntime.ClonePointerToString(source.GroupId) - - // Name - resource.Name = genruntime.ClonePointerToString(source.Name) - - // Reference - if source.Id != nil { - reference := genruntime.CreateResourceReferenceFromARMID(*source.Id) - resource.Reference = &reference - } else { - resource.Reference = nil - } - - // RequiredMembers - resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) // Type - resource.Type = genruntime.ClonePointerToString(source.Type) + destination.Type = genruntime.ClonePointerToString(resource.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } // No error return nil @@ -14389,27 +13074,6 @@ func (identity *UserAssignedIdentity) AssignProperties_To_UserAssignedIdentity(d return nil } -// Initialize_From_UserAssignedIdentity_STATUS populates our UserAssignedIdentity from the provided source UserAssignedIdentity_STATUS -func (identity *UserAssignedIdentity) Initialize_From_UserAssignedIdentity_STATUS(source *UserAssignedIdentity_STATUS) error { - - // ClientId - identity.ClientId = genruntime.ClonePointerToString(source.ClientId) - - // ObjectId - identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) - - // ResourceReference - if source.ResourceId != nil { - resourceReference := genruntime.CreateResourceReferenceFromARMID(*source.ResourceId) - identity.ResourceReference = &resourceReference - } else { - identity.ResourceReference = nil - } - - // No error - return nil -} - // Details about a user assigned identity. type UserAssignedIdentity_STATUS struct { // ClientId: The client ID of the user assigned identity. @@ -14672,40 +13336,6 @@ func (vaultKms *AzureKeyVaultKms) AssignProperties_To_AzureKeyVaultKms(destinati return nil } -// Initialize_From_AzureKeyVaultKms_STATUS populates our AzureKeyVaultKms from the provided source AzureKeyVaultKms_STATUS -func (vaultKms *AzureKeyVaultKms) Initialize_From_AzureKeyVaultKms_STATUS(source *AzureKeyVaultKms_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - vaultKms.Enabled = &enabled - } else { - vaultKms.Enabled = nil - } - - // KeyId - vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) - - // KeyVaultNetworkAccess - if source.KeyVaultNetworkAccess != nil { - keyVaultNetworkAccess := AzureKeyVaultKms_KeyVaultNetworkAccess(*source.KeyVaultNetworkAccess) - vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess - } else { - vaultKms.KeyVaultNetworkAccess = nil - } - - // KeyVaultResourceReference - if source.KeyVaultResourceId != nil { - keyVaultResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.KeyVaultResourceId) - vaultKms.KeyVaultResourceReference = &keyVaultResourceReference - } else { - vaultKms.KeyVaultResourceReference = nil - } - - // No error - return nil -} - // Azure Key Vault key management service settings for the security profile. type AzureKeyVaultKms_STATUS struct { // Enabled: Whether to enable Azure Key Vault key management service. The default is false. @@ -15070,31 +13700,6 @@ func (configuration *ContainerServiceSshConfiguration) AssignProperties_To_Conta return nil } -// Initialize_From_ContainerServiceSshConfiguration_STATUS populates our ContainerServiceSshConfiguration from the provided source ContainerServiceSshConfiguration_STATUS -func (configuration *ContainerServiceSshConfiguration) Initialize_From_ContainerServiceSshConfiguration_STATUS(source *ContainerServiceSshConfiguration_STATUS) error { - - // PublicKeys - if source.PublicKeys != nil { - publicKeyList := make([]ContainerServiceSshPublicKey, len(source.PublicKeys)) - for publicKeyIndex, publicKeyItem := range source.PublicKeys { - // Shadow the loop variable to avoid aliasing - publicKeyItem := publicKeyItem - var publicKey ContainerServiceSshPublicKey - err := publicKey.Initialize_From_ContainerServiceSshPublicKey_STATUS(&publicKeyItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") - } - publicKeyList[publicKeyIndex] = publicKey - } - configuration.PublicKeys = publicKeyList - } else { - configuration.PublicKeys = nil - } - - // No error - return nil -} - // SSH configuration for Linux-based VMs running on Azure. type ContainerServiceSshConfiguration_STATUS struct { // PublicKeys: The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified. @@ -15347,33 +13952,6 @@ func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_To_Man return nil } -// Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics_STATUS -func (metrics *ManagedClusterAzureMonitorProfileMetrics) Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source *ManagedClusterAzureMonitorProfileMetrics_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - metrics.Enabled = &enabled - } else { - metrics.Enabled = nil - } - - // KubeStateMetrics - if source.KubeStateMetrics != nil { - var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics - err := kubeStateMetric.Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source.KubeStateMetrics) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") - } - metrics.KubeStateMetrics = &kubeStateMetric - } else { - metrics.KubeStateMetrics = nil - } - - // No error - return nil -} - // Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes // infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See // aka.ms/AzureManagedPrometheus for an overview. @@ -15913,91 +14491,6 @@ func (profile *ManagedClusterLoadBalancerProfile) AssignProperties_To_ManagedClu return nil } -// Initialize_From_ManagedClusterLoadBalancerProfile_STATUS populates our ManagedClusterLoadBalancerProfile from the provided source ManagedClusterLoadBalancerProfile_STATUS -func (profile *ManagedClusterLoadBalancerProfile) Initialize_From_ManagedClusterLoadBalancerProfile_STATUS(source *ManagedClusterLoadBalancerProfile_STATUS) error { - - // AllocatedOutboundPorts - if source.AllocatedOutboundPorts != nil { - allocatedOutboundPort := *source.AllocatedOutboundPorts - profile.AllocatedOutboundPorts = &allocatedOutboundPort - } else { - profile.AllocatedOutboundPorts = nil - } - - // EffectiveOutboundIPs - if source.EffectiveOutboundIPs != nil { - effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) - for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { - // Shadow the loop variable to avoid aliasing - effectiveOutboundIPItem := effectiveOutboundIPItem - var effectiveOutboundIP ResourceReference - err := effectiveOutboundIP.Initialize_From_ResourceReference_STATUS(&effectiveOutboundIPItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") - } - effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP - } - profile.EffectiveOutboundIPs = effectiveOutboundIPList - } else { - profile.EffectiveOutboundIPs = nil - } - - // EnableMultipleStandardLoadBalancers - if source.EnableMultipleStandardLoadBalancers != nil { - enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers - profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer - } else { - profile.EnableMultipleStandardLoadBalancers = nil - } - - // IdleTimeoutInMinutes - if source.IdleTimeoutInMinutes != nil { - idleTimeoutInMinute := *source.IdleTimeoutInMinutes - profile.IdleTimeoutInMinutes = &idleTimeoutInMinute - } else { - profile.IdleTimeoutInMinutes = nil - } - - // ManagedOutboundIPs - if source.ManagedOutboundIPs != nil { - var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs - err := managedOutboundIP.Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source.ManagedOutboundIPs) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") - } - profile.ManagedOutboundIPs = &managedOutboundIP - } else { - profile.ManagedOutboundIPs = nil - } - - // OutboundIPPrefixes - if source.OutboundIPPrefixes != nil { - var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes - err := outboundIPPrefix.Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source.OutboundIPPrefixes) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") - } - profile.OutboundIPPrefixes = &outboundIPPrefix - } else { - profile.OutboundIPPrefixes = nil - } - - // OutboundIPs - if source.OutboundIPs != nil { - var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs - err := outboundIP.Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source.OutboundIPs) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") - } - profile.OutboundIPs = &outboundIP - } else { - profile.OutboundIPs = nil - } - - // No error - return nil -} - // Profile of the managed cluster load balancer. type ManagedClusterLoadBalancerProfile_STATUS struct { // AllocatedOutboundPorts: The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 @@ -16455,51 +14948,6 @@ func (profile *ManagedClusterNATGatewayProfile) AssignProperties_To_ManagedClust return nil } -// Initialize_From_ManagedClusterNATGatewayProfile_STATUS populates our ManagedClusterNATGatewayProfile from the provided source ManagedClusterNATGatewayProfile_STATUS -func (profile *ManagedClusterNATGatewayProfile) Initialize_From_ManagedClusterNATGatewayProfile_STATUS(source *ManagedClusterNATGatewayProfile_STATUS) error { - - // EffectiveOutboundIPs - if source.EffectiveOutboundIPs != nil { - effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) - for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { - // Shadow the loop variable to avoid aliasing - effectiveOutboundIPItem := effectiveOutboundIPItem - var effectiveOutboundIP ResourceReference - err := effectiveOutboundIP.Initialize_From_ResourceReference_STATUS(&effectiveOutboundIPItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") - } - effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP - } - profile.EffectiveOutboundIPs = effectiveOutboundIPList - } else { - profile.EffectiveOutboundIPs = nil - } - - // IdleTimeoutInMinutes - if source.IdleTimeoutInMinutes != nil { - idleTimeoutInMinute := *source.IdleTimeoutInMinutes - profile.IdleTimeoutInMinutes = &idleTimeoutInMinute - } else { - profile.IdleTimeoutInMinutes = nil - } - - // ManagedOutboundIPProfile - if source.ManagedOutboundIPProfile != nil { - var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile - err := managedOutboundIPProfile.Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS(source.ManagedOutboundIPProfile) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") - } - profile.ManagedOutboundIPProfile = &managedOutboundIPProfile - } else { - profile.ManagedOutboundIPProfile = nil - } - - // No error - return nil -} - // Profile of the managed cluster NAT gateway. type ManagedClusterNATGatewayProfile_STATUS struct { // EffectiveOutboundIPs: The effective outbound IP resources of the cluster NAT gateway. @@ -16924,34 +15372,6 @@ func (identity *ManagedClusterPodIdentity) AssignProperties_To_ManagedClusterPod return nil } -// Initialize_From_ManagedClusterPodIdentity_STATUS populates our ManagedClusterPodIdentity from the provided source ManagedClusterPodIdentity_STATUS -func (identity *ManagedClusterPodIdentity) Initialize_From_ManagedClusterPodIdentity_STATUS(source *ManagedClusterPodIdentity_STATUS) error { - - // BindingSelector - identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) - - // Identity - if source.Identity != nil { - var identityLocal UserAssignedIdentity - err := identityLocal.Initialize_From_UserAssignedIdentity_STATUS(source.Identity) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_UserAssignedIdentity_STATUS() to populate field Identity") - } - identity.Identity = &identityLocal - } else { - identity.Identity = nil - } - - // Name - identity.Name = genruntime.ClonePointerToString(source.Name) - - // Namespace - identity.Namespace = genruntime.ClonePointerToString(source.Namespace) - - // No error - return nil -} - // Details about the pod identity assigned to the Managed Cluster. type ManagedClusterPodIdentity_STATUS struct { // BindingSelector: The binding selector to use for the AzureIdentityBinding resource. @@ -17256,25 +15676,9 @@ func (exception *ManagedClusterPodIdentityException) AssignProperties_To_Managed // Update the property bag if len(propertyBag) > 0 { destination.PropertyBag = propertyBag - } else { - destination.PropertyBag = nil - } - - // No error - return nil -} - -// Initialize_From_ManagedClusterPodIdentityException_STATUS populates our ManagedClusterPodIdentityException from the provided source ManagedClusterPodIdentityException_STATUS -func (exception *ManagedClusterPodIdentityException) Initialize_From_ManagedClusterPodIdentityException_STATUS(source *ManagedClusterPodIdentityException_STATUS) error { - - // Name - exception.Name = genruntime.ClonePointerToString(source.Name) - - // Namespace - exception.Namespace = genruntime.ClonePointerToString(source.Namespace) - - // PodLabels - exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + } else { + destination.PropertyBag = nil + } // No error return nil @@ -17525,33 +15929,6 @@ func (defender *ManagedClusterSecurityProfileDefender) AssignProperties_To_Manag return nil } -// Initialize_From_ManagedClusterSecurityProfileDefender_STATUS populates our ManagedClusterSecurityProfileDefender from the provided source ManagedClusterSecurityProfileDefender_STATUS -func (defender *ManagedClusterSecurityProfileDefender) Initialize_From_ManagedClusterSecurityProfileDefender_STATUS(source *ManagedClusterSecurityProfileDefender_STATUS) error { - - // LogAnalyticsWorkspaceResourceReference - if source.LogAnalyticsWorkspaceResourceId != nil { - logAnalyticsWorkspaceResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.LogAnalyticsWorkspaceResourceId) - defender.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference - } else { - defender.LogAnalyticsWorkspaceResourceReference = nil - } - - // SecurityMonitoring - if source.SecurityMonitoring != nil { - var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring - err := securityMonitoring.Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source.SecurityMonitoring) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") - } - defender.SecurityMonitoring = &securityMonitoring - } else { - defender.SecurityMonitoring = nil - } - - // No error - return nil -} - // Microsoft Defender settings for the security profile. type ManagedClusterSecurityProfileDefender_STATUS struct { // LogAnalyticsWorkspaceResourceId: Resource ID of the Log Analytics workspace to be associated with Microsoft Defender. @@ -17757,24 +16134,6 @@ func (cleaner *ManagedClusterSecurityProfileImageCleaner) AssignProperties_To_Ma return nil } -// Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS populates our ManagedClusterSecurityProfileImageCleaner from the provided source ManagedClusterSecurityProfileImageCleaner_STATUS -func (cleaner *ManagedClusterSecurityProfileImageCleaner) Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source *ManagedClusterSecurityProfileImageCleaner_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - cleaner.Enabled = &enabled - } else { - cleaner.Enabled = nil - } - - // IntervalHours - cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) - - // No error - return nil -} - // Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here // are settings for the security profile. type ManagedClusterSecurityProfileImageCleaner_STATUS struct { @@ -17944,21 +16303,6 @@ func (identity *ManagedClusterSecurityProfileWorkloadIdentity) AssignProperties_ return nil } -// Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates our ManagedClusterSecurityProfileWorkloadIdentity from the provided source ManagedClusterSecurityProfileWorkloadIdentity_STATUS -func (identity *ManagedClusterSecurityProfileWorkloadIdentity) Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - identity.Enabled = &enabled - } else { - identity.Enabled = nil - } - - // No error - return nil -} - // Workload identity settings for the security profile. type ManagedClusterSecurityProfileWorkloadIdentity_STATUS struct { // Enabled: Whether to enable workload identity. @@ -18112,21 +16456,6 @@ func (driver *ManagedClusterStorageProfileBlobCSIDriver) AssignProperties_To_Man return nil } -// Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates our ManagedClusterStorageProfileBlobCSIDriver from the provided source ManagedClusterStorageProfileBlobCSIDriver_STATUS -func (driver *ManagedClusterStorageProfileBlobCSIDriver) Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source *ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - driver.Enabled = &enabled - } else { - driver.Enabled = nil - } - - // No error - return nil -} - // AzureBlob CSI Driver settings for the storage profile. type ManagedClusterStorageProfileBlobCSIDriver_STATUS struct { // Enabled: Whether to enable AzureBlob CSI Driver. The default value is false. @@ -18280,21 +16609,6 @@ func (driver *ManagedClusterStorageProfileDiskCSIDriver) AssignProperties_To_Man return nil } -// Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates our ManagedClusterStorageProfileDiskCSIDriver from the provided source ManagedClusterStorageProfileDiskCSIDriver_STATUS -func (driver *ManagedClusterStorageProfileDiskCSIDriver) Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source *ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - driver.Enabled = &enabled - } else { - driver.Enabled = nil - } - - // No error - return nil -} - // AzureDisk CSI Driver settings for the storage profile. type ManagedClusterStorageProfileDiskCSIDriver_STATUS struct { // Enabled: Whether to enable AzureDisk CSI Driver. The default value is true. @@ -18448,21 +16762,6 @@ func (driver *ManagedClusterStorageProfileFileCSIDriver) AssignProperties_To_Man return nil } -// Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS populates our ManagedClusterStorageProfileFileCSIDriver from the provided source ManagedClusterStorageProfileFileCSIDriver_STATUS -func (driver *ManagedClusterStorageProfileFileCSIDriver) Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source *ManagedClusterStorageProfileFileCSIDriver_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - driver.Enabled = &enabled - } else { - driver.Enabled = nil - } - - // No error - return nil -} - // AzureFile CSI Driver settings for the storage profile. type ManagedClusterStorageProfileFileCSIDriver_STATUS struct { // Enabled: Whether to enable AzureFile CSI Driver. The default value is true. @@ -18616,21 +16915,6 @@ func (controller *ManagedClusterStorageProfileSnapshotController) AssignProperti return nil } -// Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS populates our ManagedClusterStorageProfileSnapshotController from the provided source ManagedClusterStorageProfileSnapshotController_STATUS -func (controller *ManagedClusterStorageProfileSnapshotController) Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS(source *ManagedClusterStorageProfileSnapshotController_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - controller.Enabled = &enabled - } else { - controller.Enabled = nil - } - - // No error - return nil -} - // Snapshot Controller settings for the storage profile. type ManagedClusterStorageProfileSnapshotController_STATUS struct { // Enabled: Whether to enable Snapshot Controller. The default value is true. @@ -18800,21 +17084,6 @@ func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) AssignProperties_To_Man return nil } -// Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates our ManagedClusterWorkloadAutoScalerProfileKeda from the provided source ManagedClusterWorkloadAutoScalerProfileKeda_STATUS -func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - keda.Enabled = &enabled - } else { - keda.Enabled = nil - } - - // No error - return nil -} - // KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS struct { // Enabled: Whether to enable KEDA. @@ -19053,27 +17322,6 @@ func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destin return nil } -// Initialize_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile_STATUS -func (profile *WindowsGmsaProfile) Initialize_From_WindowsGmsaProfile_STATUS(source *WindowsGmsaProfile_STATUS) error { - - // DnsServer - profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - profile.Enabled = &enabled - } else { - profile.Enabled = nil - } - - // RootDomainName - profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) - - // No error - return nil -} - // Windows gMSA Profile in the managed cluster. type WindowsGmsaProfile_STATUS struct { // DnsServer: Specifies the DNS server for Windows gMSA. @@ -19266,16 +17514,6 @@ func (publicKey *ContainerServiceSshPublicKey) AssignProperties_To_ContainerServ return nil } -// Initialize_From_ContainerServiceSshPublicKey_STATUS populates our ContainerServiceSshPublicKey from the provided source ContainerServiceSshPublicKey_STATUS -func (publicKey *ContainerServiceSshPublicKey) Initialize_From_ContainerServiceSshPublicKey_STATUS(source *ContainerServiceSshPublicKey_STATUS) error { - - // KeyData - publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) - - // No error - return nil -} - // Contains information about SSH certificate public key data. type ContainerServiceSshPublicKey_STATUS struct { // KeyData: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or @@ -19437,19 +17675,6 @@ func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) AssignProperti return nil } -// Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates our ManagedClusterAzureMonitorProfileKubeStateMetrics from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS -func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { - - // MetricAnnotationsAllowList - metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) - - // MetricLabelsAllowlist - metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) - - // No error - return nil -} - // Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for // details. @@ -19650,29 +17875,6 @@ func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) AssignPropertie return nil } -// Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS -func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { - - // Count - if source.Count != nil { - count := *source.Count - iPs.Count = &count - } else { - iPs.Count = nil - } - - // CountIPv6 - if source.CountIPv6 != nil { - countIPv6 := *source.CountIPv6 - iPs.CountIPv6 = &countIPv6 - } else { - iPs.CountIPv6 = nil - } - - // No error - return nil -} - type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS struct { // Count: The desired number of IPv4 outbound IPs created/managed by Azure for the cluster load balancer. Allowed values // must be in the range of 1 to 100 (inclusive). The default value is 1. @@ -19858,31 +18060,6 @@ func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) AssignProp return nil } -// Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS -func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { - - // PublicIPPrefixes - if source.PublicIPPrefixes != nil { - publicIPPrefixList := make([]ResourceReference, len(source.PublicIPPrefixes)) - for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { - // Shadow the loop variable to avoid aliasing - publicIPPrefixItem := publicIPPrefixItem - var publicIPPrefix ResourceReference - err := publicIPPrefix.Initialize_From_ResourceReference_STATUS(&publicIPPrefixItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field PublicIPPrefixes") - } - publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix - } - prefixes.PublicIPPrefixes = publicIPPrefixList - } else { - prefixes.PublicIPPrefixes = nil - } - - // No error - return nil -} - type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS struct { // PublicIPPrefixes: A list of public IP prefix resources. PublicIPPrefixes []ResourceReference_STATUS `json:"publicIPPrefixes,omitempty"` @@ -20085,31 +18262,6 @@ func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) AssignProperties_To_Ma return nil } -// Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPs from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS -func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { - - // PublicIPs - if source.PublicIPs != nil { - publicIPList := make([]ResourceReference, len(source.PublicIPs)) - for publicIPIndex, publicIPItem := range source.PublicIPs { - // Shadow the loop variable to avoid aliasing - publicIPItem := publicIPItem - var publicIP ResourceReference - err := publicIP.Initialize_From_ResourceReference_STATUS(&publicIPItem) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field PublicIPs") - } - publicIPList[publicIPIndex] = publicIP - } - iPs.PublicIPs = publicIPList - } else { - iPs.PublicIPs = nil - } - - // No error - return nil -} - type ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS struct { // PublicIPs: A list of public IP resources. PublicIPs []ResourceReference_STATUS `json:"publicIPs,omitempty"` @@ -20289,21 +18441,6 @@ func (profile *ManagedClusterManagedOutboundIPProfile) AssignProperties_To_Manag return nil } -// Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS populates our ManagedClusterManagedOutboundIPProfile from the provided source ManagedClusterManagedOutboundIPProfile_STATUS -func (profile *ManagedClusterManagedOutboundIPProfile) Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS(source *ManagedClusterManagedOutboundIPProfile_STATUS) error { - - // Count - if source.Count != nil { - count := *source.Count - profile.Count = &count - } else { - profile.Count = nil - } - - // No error - return nil -} - // Profile of the managed outbound IP resources of the managed cluster. type ManagedClusterManagedOutboundIPProfile_STATUS struct { // Count: The desired number of outbound IPs created/managed by Azure. Allowed values must be in the range of 1 to 16 @@ -20540,21 +18677,6 @@ func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) Assig return nil } -// Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS -func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - monitoring.Enabled = &enabled - } else { - monitoring.Enabled = nil - } - - // No error - return nil -} - // Microsoft Defender settings for the security profile threat detection. type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS struct { // Enabled: Whether to enable Defender threat detection @@ -20708,21 +18830,6 @@ func (reference *ResourceReference) AssignProperties_To_ResourceReference(destin return nil } -// Initialize_From_ResourceReference_STATUS populates our ResourceReference from the provided source ResourceReference_STATUS -func (reference *ResourceReference) Initialize_From_ResourceReference_STATUS(source *ResourceReference_STATUS) error { - - // Reference - if source.Id != nil { - referenceTemp := genruntime.CreateResourceReferenceFromARMID(*source.Id) - reference.Reference = &referenceTemp - } else { - reference.Reference = nil - } - - // No error - return nil -} - // A reference to an Azure resource. type ResourceReference_STATUS struct { // Id: The fully qualified Azure resource id. diff --git a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go index f05643d5dfe..ae6987ea59c 100644 --- a/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20230201/managed_cluster_types_gen_test.go @@ -6,6 +6,7 @@ package v1api20230201 import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +37,7 @@ func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedCluster + var hub v20231001s.ManagedCluster err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen.go index 41b98cdc229..2eed653576f 100644 --- a/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen.go +++ b/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen.go @@ -49,22 +49,36 @@ var _ conversion.Convertible = &ManagedClustersAgentPool{} // ConvertFrom populates our ManagedClustersAgentPool from the provided hub ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedClustersAgentPool + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = pool.AssignProperties_From_ManagedClustersAgentPool(&source) + if err != nil { + return errors.Wrap(err, "converting from source to pool") } - return pool.AssignProperties_From_ManagedClustersAgentPool(source) + return nil } // ConvertTo populates the provided hub ManagedClustersAgentPool from our ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedClustersAgentPool + err := pool.AssignProperties_To_ManagedClustersAgentPool(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from pool") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return pool.AssignProperties_To_ManagedClustersAgentPool(destination) + return nil } // +kubebuilder:webhook:path=/mutate-containerservice-azure-com-v1api20230201-managedclustersagentpool,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclustersagentpools,verbs=create;update,versions=v1api20230201,name=default.v1api20230201.managedclustersagentpools.containerservice.azure.com,admissionReviewVersions=v1 @@ -90,17 +104,6 @@ func (pool *ManagedClustersAgentPool) defaultAzureName() { // defaultImpl applies the code generated defaults to the ManagedClustersAgentPool resource func (pool *ManagedClustersAgentPool) defaultImpl() { pool.defaultAzureName() } -var _ genruntime.ImportableResource = &ManagedClustersAgentPool{} - -// InitializeSpec initializes the spec for this resource from the given status -func (pool *ManagedClustersAgentPool) InitializeSpec(status genruntime.ConvertibleStatus) error { - if s, ok := status.(*ManagedClusters_AgentPool_STATUS); ok { - return pool.Spec.Initialize_From_ManagedClusters_AgentPool_STATUS(s) - } - - return fmt.Errorf("expected Status of type ManagedClusters_AgentPool_STATUS but received %T instead", status) -} - var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} // AzureName returns the Azure name of the resource @@ -1749,247 +1752,6 @@ func (pool *ManagedClusters_AgentPool_Spec) AssignProperties_To_ManagedClusters_ return nil } -// Initialize_From_ManagedClusters_AgentPool_STATUS populates our ManagedClusters_AgentPool_Spec from the provided source ManagedClusters_AgentPool_STATUS -func (pool *ManagedClusters_AgentPool_Spec) Initialize_From_ManagedClusters_AgentPool_STATUS(source *ManagedClusters_AgentPool_STATUS) error { - - // AvailabilityZones - pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) - - // Count - pool.Count = genruntime.ClonePointerToInt(source.Count) - - // CreationData - if source.CreationData != nil { - var creationDatum CreationData - err := creationDatum.Initialize_From_CreationData_STATUS(source.CreationData) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_CreationData_STATUS() to populate field CreationData") - } - pool.CreationData = &creationDatum - } else { - pool.CreationData = nil - } - - // EnableAutoScaling - if source.EnableAutoScaling != nil { - enableAutoScaling := *source.EnableAutoScaling - pool.EnableAutoScaling = &enableAutoScaling - } else { - pool.EnableAutoScaling = nil - } - - // EnableEncryptionAtHost - if source.EnableEncryptionAtHost != nil { - enableEncryptionAtHost := *source.EnableEncryptionAtHost - pool.EnableEncryptionAtHost = &enableEncryptionAtHost - } else { - pool.EnableEncryptionAtHost = nil - } - - // EnableFIPS - if source.EnableFIPS != nil { - enableFIPS := *source.EnableFIPS - pool.EnableFIPS = &enableFIPS - } else { - pool.EnableFIPS = nil - } - - // EnableNodePublicIP - if source.EnableNodePublicIP != nil { - enableNodePublicIP := *source.EnableNodePublicIP - pool.EnableNodePublicIP = &enableNodePublicIP - } else { - pool.EnableNodePublicIP = nil - } - - // EnableUltraSSD - if source.EnableUltraSSD != nil { - enableUltraSSD := *source.EnableUltraSSD - pool.EnableUltraSSD = &enableUltraSSD - } else { - pool.EnableUltraSSD = nil - } - - // GpuInstanceProfile - if source.GpuInstanceProfile != nil { - gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) - pool.GpuInstanceProfile = &gpuInstanceProfile - } else { - pool.GpuInstanceProfile = nil - } - - // KubeletConfig - if source.KubeletConfig != nil { - var kubeletConfig KubeletConfig - err := kubeletConfig.Initialize_From_KubeletConfig_STATUS(source.KubeletConfig) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_KubeletConfig_STATUS() to populate field KubeletConfig") - } - pool.KubeletConfig = &kubeletConfig - } else { - pool.KubeletConfig = nil - } - - // KubeletDiskType - if source.KubeletDiskType != nil { - kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) - pool.KubeletDiskType = &kubeletDiskType - } else { - pool.KubeletDiskType = nil - } - - // LinuxOSConfig - if source.LinuxOSConfig != nil { - var linuxOSConfig LinuxOSConfig - err := linuxOSConfig.Initialize_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") - } - pool.LinuxOSConfig = &linuxOSConfig - } else { - pool.LinuxOSConfig = nil - } - - // MaxCount - pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) - - // MaxPods - pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) - - // MinCount - pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) - - // Mode - if source.Mode != nil { - mode := AgentPoolMode(*source.Mode) - pool.Mode = &mode - } else { - pool.Mode = nil - } - - // NodeLabels - pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) - - // NodeTaints - pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) - - // OrchestratorVersion - pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) - - // OsDiskSizeGB - if source.OsDiskSizeGB != nil { - osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) - pool.OsDiskSizeGB = &osDiskSizeGB - } else { - pool.OsDiskSizeGB = nil - } - - // OsDiskType - if source.OsDiskType != nil { - osDiskType := OSDiskType(*source.OsDiskType) - pool.OsDiskType = &osDiskType - } else { - pool.OsDiskType = nil - } - - // OsSKU - if source.OsSKU != nil { - osSKU := OSSKU(*source.OsSKU) - pool.OsSKU = &osSKU - } else { - pool.OsSKU = nil - } - - // OsType - if source.OsType != nil { - osType := OSType(*source.OsType) - pool.OsType = &osType - } else { - pool.OsType = nil - } - - // PowerState - if source.PowerState != nil { - var powerState PowerState - err := powerState.Initialize_From_PowerState_STATUS(source.PowerState) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_PowerState_STATUS() to populate field PowerState") - } - pool.PowerState = &powerState - } else { - pool.PowerState = nil - } - - // ScaleDownMode - if source.ScaleDownMode != nil { - scaleDownMode := ScaleDownMode(*source.ScaleDownMode) - pool.ScaleDownMode = &scaleDownMode - } else { - pool.ScaleDownMode = nil - } - - // ScaleSetEvictionPolicy - if source.ScaleSetEvictionPolicy != nil { - scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) - pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy - } else { - pool.ScaleSetEvictionPolicy = nil - } - - // ScaleSetPriority - if source.ScaleSetPriority != nil { - scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) - pool.ScaleSetPriority = &scaleSetPriority - } else { - pool.ScaleSetPriority = nil - } - - // SpotMaxPrice - if source.SpotMaxPrice != nil { - spotMaxPrice := *source.SpotMaxPrice - pool.SpotMaxPrice = &spotMaxPrice - } else { - pool.SpotMaxPrice = nil - } - - // Tags - pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) - - // Type - if source.Type != nil { - typeVar := AgentPoolType(*source.Type) - pool.Type = &typeVar - } else { - pool.Type = nil - } - - // UpgradeSettings - if source.UpgradeSettings != nil { - var upgradeSetting AgentPoolUpgradeSettings - err := upgradeSetting.Initialize_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") - } - pool.UpgradeSettings = &upgradeSetting - } else { - pool.UpgradeSettings = nil - } - - // VmSize - pool.VmSize = genruntime.ClonePointerToString(source.VmSize) - - // WorkloadRuntime - if source.WorkloadRuntime != nil { - workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) - pool.WorkloadRuntime = &workloadRuntime - } else { - pool.WorkloadRuntime = nil - } - - // No error - return nil -} - // OriginalVersion returns the original API version used to create the resource. func (pool *ManagedClusters_AgentPool_Spec) OriginalVersion() string { return GroupVersion.Version @@ -3323,16 +3085,6 @@ func (settings *AgentPoolUpgradeSettings) AssignProperties_To_AgentPoolUpgradeSe return nil } -// Initialize_From_AgentPoolUpgradeSettings_STATUS populates our AgentPoolUpgradeSettings from the provided source AgentPoolUpgradeSettings_STATUS -func (settings *AgentPoolUpgradeSettings) Initialize_From_AgentPoolUpgradeSettings_STATUS(source *AgentPoolUpgradeSettings_STATUS) error { - - // MaxSurge - settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) - - // No error - return nil -} - // Settings for upgrading an agentpool type AgentPoolUpgradeSettings_STATUS struct { // MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it @@ -3483,21 +3235,6 @@ func (data *CreationData) AssignProperties_To_CreationData(destination *v2023020 return nil } -// Initialize_From_CreationData_STATUS populates our CreationData from the provided source CreationData_STATUS -func (data *CreationData) Initialize_From_CreationData_STATUS(source *CreationData_STATUS) error { - - // SourceResourceReference - if source.SourceResourceId != nil { - sourceResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.SourceResourceId) - data.SourceResourceReference = &sourceResourceReference - } else { - data.SourceResourceReference = nil - } - - // No error - return nil -} - // Data used when creating a target resource from a source resource. type CreationData_STATUS struct { // SourceResourceId: This is the ARM ID of the source object to be used to create the target object. @@ -3899,61 +3636,6 @@ func (config *KubeletConfig) AssignProperties_To_KubeletConfig(destination *v202 return nil } -// Initialize_From_KubeletConfig_STATUS populates our KubeletConfig from the provided source KubeletConfig_STATUS -func (config *KubeletConfig) Initialize_From_KubeletConfig_STATUS(source *KubeletConfig_STATUS) error { - - // AllowedUnsafeSysctls - config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) - - // ContainerLogMaxFiles - if source.ContainerLogMaxFiles != nil { - containerLogMaxFile := *source.ContainerLogMaxFiles - config.ContainerLogMaxFiles = &containerLogMaxFile - } else { - config.ContainerLogMaxFiles = nil - } - - // ContainerLogMaxSizeMB - config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) - - // CpuCfsQuota - if source.CpuCfsQuota != nil { - cpuCfsQuota := *source.CpuCfsQuota - config.CpuCfsQuota = &cpuCfsQuota - } else { - config.CpuCfsQuota = nil - } - - // CpuCfsQuotaPeriod - config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) - - // CpuManagerPolicy - config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) - - // FailSwapOn - if source.FailSwapOn != nil { - failSwapOn := *source.FailSwapOn - config.FailSwapOn = &failSwapOn - } else { - config.FailSwapOn = nil - } - - // ImageGcHighThreshold - config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) - - // ImageGcLowThreshold - config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) - - // PodMaxPids - config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) - - // TopologyManagerPolicy - config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) - - // No error - return nil -} - // See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. type KubeletConfig_STATUS struct { // AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`). @@ -4373,34 +4055,6 @@ func (config *LinuxOSConfig) AssignProperties_To_LinuxOSConfig(destination *v202 return nil } -// Initialize_From_LinuxOSConfig_STATUS populates our LinuxOSConfig from the provided source LinuxOSConfig_STATUS -func (config *LinuxOSConfig) Initialize_From_LinuxOSConfig_STATUS(source *LinuxOSConfig_STATUS) error { - - // SwapFileSizeMB - config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) - - // Sysctls - if source.Sysctls != nil { - var sysctl SysctlConfig - err := sysctl.Initialize_From_SysctlConfig_STATUS(source.Sysctls) - if err != nil { - return errors.Wrap(err, "calling Initialize_From_SysctlConfig_STATUS() to populate field Sysctls") - } - config.Sysctls = &sysctl - } else { - config.Sysctls = nil - } - - // TransparentHugePageDefrag - config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) - - // TransparentHugePageEnabled - config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) - - // No error - return nil -} - // See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. type LinuxOSConfig_STATUS struct { // SwapFileSizeMB: The size in MB of a swap file that will be created on each node. @@ -4677,21 +4331,6 @@ func (state *PowerState) AssignProperties_To_PowerState(destination *v20230201s. return nil } -// Initialize_From_PowerState_STATUS populates our PowerState from the provided source PowerState_STATUS -func (state *PowerState) Initialize_From_PowerState_STATUS(source *PowerState_STATUS) error { - - // Code - if source.Code != nil { - code := PowerState_Code(*source.Code) - state.Code = &code - } else { - state.Code = nil - } - - // No error - return nil -} - // Describes how VMs are added to or removed from Agent Pools. See [billing // states](https://docs.microsoft.com/azure/virtual-machines/states-billing). // +kubebuilder:validation:Enum={"Deallocate","Delete"} @@ -5423,102 +5062,6 @@ func (config *SysctlConfig) AssignProperties_To_SysctlConfig(destination *v20230 return nil } -// Initialize_From_SysctlConfig_STATUS populates our SysctlConfig from the provided source SysctlConfig_STATUS -func (config *SysctlConfig) Initialize_From_SysctlConfig_STATUS(source *SysctlConfig_STATUS) error { - - // FsAioMaxNr - config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) - - // FsFileMax - config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) - - // FsInotifyMaxUserWatches - config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) - - // FsNrOpen - config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) - - // KernelThreadsMax - config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) - - // NetCoreNetdevMaxBacklog - config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) - - // NetCoreOptmemMax - config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) - - // NetCoreRmemDefault - config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) - - // NetCoreRmemMax - config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) - - // NetCoreSomaxconn - config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) - - // NetCoreWmemDefault - config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) - - // NetCoreWmemMax - config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) - - // NetIpv4IpLocalPortRange - config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) - - // NetIpv4NeighDefaultGcThresh1 - config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) - - // NetIpv4NeighDefaultGcThresh2 - config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) - - // NetIpv4NeighDefaultGcThresh3 - config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) - - // NetIpv4TcpFinTimeout - config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) - - // NetIpv4TcpKeepaliveProbes - config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) - - // NetIpv4TcpKeepaliveTime - config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) - - // NetIpv4TcpMaxSynBacklog - config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) - - // NetIpv4TcpMaxTwBuckets - config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) - - // NetIpv4TcpTwReuse - if source.NetIpv4TcpTwReuse != nil { - netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse - config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse - } else { - config.NetIpv4TcpTwReuse = nil - } - - // NetIpv4TcpkeepaliveIntvl - config.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(source.NetIpv4TcpkeepaliveIntvl) - - // NetNetfilterNfConntrackBuckets - config.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackBuckets) - - // NetNetfilterNfConntrackMax - config.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackMax) - - // VmMaxMapCount - config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) - - // VmSwappiness - config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) - - // VmVfsCachePressure - config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) - - // No error - return nil -} - // Sysctl settings for Linux agent nodes. type SysctlConfig_STATUS struct { // FsAioMaxNr: Sysctl setting fs.aio-max-nr. diff --git a/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen_test.go index b0321a45281..36331b8671e 100644 --- a/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20230201/managed_clusters_agent_pool_types_gen_test.go @@ -6,6 +6,7 @@ package v1api20230201 import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +37,7 @@ func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedCluster copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedClustersAgentPool + var hub v20231001s.ManagedClustersAgentPool err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen.go new file mode 100644 index 00000000000..d5cf5136b63 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen.go @@ -0,0 +1,73 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ClusterUpgradeSettings_STATUS +// Settings for upgrading a cluster. +type ClusterUpgradeSettings_STATUS struct { + OverrideSettings *UpgradeOverrideSettings_STATUS `json:"overrideSettings,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ClusterUpgradeSettings_STATUS populates our ClusterUpgradeSettings_STATUS from the provided source ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_From_ClusterUpgradeSettings_STATUS(source *v20231001s.ClusterUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings_STATUS + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings_STATUS(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings_STATUS populates the provided destination ClusterUpgradeSettings_STATUS from our ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_To_ClusterUpgradeSettings_STATUS(destination *v20231001s.ClusterUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20231001s.UpgradeOverrideSettings_STATUS + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings_STATUS(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen_test.go new file mode 100644 index 00000000000..16c280b144d --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_status_types_gen_test.go @@ -0,0 +1,122 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ClusterUpgradeSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings_STATUS to ClusterUpgradeSettings_STATUS via AssignProperties_To_ClusterUpgradeSettings_STATUS & AssignProperties_From_ClusterUpgradeSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS tests if a specific instance of ClusterUpgradeSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ClusterUpgradeSettings_STATUS + err := copied.AssignProperties_To_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings_STATUS + err = actual.AssignProperties_From_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ClusterUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings_STATUS runs a test to see if a specific instance of ClusterUpgradeSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings_STATUS instances for property testing - lazily instantiated by +// ClusterUpgradeSettings_STATUSGenerator() +var clusterUpgradeSettings_STATUSGenerator gopter.Gen + +// ClusterUpgradeSettings_STATUSGenerator returns a generator of ClusterUpgradeSettings_STATUS instances for property testing. +func ClusterUpgradeSettings_STATUSGenerator() gopter.Gen { + if clusterUpgradeSettings_STATUSGenerator != nil { + return clusterUpgradeSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(generators) + clusterUpgradeSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings_STATUS{}), generators) + + return clusterUpgradeSettings_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettings_STATUSGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen.go new file mode 100644 index 00000000000..2167b44bffc --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen.go @@ -0,0 +1,73 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ClusterUpgradeSettings +// Settings for upgrading a cluster. +type ClusterUpgradeSettings struct { + OverrideSettings *UpgradeOverrideSettings `json:"overrideSettings,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ClusterUpgradeSettings populates our ClusterUpgradeSettings from the provided source ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_From_ClusterUpgradeSettings(source *v20231001s.ClusterUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings populates the provided destination ClusterUpgradeSettings from our ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_To_ClusterUpgradeSettings(destination *v20231001s.ClusterUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20231001s.UpgradeOverrideSettings + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen_test.go new file mode 100644 index 00000000000..dd1597a1635 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/cluster_upgrade_settings_types_gen_test.go @@ -0,0 +1,122 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ClusterUpgradeSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings to ClusterUpgradeSettings via AssignProperties_To_ClusterUpgradeSettings & AssignProperties_From_ClusterUpgradeSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings tests if a specific instance of ClusterUpgradeSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ClusterUpgradeSettings + err := copied.AssignProperties_To_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings + err = actual.AssignProperties_From_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ClusterUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings runs a test to see if a specific instance of ClusterUpgradeSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings instances for property testing - lazily instantiated by +// ClusterUpgradeSettingsGenerator() +var clusterUpgradeSettingsGenerator gopter.Gen + +// ClusterUpgradeSettingsGenerator returns a generator of ClusterUpgradeSettings instances for property testing. +func ClusterUpgradeSettingsGenerator() gopter.Gen { + if clusterUpgradeSettingsGenerator != nil { + return clusterUpgradeSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings(generators) + clusterUpgradeSettingsGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings{}), generators) + + return clusterUpgradeSettingsGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettingsGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/groupversion_info.go b/v2/api/containerservice/v1api20230201/storage/compat/groupversion_info.go new file mode 100644 index 00000000000..001ca837679 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/groupversion_info.go @@ -0,0 +1,12 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Package storage contains API Schema definitions for the containerservice storage API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=containerservice.azure.com +// +versionName=v1api20230201storage +package compat diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen.go new file mode 100644 index 00000000000..3cb3a836fc2 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen.go @@ -0,0 +1,105 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.IstioComponents_STATUS +// Istio components configuration. +type IstioComponents_STATUS struct { + IngressGateways []IstioIngressGateway_STATUS `json:"ingressGateways,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioComponents_STATUS populates our IstioComponents_STATUS from the provided source IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_From_IstioComponents_STATUS(source *v20231001s.IstioComponents_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // EgressGateways + if len(source.EgressGateways) > 0 { + propertyBag.Add("EgressGateways", source.EgressGateways) + } else { + propertyBag.Remove("EgressGateways") + } + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway_STATUS, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway_STATUS + err := ingressGateway.AssignProperties_From_IstioIngressGateway_STATUS(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + components.PropertyBag = propertyBag + } else { + components.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents_STATUS populates the provided destination IstioComponents_STATUS from our IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_To_IstioComponents_STATUS(destination *v20231001s.IstioComponents_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(components.PropertyBag) + + // EgressGateways + if propertyBag.Contains("EgressGateways") { + var egressGateway []v20231001s.IstioEgressGateway_STATUS + err := propertyBag.Pull("EgressGateways", &egressGateway) + if err != nil { + return errors.Wrap(err, "pulling 'EgressGateways' from propertyBag") + } + + destination.EgressGateways = egressGateway + } else { + destination.EgressGateways = nil + } + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20231001s.IstioIngressGateway_STATUS, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20231001s.IstioIngressGateway_STATUS + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway_STATUS(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen_test.go new file mode 100644 index 00000000000..94e7f2d7b66 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_status_types_gen_test.go @@ -0,0 +1,122 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioComponents_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents_STATUS to IstioComponents_STATUS via AssignProperties_To_IstioComponents_STATUS & AssignProperties_From_IstioComponents_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents_STATUS tests if a specific instance of IstioComponents_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioComponents_STATUS + err := copied.AssignProperties_To_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents_STATUS + err = actual.AssignProperties_From_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioComponents_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents_STATUS runs a test to see if a specific instance of IstioComponents_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents_STATUS instances for property testing - lazily instantiated by +// IstioComponents_STATUSGenerator() +var istioComponents_STATUSGenerator gopter.Gen + +// IstioComponents_STATUSGenerator returns a generator of IstioComponents_STATUS instances for property testing. +func IstioComponents_STATUSGenerator() gopter.Gen { + if istioComponents_STATUSGenerator != nil { + return istioComponents_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents_STATUS(generators) + istioComponents_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioComponents_STATUS{}), generators) + + return istioComponents_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents_STATUS(gens map[string]gopter.Gen) { + gens["IngressGateways"] = gen.SliceOf(IstioIngressGateway_STATUSGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen.go new file mode 100644 index 00000000000..c7aab211dc0 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen.go @@ -0,0 +1,105 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.IstioComponents +// Istio components configuration. +type IstioComponents struct { + IngressGateways []IstioIngressGateway `json:"ingressGateways,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioComponents populates our IstioComponents from the provided source IstioComponents +func (components *IstioComponents) AssignProperties_From_IstioComponents(source *v20231001s.IstioComponents) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // EgressGateways + if len(source.EgressGateways) > 0 { + propertyBag.Add("EgressGateways", source.EgressGateways) + } else { + propertyBag.Remove("EgressGateways") + } + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway + err := ingressGateway.AssignProperties_From_IstioIngressGateway(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + components.PropertyBag = propertyBag + } else { + components.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents populates the provided destination IstioComponents from our IstioComponents +func (components *IstioComponents) AssignProperties_To_IstioComponents(destination *v20231001s.IstioComponents) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(components.PropertyBag) + + // EgressGateways + if propertyBag.Contains("EgressGateways") { + var egressGateway []v20231001s.IstioEgressGateway + err := propertyBag.Pull("EgressGateways", &egressGateway) + if err != nil { + return errors.Wrap(err, "pulling 'EgressGateways' from propertyBag") + } + + destination.EgressGateways = egressGateway + } else { + destination.EgressGateways = nil + } + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20231001s.IstioIngressGateway, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20231001s.IstioIngressGateway + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen_test.go new file mode 100644 index 00000000000..8d405d7e951 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_components_types_gen_test.go @@ -0,0 +1,121 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioComponents_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents to IstioComponents via AssignProperties_To_IstioComponents & AssignProperties_From_IstioComponents returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents tests if a specific instance of IstioComponents can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioComponents(subject IstioComponents) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioComponents + err := copied.AssignProperties_To_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents + err = actual.AssignProperties_From_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioComponents_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents runs a test to see if a specific instance of IstioComponents round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents(subject IstioComponents) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents instances for property testing - lazily instantiated by IstioComponentsGenerator() +var istioComponentsGenerator gopter.Gen + +// IstioComponentsGenerator returns a generator of IstioComponents instances for property testing. +func IstioComponentsGenerator() gopter.Gen { + if istioComponentsGenerator != nil { + return istioComponentsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents(generators) + istioComponentsGenerator = gen.Struct(reflect.TypeOf(IstioComponents{}), generators) + + return istioComponentsGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents(gens map[string]gopter.Gen) { + gens["IngressGateways"] = gen.SliceOf(IstioIngressGatewayGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen.go new file mode 100644 index 00000000000..a8dbe4c09cc --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen.go @@ -0,0 +1,72 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +// Storage version of v1api20230202preview.IstioIngressGateway_STATUS +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioIngressGateway_STATUS populates our IstioIngressGateway_STATUS from the provided source IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_From_IstioIngressGateway_STATUS(source *v20231001s.IstioIngressGateway_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + gateway.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + gateway.PropertyBag = propertyBag + } else { + gateway.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway_STATUS populates the provided destination IstioIngressGateway_STATUS from our IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_To_IstioIngressGateway_STATUS(destination *v20231001s.IstioIngressGateway_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(gateway.PropertyBag) + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(gateway.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen_test.go new file mode 100644 index 00000000000..4fd929e7113 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_status_types_gen_test.go @@ -0,0 +1,123 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioIngressGateway_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway_STATUS to IstioIngressGateway_STATUS via AssignProperties_To_IstioIngressGateway_STATUS & AssignProperties_From_IstioIngressGateway_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway_STATUS tests if a specific instance of IstioIngressGateway_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioIngressGateway_STATUS + err := copied.AssignProperties_To_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway_STATUS + err = actual.AssignProperties_From_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioIngressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway_STATUS runs a test to see if a specific instance of IstioIngressGateway_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway_STATUS instances for property testing - lazily instantiated by +// IstioIngressGateway_STATUSGenerator() +var istioIngressGateway_STATUSGenerator gopter.Gen + +// IstioIngressGateway_STATUSGenerator returns a generator of IstioIngressGateway_STATUS instances for property testing. +func IstioIngressGateway_STATUSGenerator() gopter.Gen { + if istioIngressGateway_STATUSGenerator != nil { + return istioIngressGateway_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(generators) + istioIngressGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway_STATUS{}), generators) + + return istioIngressGateway_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen.go new file mode 100644 index 00000000000..438bf493ad9 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen.go @@ -0,0 +1,72 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +// Storage version of v1api20230202preview.IstioIngressGateway +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway struct { + Enabled *bool `json:"enabled,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioIngressGateway populates our IstioIngressGateway from the provided source IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_From_IstioIngressGateway(source *v20231001s.IstioIngressGateway) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + gateway.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + gateway.PropertyBag = propertyBag + } else { + gateway.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway populates the provided destination IstioIngressGateway from our IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_To_IstioIngressGateway(destination *v20231001s.IstioIngressGateway) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(gateway.PropertyBag) + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(gateway.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen_test.go new file mode 100644 index 00000000000..51c8c5d4f22 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_ingress_gateway_types_gen_test.go @@ -0,0 +1,123 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioIngressGateway_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway to IstioIngressGateway via AssignProperties_To_IstioIngressGateway & AssignProperties_From_IstioIngressGateway returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway tests if a specific instance of IstioIngressGateway can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioIngressGateway + err := copied.AssignProperties_To_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway + err = actual.AssignProperties_From_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioIngressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway runs a test to see if a specific instance of IstioIngressGateway round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway instances for property testing - lazily instantiated by +// IstioIngressGatewayGenerator() +var istioIngressGatewayGenerator gopter.Gen + +// IstioIngressGatewayGenerator returns a generator of IstioIngressGateway instances for property testing. +func IstioIngressGatewayGenerator() gopter.Gen { + if istioIngressGatewayGenerator != nil { + return istioIngressGatewayGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway(generators) + istioIngressGatewayGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway{}), generators) + + return istioIngressGatewayGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen.go new file mode 100644 index 00000000000..f9a7a1941ab --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen.go @@ -0,0 +1,113 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.IstioServiceMesh_STATUS +// Istio service mesh configuration. +type IstioServiceMesh_STATUS struct { + Components *IstioComponents_STATUS `json:"components,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioServiceMesh_STATUS populates our IstioServiceMesh_STATUS from the provided source IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_From_IstioServiceMesh_STATUS(source *v20231001s.IstioServiceMesh_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // CertificateAuthority + if source.CertificateAuthority != nil { + propertyBag.Add("CertificateAuthority", *source.CertificateAuthority) + } else { + propertyBag.Remove("CertificateAuthority") + } + + // Components + if source.Components != nil { + var component IstioComponents_STATUS + err := component.AssignProperties_From_IstioComponents_STATUS(source.Components) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents_STATUS() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Revisions + if len(source.Revisions) > 0 { + propertyBag.Add("Revisions", source.Revisions) + } else { + propertyBag.Remove("Revisions") + } + + // Update the property bag + if len(propertyBag) > 0 { + mesh.PropertyBag = propertyBag + } else { + mesh.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh_STATUS populates the provided destination IstioServiceMesh_STATUS from our IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_To_IstioServiceMesh_STATUS(destination *v20231001s.IstioServiceMesh_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(mesh.PropertyBag) + + // CertificateAuthority + if propertyBag.Contains("CertificateAuthority") { + var certificateAuthority v20231001s.IstioCertificateAuthority_STATUS + err := propertyBag.Pull("CertificateAuthority", &certificateAuthority) + if err != nil { + return errors.Wrap(err, "pulling 'CertificateAuthority' from propertyBag") + } + + destination.CertificateAuthority = &certificateAuthority + } else { + destination.CertificateAuthority = nil + } + + // Components + if mesh.Components != nil { + var component v20231001s.IstioComponents_STATUS + err := mesh.Components.AssignProperties_To_IstioComponents_STATUS(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents_STATUS() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Revisions + if propertyBag.Contains("Revisions") { + var revision []string + err := propertyBag.Pull("Revisions", &revision) + if err != nil { + return errors.Wrap(err, "pulling 'Revisions' from propertyBag") + } + + destination.Revisions = revision + } else { + destination.Revisions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen_test.go new file mode 100644 index 00000000000..fb77b5f1bad --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_status_types_gen_test.go @@ -0,0 +1,122 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioServiceMesh_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh_STATUS to IstioServiceMesh_STATUS via AssignProperties_To_IstioServiceMesh_STATUS & AssignProperties_From_IstioServiceMesh_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh_STATUS tests if a specific instance of IstioServiceMesh_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioServiceMesh_STATUS + err := copied.AssignProperties_To_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh_STATUS + err = actual.AssignProperties_From_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioServiceMesh_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh_STATUS runs a test to see if a specific instance of IstioServiceMesh_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh_STATUS instances for property testing - lazily instantiated by +// IstioServiceMesh_STATUSGenerator() +var istioServiceMesh_STATUSGenerator gopter.Gen + +// IstioServiceMesh_STATUSGenerator returns a generator of IstioServiceMesh_STATUS instances for property testing. +func IstioServiceMesh_STATUSGenerator() gopter.Gen { + if istioServiceMesh_STATUSGenerator != nil { + return istioServiceMesh_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + istioServiceMesh_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS{}), generators) + + return istioServiceMesh_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(gens map[string]gopter.Gen) { + gens["Components"] = gen.PtrOf(IstioComponents_STATUSGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen.go new file mode 100644 index 00000000000..7a685eacb22 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen.go @@ -0,0 +1,113 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.IstioServiceMesh +// Istio service mesh configuration. +type IstioServiceMesh struct { + Components *IstioComponents `json:"components,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioServiceMesh populates our IstioServiceMesh from the provided source IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_From_IstioServiceMesh(source *v20231001s.IstioServiceMesh) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // CertificateAuthority + if source.CertificateAuthority != nil { + propertyBag.Add("CertificateAuthority", *source.CertificateAuthority) + } else { + propertyBag.Remove("CertificateAuthority") + } + + // Components + if source.Components != nil { + var component IstioComponents + err := component.AssignProperties_From_IstioComponents(source.Components) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Revisions + if len(source.Revisions) > 0 { + propertyBag.Add("Revisions", source.Revisions) + } else { + propertyBag.Remove("Revisions") + } + + // Update the property bag + if len(propertyBag) > 0 { + mesh.PropertyBag = propertyBag + } else { + mesh.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh populates the provided destination IstioServiceMesh from our IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_To_IstioServiceMesh(destination *v20231001s.IstioServiceMesh) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(mesh.PropertyBag) + + // CertificateAuthority + if propertyBag.Contains("CertificateAuthority") { + var certificateAuthority v20231001s.IstioCertificateAuthority + err := propertyBag.Pull("CertificateAuthority", &certificateAuthority) + if err != nil { + return errors.Wrap(err, "pulling 'CertificateAuthority' from propertyBag") + } + + destination.CertificateAuthority = &certificateAuthority + } else { + destination.CertificateAuthority = nil + } + + // Components + if mesh.Components != nil { + var component v20231001s.IstioComponents + err := mesh.Components.AssignProperties_To_IstioComponents(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Revisions + if propertyBag.Contains("Revisions") { + var revision []string + err := propertyBag.Pull("Revisions", &revision) + if err != nil { + return errors.Wrap(err, "pulling 'Revisions' from propertyBag") + } + + destination.Revisions = revision + } else { + destination.Revisions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen_test.go new file mode 100644 index 00000000000..7076ff3f26f --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/istio_service_mesh_types_gen_test.go @@ -0,0 +1,121 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_IstioServiceMesh_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh to IstioServiceMesh via AssignProperties_To_IstioServiceMesh & AssignProperties_From_IstioServiceMesh returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh tests if a specific instance of IstioServiceMesh can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioServiceMesh + err := copied.AssignProperties_To_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh + err = actual.AssignProperties_From_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioServiceMesh_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh runs a test to see if a specific instance of IstioServiceMesh round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh instances for property testing - lazily instantiated by IstioServiceMeshGenerator() +var istioServiceMeshGenerator gopter.Gen + +// IstioServiceMeshGenerator returns a generator of IstioServiceMesh instances for property testing. +func IstioServiceMeshGenerator() gopter.Gen { + if istioServiceMeshGenerator != nil { + return istioServiceMeshGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioServiceMesh(generators) + istioServiceMeshGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh{}), generators) + + return istioServiceMeshGenerator +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) { + gens["Components"] = gen.PtrOf(IstioComponentsGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen.go new file mode 100644 index 00000000000..00f7af3116b --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen.go @@ -0,0 +1,106 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS struct { + ControlledValues *string `json:"controlledValues,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpdateMode *string `json:"updateMode,omitempty"` +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ControlledValues + if propertyBag.Contains("ControlledValues") { + var controlledValue string + err := propertyBag.Pull("ControlledValues", &controlledValue) + if err != nil { + return errors.Wrap(err, "pulling 'ControlledValues' from propertyBag") + } + + autoscaler.ControlledValues = &controlledValue + } else { + autoscaler.ControlledValues = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // UpdateMode + if propertyBag.Contains("UpdateMode") { + var updateMode string + err := propertyBag.Pull("UpdateMode", &updateMode) + if err != nil { + return errors.Wrap(err, "pulling 'UpdateMode' from propertyBag") + } + + autoscaler.UpdateMode = &updateMode + } else { + autoscaler.UpdateMode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + autoscaler.PropertyBag = propertyBag + } else { + autoscaler.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(autoscaler.PropertyBag) + + // ControlledValues + if autoscaler.ControlledValues != nil { + propertyBag.Add("ControlledValues", *autoscaler.ControlledValues) + } else { + propertyBag.Remove("ControlledValues") + } + + // Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UpdateMode + if autoscaler.UpdateMode != nil { + propertyBag.Add("UpdateMode", *autoscaler.UpdateMode) + } else { + propertyBag.Remove("UpdateMode") + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen_test.go new file mode 100644 index 00000000000..28e81ae8b53 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_status_types_gen_test.go @@ -0,0 +1,124 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing - +// lazily instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(gens map[string]gopter.Gen) { + gens["ControlledValues"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["UpdateMode"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen.go new file mode 100644 index 00000000000..a92173d0165 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen.go @@ -0,0 +1,106 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler struct { + ControlledValues *string `json:"controlledValues,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpdateMode *string `json:"updateMode,omitempty"` +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ControlledValues + if propertyBag.Contains("ControlledValues") { + var controlledValue string + err := propertyBag.Pull("ControlledValues", &controlledValue) + if err != nil { + return errors.Wrap(err, "pulling 'ControlledValues' from propertyBag") + } + + autoscaler.ControlledValues = &controlledValue + } else { + autoscaler.ControlledValues = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // UpdateMode + if propertyBag.Contains("UpdateMode") { + var updateMode string + err := propertyBag.Pull("UpdateMode", &updateMode) + if err != nil { + return errors.Wrap(err, "pulling 'UpdateMode' from propertyBag") + } + + autoscaler.UpdateMode = &updateMode + } else { + autoscaler.UpdateMode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + autoscaler.PropertyBag = propertyBag + } else { + autoscaler.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(autoscaler.PropertyBag) + + // ControlledValues + if autoscaler.ControlledValues != nil { + propertyBag.Add("ControlledValues", *autoscaler.ControlledValues) + } else { + propertyBag.Remove("ControlledValues") + } + + // Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UpdateMode + if autoscaler.UpdateMode != nil { + propertyBag.Add("UpdateMode", *autoscaler.UpdateMode) + } else { + propertyBag.Remove("UpdateMode") + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen_test.go new file mode 100644 index 00000000000..8496e64b524 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/managed_cluster_workload_auto_scaler_profile_vertical_pod_autoscaler_types_gen_test.go @@ -0,0 +1,124 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing - lazily +// instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(gens map[string]gopter.Gen) { + gens["ControlledValues"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["UpdateMode"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen.go new file mode 100644 index 00000000000..0b120fea675 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen.go @@ -0,0 +1,80 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ServiceMeshProfile_STATUS +// Service mesh profile for a managed cluster. +type ServiceMeshProfile_STATUS struct { + Istio *IstioServiceMesh_STATUS `json:"istio,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ServiceMeshProfile_STATUS populates our ServiceMeshProfile_STATUS from the provided source ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_From_ServiceMeshProfile_STATUS(source *v20231001s.ServiceMeshProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh_STATUS + err := istio.AssignProperties_From_IstioServiceMesh_STATUS(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh_STATUS() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile_STATUS populates the provided destination ServiceMeshProfile_STATUS from our ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_To_ServiceMeshProfile_STATUS(destination *v20231001s.ServiceMeshProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Istio + if profile.Istio != nil { + var istio v20231001s.IstioServiceMesh_STATUS + err := profile.Istio.AssignProperties_To_IstioServiceMesh_STATUS(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh_STATUS() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen_test.go new file mode 100644 index 00000000000..4da38e096f5 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_status_types_gen_test.go @@ -0,0 +1,136 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ServiceMeshProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile_STATUS to ServiceMeshProfile_STATUS via AssignProperties_To_ServiceMeshProfile_STATUS & AssignProperties_From_ServiceMeshProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile_STATUS tests if a specific instance of ServiceMeshProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ServiceMeshProfile_STATUS + err := copied.AssignProperties_To_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile_STATUS + err = actual.AssignProperties_From_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ServiceMeshProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile_STATUS runs a test to see if a specific instance of ServiceMeshProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile_STATUS instances for property testing - lazily instantiated by +// ServiceMeshProfile_STATUSGenerator() +var serviceMeshProfile_STATUSGenerator gopter.Gen + +// ServiceMeshProfile_STATUSGenerator returns a generator of ServiceMeshProfile_STATUS instances for property testing. +// We first initialize serviceMeshProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfile_STATUSGenerator() gopter.Gen { + if serviceMeshProfile_STATUSGenerator != nil { + return serviceMeshProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + return serviceMeshProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMesh_STATUSGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen.go new file mode 100644 index 00000000000..7fa36a5b785 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen.go @@ -0,0 +1,80 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.ServiceMeshProfile +// Service mesh profile for a managed cluster. +type ServiceMeshProfile struct { + Istio *IstioServiceMesh `json:"istio,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ServiceMeshProfile populates our ServiceMeshProfile from the provided source ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_From_ServiceMeshProfile(source *v20231001s.ServiceMeshProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh + err := istio.AssignProperties_From_IstioServiceMesh(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile populates the provided destination ServiceMeshProfile from our ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_To_ServiceMeshProfile(destination *v20231001s.ServiceMeshProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Istio + if profile.Istio != nil { + var istio v20231001s.IstioServiceMesh + err := profile.Istio.AssignProperties_To_IstioServiceMesh(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen_test.go new file mode 100644 index 00000000000..c14c67f736a --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/service_mesh_profile_types_gen_test.go @@ -0,0 +1,135 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ServiceMeshProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile to ServiceMeshProfile via AssignProperties_To_ServiceMeshProfile & AssignProperties_From_ServiceMeshProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile tests if a specific instance of ServiceMeshProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ServiceMeshProfile + err := copied.AssignProperties_To_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile + err = actual.AssignProperties_From_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ServiceMeshProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile runs a test to see if a specific instance of ServiceMeshProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile instances for property testing - lazily instantiated by ServiceMeshProfileGenerator() +var serviceMeshProfileGenerator gopter.Gen + +// ServiceMeshProfileGenerator returns a generator of ServiceMeshProfile instances for property testing. +// We first initialize serviceMeshProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfileGenerator() gopter.Gen { + if serviceMeshProfileGenerator != nil { + return serviceMeshProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + return serviceMeshProfileGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMeshGenerator()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/structure.txt b/v2/api/containerservice/v1api20230201/storage/compat/structure.txt new file mode 100644 index 00000000000..e0f49312901 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/structure.txt @@ -0,0 +1,46 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage/compat +├── ClusterUpgradeSettings: Object (2 properties) +│ ├── OverrideSettings: *Object (3 properties) +│ │ ├── ControlPlaneOverrides: string[] +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── Until: *string +│ └── PropertyBag: genruntime.PropertyBag +├── ClusterUpgradeSettings_STATUS: Object (2 properties) +│ ├── OverrideSettings: *Object (3 properties) +│ │ ├── ControlPlaneOverrides: string[] +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── Until: *string +│ └── PropertyBag: genruntime.PropertyBag +├── ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler: Object (4 properties) +│ ├── ControlledValues: *string +│ ├── Enabled: *bool +│ ├── PropertyBag: genruntime.PropertyBag +│ └── UpdateMode: *string +├── ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS: Object (4 properties) +│ ├── ControlledValues: *string +│ ├── Enabled: *bool +│ ├── PropertyBag: genruntime.PropertyBag +│ └── UpdateMode: *string +├── ServiceMeshProfile: Object (3 properties) +│ ├── Istio: *Object (2 properties) +│ │ ├── Components: *Object (2 properties) +│ │ │ ├── IngressGateways: Object (3 properties)[] +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── Mode: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── Mode: *string +│ └── PropertyBag: genruntime.PropertyBag +└── ServiceMeshProfile_STATUS: Object (3 properties) + ├── Istio: *Object (2 properties) + │ ├── Components: *Object (2 properties) + │ │ ├── IngressGateways: Object (3 properties)[] + │ │ │ ├── Enabled: *bool + │ │ │ ├── Mode: *string + │ │ │ └── PropertyBag: genruntime.PropertyBag + │ │ └── PropertyBag: genruntime.PropertyBag + │ └── PropertyBag: genruntime.PropertyBag + ├── Mode: *string + └── PropertyBag: genruntime.PropertyBag diff --git a/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen.go new file mode 100644 index 00000000000..e4f9d4db1ab --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen.go @@ -0,0 +1,96 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.UpgradeOverrideSettings_STATUS +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_STATUS struct { + ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` +} + +// AssignProperties_From_UpgradeOverrideSettings_STATUS populates our UpgradeOverrideSettings_STATUS from the provided source UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_From_UpgradeOverrideSettings_STATUS(source *v20231001s.UpgradeOverrideSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ControlPlaneOverrides + if propertyBag.Contains("ControlPlaneOverrides") { + var controlPlaneOverride []string + err := propertyBag.Pull("ControlPlaneOverrides", &controlPlaneOverride) + if err != nil { + return errors.Wrap(err, "pulling 'ControlPlaneOverrides' from propertyBag") + } + + settings.ControlPlaneOverrides = controlPlaneOverride + } else { + settings.ControlPlaneOverrides = nil + } + + // ForceUpgrade + if source.ForceUpgrade != nil { + propertyBag.Add("ForceUpgrade", *source.ForceUpgrade) + } else { + propertyBag.Remove("ForceUpgrade") + } + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings_STATUS populates the provided destination UpgradeOverrideSettings_STATUS from our UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_To_UpgradeOverrideSettings_STATUS(destination *v20231001s.UpgradeOverrideSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // ControlPlaneOverrides + if len(settings.ControlPlaneOverrides) > 0 { + propertyBag.Add("ControlPlaneOverrides", settings.ControlPlaneOverrides) + } else { + propertyBag.Remove("ControlPlaneOverrides") + } + + // ForceUpgrade + if propertyBag.Contains("ForceUpgrade") { + var forceUpgrade bool + err := propertyBag.Pull("ForceUpgrade", &forceUpgrade) + if err != nil { + return errors.Wrap(err, "pulling 'ForceUpgrade' from propertyBag") + } + + destination.ForceUpgrade = &forceUpgrade + } else { + destination.ForceUpgrade = nil + } + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen_test.go new file mode 100644 index 00000000000..44f1596de3a --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_status_types_gen_test.go @@ -0,0 +1,123 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_UpgradeOverrideSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings_STATUS to UpgradeOverrideSettings_STATUS via AssignProperties_To_UpgradeOverrideSettings_STATUS & AssignProperties_From_UpgradeOverrideSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS tests if a specific instance of UpgradeOverrideSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UpgradeOverrideSettings_STATUS + err := copied.AssignProperties_To_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings_STATUS + err = actual.AssignProperties_From_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UpgradeOverrideSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings_STATUS runs a test to see if a specific instance of UpgradeOverrideSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings_STATUS instances for property testing - lazily instantiated by +// UpgradeOverrideSettings_STATUSGenerator() +var upgradeOverrideSettings_STATUSGenerator gopter.Gen + +// UpgradeOverrideSettings_STATUSGenerator returns a generator of UpgradeOverrideSettings_STATUS instances for property testing. +func UpgradeOverrideSettings_STATUSGenerator() gopter.Gen { + if upgradeOverrideSettings_STATUSGenerator != nil { + return upgradeOverrideSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(generators) + upgradeOverrideSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings_STATUS{}), generators) + + return upgradeOverrideSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(gens map[string]gopter.Gen) { + gens["ControlPlaneOverrides"] = gen.SliceOf(gen.AlphaString()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen.go b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen.go new file mode 100644 index 00000000000..f79ddd36fb8 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen.go @@ -0,0 +1,96 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/pkg/errors" +) + +// Storage version of v1api20230202preview.UpgradeOverrideSettings +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings struct { + ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` +} + +// AssignProperties_From_UpgradeOverrideSettings populates our UpgradeOverrideSettings from the provided source UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_From_UpgradeOverrideSettings(source *v20231001s.UpgradeOverrideSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ControlPlaneOverrides + if propertyBag.Contains("ControlPlaneOverrides") { + var controlPlaneOverride []string + err := propertyBag.Pull("ControlPlaneOverrides", &controlPlaneOverride) + if err != nil { + return errors.Wrap(err, "pulling 'ControlPlaneOverrides' from propertyBag") + } + + settings.ControlPlaneOverrides = controlPlaneOverride + } else { + settings.ControlPlaneOverrides = nil + } + + // ForceUpgrade + if source.ForceUpgrade != nil { + propertyBag.Add("ForceUpgrade", *source.ForceUpgrade) + } else { + propertyBag.Remove("ForceUpgrade") + } + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings populates the provided destination UpgradeOverrideSettings from our UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_To_UpgradeOverrideSettings(destination *v20231001s.UpgradeOverrideSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // ControlPlaneOverrides + if len(settings.ControlPlaneOverrides) > 0 { + propertyBag.Add("ControlPlaneOverrides", settings.ControlPlaneOverrides) + } else { + propertyBag.Remove("ControlPlaneOverrides") + } + + // ForceUpgrade + if propertyBag.Contains("ForceUpgrade") { + var forceUpgrade bool + err := propertyBag.Pull("ForceUpgrade", &forceUpgrade) + if err != nil { + return errors.Wrap(err, "pulling 'ForceUpgrade' from propertyBag") + } + + destination.ForceUpgrade = &forceUpgrade + } else { + destination.ForceUpgrade = nil + } + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen_test.go new file mode 100644 index 00000000000..795867ec240 --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/upgrade_override_settings_types_gen_test.go @@ -0,0 +1,123 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package compat + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_UpgradeOverrideSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings to UpgradeOverrideSettings via AssignProperties_To_UpgradeOverrideSettings & AssignProperties_From_UpgradeOverrideSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings tests if a specific instance of UpgradeOverrideSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UpgradeOverrideSettings + err := copied.AssignProperties_To_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings + err = actual.AssignProperties_From_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UpgradeOverrideSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings runs a test to see if a specific instance of UpgradeOverrideSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings instances for property testing - lazily instantiated by +// UpgradeOverrideSettingsGenerator() +var upgradeOverrideSettingsGenerator gopter.Gen + +// UpgradeOverrideSettingsGenerator returns a generator of UpgradeOverrideSettings instances for property testing. +func UpgradeOverrideSettingsGenerator() gopter.Gen { + if upgradeOverrideSettingsGenerator != nil { + return upgradeOverrideSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(generators) + upgradeOverrideSettingsGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings{}), generators) + + return upgradeOverrideSettingsGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(gens map[string]gopter.Gen) { + gens["ControlPlaneOverrides"] = gen.SliceOf(gen.AlphaString()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20230201/storage/compat/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20230201/storage/compat/zz_generated.deepcopy.go new file mode 100644 index 00000000000..aec7a3ae27d --- /dev/null +++ b/v2/api/containerservice/v1api20230201/storage/compat/zz_generated.deepcopy.go @@ -0,0 +1,446 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package compat + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings) DeepCopyInto(out *ClusterUpgradeSettings) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings. +func (in *ClusterUpgradeSettings) DeepCopy() *ClusterUpgradeSettings { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings_STATUS) DeepCopyInto(out *ClusterUpgradeSettings_STATUS) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings_STATUS. +func (in *ClusterUpgradeSettings_STATUS) DeepCopy() *ClusterUpgradeSettings_STATUS { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents) DeepCopyInto(out *IstioComponents) { + *out = *in + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents. +func (in *IstioComponents) DeepCopy() *IstioComponents { + if in == nil { + return nil + } + out := new(IstioComponents) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents_STATUS) DeepCopyInto(out *IstioComponents_STATUS) { + *out = *in + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents_STATUS. +func (in *IstioComponents_STATUS) DeepCopy() *IstioComponents_STATUS { + if in == nil { + return nil + } + out := new(IstioComponents_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway) DeepCopyInto(out *IstioIngressGateway) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway. +func (in *IstioIngressGateway) DeepCopy() *IstioIngressGateway { + if in == nil { + return nil + } + out := new(IstioIngressGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway_STATUS) DeepCopyInto(out *IstioIngressGateway_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway_STATUS. +func (in *IstioIngressGateway_STATUS) DeepCopy() *IstioIngressGateway_STATUS { + if in == nil { + return nil + } + out := new(IstioIngressGateway_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh) DeepCopyInto(out *IstioServiceMesh) { + *out = *in + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh. +func (in *IstioServiceMesh) DeepCopy() *IstioServiceMesh { + if in == nil { + return nil + } + out := new(IstioServiceMesh) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh_STATUS) DeepCopyInto(out *IstioServiceMesh_STATUS) { + *out = *in + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh_STATUS. +func (in *IstioServiceMesh_STATUS) DeepCopy() *IstioServiceMesh_STATUS { + if in == nil { + return nil + } + out := new(IstioServiceMesh_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) { + *out = *in + if in.ControlledValues != nil { + in, out := &in.ControlledValues, &out.ControlledValues + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UpdateMode != nil { + in, out := &in.UpdateMode, &out.UpdateMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) { + *out = *in + if in.ControlledValues != nil { + in, out := &in.ControlledValues, &out.ControlledValues + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UpdateMode != nil { + in, out := &in.UpdateMode, &out.UpdateMode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile) DeepCopyInto(out *ServiceMeshProfile) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile. +func (in *ServiceMeshProfile) DeepCopy() *ServiceMeshProfile { + if in == nil { + return nil + } + out := new(ServiceMeshProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile_STATUS) DeepCopyInto(out *ServiceMeshProfile_STATUS) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile_STATUS. +func (in *ServiceMeshProfile_STATUS) DeepCopy() *ServiceMeshProfile_STATUS { + if in == nil { + return nil + } + out := new(ServiceMeshProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings) DeepCopyInto(out *UpgradeOverrideSettings) { + *out = *in + if in.ControlPlaneOverrides != nil { + in, out := &in.ControlPlaneOverrides, &out.ControlPlaneOverrides + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings. +func (in *UpgradeOverrideSettings) DeepCopy() *UpgradeOverrideSettings { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings_STATUS) DeepCopyInto(out *UpgradeOverrideSettings_STATUS) { + *out = *in + if in.ControlPlaneOverrides != nil { + in, out := &in.ControlPlaneOverrides, &out.ControlPlaneOverrides + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings_STATUS. +func (in *UpgradeOverrideSettings_STATUS) DeepCopy() *UpgradeOverrideSettings_STATUS { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings_STATUS) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen.go index f83d6555a74..c2e2e854af3 100644 --- a/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen.go +++ b/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen.go @@ -5,6 +5,9 @@ package storage import ( "context" + "fmt" + v20230201sc "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage/compat" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" @@ -14,14 +17,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/conversion" ) -// +kubebuilder:rbac:groups=containerservice.azure.com,resources=managedclusters,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=containerservice.azure.com,resources={managedclusters/status,managedclusters/finalizers},verbs=get;update;patch - // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// +kubebuilder:storageversion // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" // +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" @@ -49,6 +49,28 @@ func (cluster *ManagedCluster) SetConditions(conditions conditions.Conditions) { cluster.Status.Conditions = conditions } +var _ conversion.Convertible = &ManagedCluster{} + +// ConvertFrom populates our ManagedCluster from the provided hub ManagedCluster +func (cluster *ManagedCluster) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20231001s.ManagedCluster) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedCluster but received %T instead", hub) + } + + return cluster.AssignProperties_From_ManagedCluster(source) +} + +// ConvertTo populates the provided hub ManagedCluster from our ManagedCluster +func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20231001s.ManagedCluster) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedCluster but received %T instead", hub) + } + + return cluster.AssignProperties_To_ManagedCluster(destination) +} + var _ genruntime.KubernetesExporter = &ManagedCluster{} // ExportKubernetesResources defines a resource which can create other resources in Kubernetes. @@ -139,8 +161,75 @@ func (cluster *ManagedCluster) SetStatus(status genruntime.ConvertibleStatus) er return nil } -// Hub marks that this ManagedCluster is the hub type for conversion -func (cluster *ManagedCluster) Hub() {} +// AssignProperties_From_ManagedCluster populates our ManagedCluster from the provided source ManagedCluster +func (cluster *ManagedCluster) AssignProperties_From_ManagedCluster(source *v20231001s.ManagedCluster) error { + + // ObjectMeta + cluster.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec ManagedCluster_Spec + err := spec.AssignProperties_From_ManagedCluster_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedCluster_Spec() to populate field Spec") + } + cluster.Spec = spec + + // Status + var status ManagedCluster_STATUS + err = status.AssignProperties_From_ManagedCluster_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedCluster_STATUS() to populate field Status") + } + cluster.Status = status + + // Invoke the augmentConversionForManagedCluster interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster); ok { + err := augmentedCluster.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster populates the provided destination ManagedCluster from our ManagedCluster +func (cluster *ManagedCluster) AssignProperties_To_ManagedCluster(destination *v20231001s.ManagedCluster) error { + + // ObjectMeta + destination.ObjectMeta = *cluster.ObjectMeta.DeepCopy() + + // Spec + var spec v20231001s.ManagedCluster_Spec + err := cluster.Spec.AssignProperties_To_ManagedCluster_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedCluster_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20231001s.ManagedCluster_STATUS + err = cluster.Status.AssignProperties_To_ManagedCluster_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedCluster_STATUS() to populate field Status") + } + destination.Status = status + + // Invoke the augmentConversionForManagedCluster interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster); ok { + err := augmentedCluster.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} // OriginalGVK returns a GroupValueKind for the original API version used to create the resource func (cluster *ManagedCluster) OriginalGVK() *schema.GroupVersionKind { @@ -168,6 +257,11 @@ type APIVersion string const APIVersion_Value = APIVersion("2023-02-01") +type augmentConversionForManagedCluster interface { + AssignPropertiesFrom(src *v20231001s.ManagedCluster) error + AssignPropertiesTo(dst *v20231001s.ManagedCluster) error +} + // Storage version of v1api20230201.ManagedCluster_Spec type ManagedCluster_Spec struct { AadProfile *ManagedClusterAADProfile `json:"aadProfile,omitempty"` @@ -225,231 +319,3163 @@ var _ genruntime.ConvertibleSpec = &ManagedCluster_Spec{} // ConvertSpecFrom populates our ManagedCluster_Spec from the provided source func (cluster *ManagedCluster_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { - if source == cluster { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + src, ok := source.(*v20231001s.ManagedCluster_Spec) + if ok { + // Populate our instance from source + return cluster.AssignProperties_From_ManagedCluster_Spec(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedCluster_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") } - return source.ConvertSpecTo(cluster) + // Update our instance from src + err = cluster.AssignProperties_From_ManagedCluster_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil } // ConvertSpecTo populates the provided destination from our ManagedCluster_Spec func (cluster *ManagedCluster_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { - if destination == cluster { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + dst, ok := destination.(*v20231001s.ManagedCluster_Spec) + if ok { + // Populate destination from our instance + return cluster.AssignProperties_To_ManagedCluster_Spec(dst) } - return destination.ConvertSpecFrom(cluster) -} + // Convert to an intermediate form + dst = &v20231001s.ManagedCluster_Spec{} + err := cluster.AssignProperties_To_ManagedCluster_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } -// Storage version of v1api20230201.ManagedCluster_STATUS -// Managed cluster. -type ManagedCluster_STATUS struct { - AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` - AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` - AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` - ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` - AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` - AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` - AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` - AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` - Conditions []conditions.Condition `json:"conditions,omitempty"` - CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` - DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` - DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` - DnsPrefix *string `json:"dnsPrefix,omitempty"` - EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` - EnableRBAC *bool `json:"enableRBAC,omitempty"` - ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` - Fqdn *string `json:"fqdn,omitempty"` - FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` - HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` - Id *string `json:"id,omitempty"` - Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` - IdentityProfile map[string]UserAssignedIdentity_STATUS `json:"identityProfile,omitempty"` - KubernetesVersion *string `json:"kubernetesVersion,omitempty"` - LinuxProfile *ContainerServiceLinuxProfile_STATUS `json:"linuxProfile,omitempty"` - Location *string `json:"location,omitempty"` - MaxAgentPools *int `json:"maxAgentPools,omitempty"` - Name *string `json:"name,omitempty"` - NetworkProfile *ContainerServiceNetworkProfile_STATUS `json:"networkProfile,omitempty"` - NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` - OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_STATUS `json:"oidcIssuerProfile,omitempty"` - PodIdentityProfile *ManagedClusterPodIdentityProfile_STATUS `json:"podIdentityProfile,omitempty"` - PowerState *PowerState_STATUS `json:"powerState,omitempty"` - PrivateFQDN *string `json:"privateFQDN,omitempty"` - PrivateLinkResources []PrivateLinkResource_STATUS `json:"privateLinkResources,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ProvisioningState *string `json:"provisioningState,omitempty"` - PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` - SecurityProfile *ManagedClusterSecurityProfile_STATUS `json:"securityProfile,omitempty"` - ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_STATUS `json:"servicePrincipalProfile,omitempty"` - Sku *ManagedClusterSKU_STATUS `json:"sku,omitempty"` - StorageProfile *ManagedClusterStorageProfile_STATUS `json:"storageProfile,omitempty"` - SystemData *SystemData_STATUS `json:"systemData,omitempty"` - Tags map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` - WindowsProfile *ManagedClusterWindowsProfile_STATUS `json:"windowsProfile,omitempty"` - WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_STATUS `json:"workloadAutoScalerProfile,omitempty"` + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil } -var _ genruntime.ConvertibleStatus = &ManagedCluster_STATUS{} +// AssignProperties_From_ManagedCluster_Spec populates our ManagedCluster_Spec from the provided source ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) AssignProperties_From_ManagedCluster_Spec(source *v20231001s.ManagedCluster_Spec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AadProfile + if source.AadProfile != nil { + var aadProfile ManagedClusterAADProfile + err := aadProfile.AssignProperties_From_ManagedClusterAADProfile(source.AadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAADProfile() to populate field AadProfile") + } + cluster.AadProfile = &aadProfile + } else { + cluster.AadProfile = nil + } -// ConvertStatusFrom populates our ManagedCluster_STATUS from the provided source -func (cluster *ManagedCluster_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { - if source == cluster { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + // AddonProfiles + if source.AddonProfiles != nil { + addonProfileMap := make(map[string]ManagedClusterAddonProfile, len(source.AddonProfiles)) + for addonProfileKey, addonProfileValue := range source.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile ManagedClusterAddonProfile + err := addonProfile.AssignProperties_From_ManagedClusterAddonProfile(&addonProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAddonProfile() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + cluster.AddonProfiles = addonProfileMap + } else { + cluster.AddonProfiles = nil } - return source.ConvertStatusTo(cluster) -} + // AgentPoolProfiles + if source.AgentPoolProfiles != nil { + agentPoolProfileList := make([]ManagedClusterAgentPoolProfile, len(source.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile ManagedClusterAgentPoolProfile + err := agentPoolProfile.AssignProperties_From_ManagedClusterAgentPoolProfile(&agentPoolProfileItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAgentPoolProfile() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + cluster.AgentPoolProfiles = agentPoolProfileList + } else { + cluster.AgentPoolProfiles = nil + } -// ConvertStatusTo populates the provided destination from our ManagedCluster_STATUS -func (cluster *ManagedCluster_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { - if destination == cluster { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + // ApiServerAccessProfile + if source.ApiServerAccessProfile != nil { + var apiServerAccessProfile ManagedClusterAPIServerAccessProfile + err := apiServerAccessProfile.AssignProperties_From_ManagedClusterAPIServerAccessProfile(source.ApiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAPIServerAccessProfile() to populate field ApiServerAccessProfile") + } + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } else { + cluster.ApiServerAccessProfile = nil } - return destination.ConvertStatusFrom(cluster) -} + // AutoScalerProfile + if source.AutoScalerProfile != nil { + var autoScalerProfile ManagedClusterProperties_AutoScalerProfile + err := autoScalerProfile.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(source.AutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterProperties_AutoScalerProfile() to populate field AutoScalerProfile") + } + cluster.AutoScalerProfile = &autoScalerProfile + } else { + cluster.AutoScalerProfile = nil + } -// Storage version of v1api20230201.ContainerServiceLinuxProfile -// Profile for Linux VMs in the container service cluster. -type ContainerServiceLinuxProfile struct { - AdminUsername *string `json:"adminUsername,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Ssh *ContainerServiceSshConfiguration `json:"ssh,omitempty"` -} + // AutoUpgradeProfile + if source.AutoUpgradeProfile != nil { + var autoUpgradeProfile ManagedClusterAutoUpgradeProfile + err := autoUpgradeProfile.AssignProperties_From_ManagedClusterAutoUpgradeProfile(source.AutoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAutoUpgradeProfile() to populate field AutoUpgradeProfile") + } + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } else { + cluster.AutoUpgradeProfile = nil + } -// Storage version of v1api20230201.ContainerServiceLinuxProfile_STATUS -// Profile for Linux VMs in the container service cluster. -type ContainerServiceLinuxProfile_STATUS struct { - AdminUsername *string `json:"adminUsername,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Ssh *ContainerServiceSshConfiguration_STATUS `json:"ssh,omitempty"` -} + // AzureMonitorProfile + if source.AzureMonitorProfile != nil { + var azureMonitorProfile ManagedClusterAzureMonitorProfile + err := azureMonitorProfile.AssignProperties_From_ManagedClusterAzureMonitorProfile(source.AzureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfile() to populate field AzureMonitorProfile") + } + cluster.AzureMonitorProfile = &azureMonitorProfile + } else { + cluster.AzureMonitorProfile = nil + } -// Storage version of v1api20230201.ContainerServiceNetworkProfile -// Profile of network configuration. -type ContainerServiceNetworkProfile struct { - DnsServiceIP *string `json:"dnsServiceIP,omitempty"` - DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` - IpFamilies []string `json:"ipFamilies,omitempty"` - LoadBalancerProfile *ManagedClusterLoadBalancerProfile `json:"loadBalancerProfile,omitempty"` - LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` - NatGatewayProfile *ManagedClusterNATGatewayProfile `json:"natGatewayProfile,omitempty"` - NetworkDataplane *string `json:"networkDataplane,omitempty"` - NetworkMode *string `json:"networkMode,omitempty"` - NetworkPlugin *string `json:"networkPlugin,omitempty"` - NetworkPluginMode *string `json:"networkPluginMode,omitempty"` - NetworkPolicy *string `json:"networkPolicy,omitempty"` - OutboundType *string `json:"outboundType,omitempty"` - PodCidr *string `json:"podCidr,omitempty"` - PodCidrs []string `json:"podCidrs,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ServiceCidr *string `json:"serviceCidr,omitempty"` - ServiceCidrs []string `json:"serviceCidrs,omitempty"` -} + // AzureName + cluster.AzureName = source.AzureName -// Storage version of v1api20230201.ContainerServiceNetworkProfile_STATUS -// Profile of network configuration. -type ContainerServiceNetworkProfile_STATUS struct { - DnsServiceIP *string `json:"dnsServiceIP,omitempty"` - DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` - IpFamilies []string `json:"ipFamilies,omitempty"` - LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` - LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` - NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS `json:"natGatewayProfile,omitempty"` - NetworkDataplane *string `json:"networkDataplane,omitempty"` - NetworkMode *string `json:"networkMode,omitempty"` - NetworkPlugin *string `json:"networkPlugin,omitempty"` - NetworkPluginMode *string `json:"networkPluginMode,omitempty"` - NetworkPolicy *string `json:"networkPolicy,omitempty"` - OutboundType *string `json:"outboundType,omitempty"` - PodCidr *string `json:"podCidr,omitempty"` - PodCidrs []string `json:"podCidrs,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ServiceCidr *string `json:"serviceCidr,omitempty"` - ServiceCidrs []string `json:"serviceCidrs,omitempty"` -} + // DisableLocalAccounts + if source.DisableLocalAccounts != nil { + disableLocalAccount := *source.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccount + } else { + cluster.DisableLocalAccounts = nil + } -// Storage version of v1api20230201.ExtendedLocation -// The complex type of the extended location. -type ExtendedLocation struct { - Name *string `json:"name,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Type *string `json:"type,omitempty"` -} + // DiskEncryptionSetReference + if source.DiskEncryptionSetReference != nil { + diskEncryptionSetReference := source.DiskEncryptionSetReference.Copy() + cluster.DiskEncryptionSetReference = &diskEncryptionSetReference + } else { + cluster.DiskEncryptionSetReference = nil + } -// Storage version of v1api20230201.ExtendedLocation_STATUS -// The complex type of the extended location. -type ExtendedLocation_STATUS struct { - Name *string `json:"name,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Type *string `json:"type,omitempty"` -} + // DnsPrefix + cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) -// Storage version of v1api20230201.ManagedClusterAADProfile -// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). -type ManagedClusterAADProfile struct { - AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` - ClientAppID *string `json:"clientAppID,omitempty"` - EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` - Managed *bool `json:"managed,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ServerAppID *string `json:"serverAppID,omitempty"` - ServerAppSecret *string `json:"serverAppSecret,omitempty"` - TenantID *string `json:"tenantID,omitempty"` -} + // EnablePodSecurityPolicy + if source.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *source.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + cluster.EnablePodSecurityPolicy = nil + } -// Storage version of v1api20230201.ManagedClusterAADProfile_STATUS -// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). -type ManagedClusterAADProfile_STATUS struct { - AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` - ClientAppID *string `json:"clientAppID,omitempty"` - EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` - Managed *bool `json:"managed,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ServerAppID *string `json:"serverAppID,omitempty"` - ServerAppSecret *string `json:"serverAppSecret,omitempty"` - TenantID *string `json:"tenantID,omitempty"` -} + // EnableRBAC + if source.EnableRBAC != nil { + enableRBAC := *source.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } else { + cluster.EnableRBAC = nil + } -// Storage version of v1api20230201.ManagedClusterAddonProfile -// A Kubernetes add-on profile for a managed cluster. -type ManagedClusterAddonProfile struct { - Config map[string]string `json:"config,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` -} + // ExtendedLocation + if source.ExtendedLocation != nil { + var extendedLocation ExtendedLocation + err := extendedLocation.AssignProperties_From_ExtendedLocation(source.ExtendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ExtendedLocation() to populate field ExtendedLocation") + } + cluster.ExtendedLocation = &extendedLocation + } else { + cluster.ExtendedLocation = nil + } -// Storage version of v1api20230201.ManagedClusterAddonProfile_STATUS -// A Kubernetes add-on profile for a managed cluster. -type ManagedClusterAddonProfile_STATUS struct { - Config map[string]string `json:"config,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` -} + // FqdnSubdomain + cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) -// Storage version of v1api20230201.ManagedClusterAgentPoolProfile -// Profile for the container service agent pool. -type ManagedClusterAgentPoolProfile struct { - AvailabilityZones []string `json:"availabilityZones,omitempty"` - Count *int `json:"count,omitempty"` - CreationData *CreationData `json:"creationData,omitempty"` - EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` - EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` - EnableFIPS *bool `json:"enableFIPS,omitempty"` - EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` - EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` - GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + // HttpProxyConfig + if source.HttpProxyConfig != nil { + var httpProxyConfig ManagedClusterHTTPProxyConfig + err := httpProxyConfig.AssignProperties_From_ManagedClusterHTTPProxyConfig(source.HttpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterHTTPProxyConfig() to populate field HttpProxyConfig") + } + cluster.HttpProxyConfig = &httpProxyConfig + } else { + cluster.HttpProxyConfig = nil + } - // HostGroupReference: This is of the form: - // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. - // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). - HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` - KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` - KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + // Identity + if source.Identity != nil { + var identity ManagedClusterIdentity + err := identity.AssignProperties_From_ManagedClusterIdentity(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity() to populate field Identity") + } + cluster.Identity = &identity + } else { + cluster.Identity = nil + } + + // IdentityProfile + if source.IdentityProfile != nil { + identityProfileMap := make(map[string]UserAssignedIdentity, len(source.IdentityProfile)) + for identityProfileKey, identityProfileValue := range source.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile UserAssignedIdentity + err := identityProfile.AssignProperties_From_UserAssignedIdentity(&identityProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + cluster.IdentityProfile = identityProfileMap + } else { + cluster.IdentityProfile = nil + } + + // KubernetesVersion + cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + + // LinuxProfile + if source.LinuxProfile != nil { + var linuxProfile ContainerServiceLinuxProfile + err := linuxProfile.AssignProperties_From_ContainerServiceLinuxProfile(source.LinuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceLinuxProfile() to populate field LinuxProfile") + } + cluster.LinuxProfile = &linuxProfile + } else { + cluster.LinuxProfile = nil + } + + // Location + cluster.Location = genruntime.ClonePointerToString(source.Location) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile ContainerServiceNetworkProfile + err := networkProfile.AssignProperties_From_ContainerServiceNetworkProfile(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceNetworkProfile() to populate field NetworkProfile") + } + cluster.NetworkProfile = &networkProfile + } else { + cluster.NetworkProfile = nil + } + + // NodeResourceGroup + cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + + // OidcIssuerProfile + if source.OidcIssuerProfile != nil { + var oidcIssuerProfile ManagedClusterOIDCIssuerProfile + err := oidcIssuerProfile.AssignProperties_From_ManagedClusterOIDCIssuerProfile(source.OidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOIDCIssuerProfile() to populate field OidcIssuerProfile") + } + cluster.OidcIssuerProfile = &oidcIssuerProfile + } else { + cluster.OidcIssuerProfile = nil + } + + // OperatorSpec + if source.OperatorSpec != nil { + var operatorSpec ManagedClusterOperatorSpec + err := operatorSpec.AssignProperties_From_ManagedClusterOperatorSpec(source.OperatorSpec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorSpec() to populate field OperatorSpec") + } + cluster.OperatorSpec = &operatorSpec + } else { + cluster.OperatorSpec = nil + } + + // OriginalVersion + cluster.OriginalVersion = source.OriginalVersion + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + cluster.Owner = &owner + } else { + cluster.Owner = nil + } + + // PodIdentityProfile + if source.PodIdentityProfile != nil { + var podIdentityProfile ManagedClusterPodIdentityProfile + err := podIdentityProfile.AssignProperties_From_ManagedClusterPodIdentityProfile(source.PodIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProfile() to populate field PodIdentityProfile") + } + cluster.PodIdentityProfile = &podIdentityProfile + } else { + cluster.PodIdentityProfile = nil + } + + // PrivateLinkResources + if source.PrivateLinkResources != nil { + privateLinkResourceList := make([]PrivateLinkResource, len(source.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource PrivateLinkResource + err := privateLinkResource.AssignProperties_From_PrivateLinkResource(&privateLinkResourceItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateLinkResource() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + cluster.PrivateLinkResources = privateLinkResourceList + } else { + cluster.PrivateLinkResources = nil + } + + // PublicNetworkAccess + cluster.PublicNetworkAccess = genruntime.ClonePointerToString(source.PublicNetworkAccess) + + // SecurityProfile + if source.SecurityProfile != nil { + var securityProfile ManagedClusterSecurityProfile + err := securityProfile.AssignProperties_From_ManagedClusterSecurityProfile(source.SecurityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfile() to populate field SecurityProfile") + } + cluster.SecurityProfile = &securityProfile + } else { + cluster.SecurityProfile = nil + } + + // ServiceMeshProfile + if source.ServiceMeshProfile != nil { + var serviceMeshProfile v20230201sc.ServiceMeshProfile + err := serviceMeshProfile.AssignProperties_From_ServiceMeshProfile(source.ServiceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ServiceMeshProfile() to populate field ServiceMeshProfile") + } + propertyBag.Add("ServiceMeshProfile", serviceMeshProfile) + } else { + propertyBag.Remove("ServiceMeshProfile") + } + + // ServicePrincipalProfile + if source.ServicePrincipalProfile != nil { + var servicePrincipalProfile ManagedClusterServicePrincipalProfile + err := servicePrincipalProfile.AssignProperties_From_ManagedClusterServicePrincipalProfile(source.ServicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterServicePrincipalProfile() to populate field ServicePrincipalProfile") + } + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } else { + cluster.ServicePrincipalProfile = nil + } + + // Sku + if source.Sku != nil { + var sku ManagedClusterSKU + err := sku.AssignProperties_From_ManagedClusterSKU(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSKU() to populate field Sku") + } + cluster.Sku = &sku + } else { + cluster.Sku = nil + } + + // StorageProfile + if source.StorageProfile != nil { + var storageProfile ManagedClusterStorageProfile + err := storageProfile.AssignProperties_From_ManagedClusterStorageProfile(source.StorageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfile() to populate field StorageProfile") + } + cluster.StorageProfile = &storageProfile + } else { + cluster.StorageProfile = nil + } + + // SupportPlan + if source.SupportPlan != nil { + propertyBag.Add("SupportPlan", *source.SupportPlan) + } else { + propertyBag.Remove("SupportPlan") + } + + // Tags + cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting v20230201sc.ClusterUpgradeSettings + err := upgradeSetting.AssignProperties_From_ClusterUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ClusterUpgradeSettings() to populate field UpgradeSettings") + } + propertyBag.Add("UpgradeSettings", upgradeSetting) + } else { + propertyBag.Remove("UpgradeSettings") + } + + // WindowsProfile + if source.WindowsProfile != nil { + var windowsProfile ManagedClusterWindowsProfile + err := windowsProfile.AssignProperties_From_ManagedClusterWindowsProfile(source.WindowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWindowsProfile() to populate field WindowsProfile") + } + cluster.WindowsProfile = &windowsProfile + } else { + cluster.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if source.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile + err := workloadAutoScalerProfile.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(source.WorkloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile() to populate field WorkloadAutoScalerProfile") + } + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + cluster.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + cluster.PropertyBag = propertyBag + } else { + cluster.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedCluster_Spec interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster_Spec); ok { + err := augmentedCluster.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster_Spec populates the provided destination ManagedCluster_Spec from our ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) AssignProperties_To_ManagedCluster_Spec(destination *v20231001s.ManagedCluster_Spec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(cluster.PropertyBag) + + // AadProfile + if cluster.AadProfile != nil { + var aadProfile v20231001s.ManagedClusterAADProfile + err := cluster.AadProfile.AssignProperties_To_ManagedClusterAADProfile(&aadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAADProfile() to populate field AadProfile") + } + destination.AadProfile = &aadProfile + } else { + destination.AadProfile = nil + } + + // AddonProfiles + if cluster.AddonProfiles != nil { + addonProfileMap := make(map[string]v20231001s.ManagedClusterAddonProfile, len(cluster.AddonProfiles)) + for addonProfileKey, addonProfileValue := range cluster.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile v20231001s.ManagedClusterAddonProfile + err := addonProfileValue.AssignProperties_To_ManagedClusterAddonProfile(&addonProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAddonProfile() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + destination.AddonProfiles = addonProfileMap + } else { + destination.AddonProfiles = nil + } + + // AgentPoolProfiles + if cluster.AgentPoolProfiles != nil { + agentPoolProfileList := make([]v20231001s.ManagedClusterAgentPoolProfile, len(cluster.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range cluster.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile v20231001s.ManagedClusterAgentPoolProfile + err := agentPoolProfileItem.AssignProperties_To_ManagedClusterAgentPoolProfile(&agentPoolProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAgentPoolProfile() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + destination.AgentPoolProfiles = agentPoolProfileList + } else { + destination.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if cluster.ApiServerAccessProfile != nil { + var apiServerAccessProfile v20231001s.ManagedClusterAPIServerAccessProfile + err := cluster.ApiServerAccessProfile.AssignProperties_To_ManagedClusterAPIServerAccessProfile(&apiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAPIServerAccessProfile() to populate field ApiServerAccessProfile") + } + destination.ApiServerAccessProfile = &apiServerAccessProfile + } else { + destination.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if cluster.AutoScalerProfile != nil { + var autoScalerProfile v20231001s.ManagedClusterProperties_AutoScalerProfile + err := cluster.AutoScalerProfile.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(&autoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterProperties_AutoScalerProfile() to populate field AutoScalerProfile") + } + destination.AutoScalerProfile = &autoScalerProfile + } else { + destination.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if cluster.AutoUpgradeProfile != nil { + var autoUpgradeProfile v20231001s.ManagedClusterAutoUpgradeProfile + err := cluster.AutoUpgradeProfile.AssignProperties_To_ManagedClusterAutoUpgradeProfile(&autoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAutoUpgradeProfile() to populate field AutoUpgradeProfile") + } + destination.AutoUpgradeProfile = &autoUpgradeProfile + } else { + destination.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if cluster.AzureMonitorProfile != nil { + var azureMonitorProfile v20231001s.ManagedClusterAzureMonitorProfile + err := cluster.AzureMonitorProfile.AssignProperties_To_ManagedClusterAzureMonitorProfile(&azureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfile() to populate field AzureMonitorProfile") + } + destination.AzureMonitorProfile = &azureMonitorProfile + } else { + destination.AzureMonitorProfile = nil + } + + // AzureName + destination.AzureName = cluster.AzureName + + // DisableLocalAccounts + if cluster.DisableLocalAccounts != nil { + disableLocalAccount := *cluster.DisableLocalAccounts + destination.DisableLocalAccounts = &disableLocalAccount + } else { + destination.DisableLocalAccounts = nil + } + + // DiskEncryptionSetReference + if cluster.DiskEncryptionSetReference != nil { + diskEncryptionSetReference := cluster.DiskEncryptionSetReference.Copy() + destination.DiskEncryptionSetReference = &diskEncryptionSetReference + } else { + destination.DiskEncryptionSetReference = nil + } + + // DnsPrefix + destination.DnsPrefix = genruntime.ClonePointerToString(cluster.DnsPrefix) + + // EnablePodSecurityPolicy + if cluster.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *cluster.EnablePodSecurityPolicy + destination.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + destination.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if cluster.EnableRBAC != nil { + enableRBAC := *cluster.EnableRBAC + destination.EnableRBAC = &enableRBAC + } else { + destination.EnableRBAC = nil + } + + // ExtendedLocation + if cluster.ExtendedLocation != nil { + var extendedLocation v20231001s.ExtendedLocation + err := cluster.ExtendedLocation.AssignProperties_To_ExtendedLocation(&extendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ExtendedLocation() to populate field ExtendedLocation") + } + destination.ExtendedLocation = &extendedLocation + } else { + destination.ExtendedLocation = nil + } + + // FqdnSubdomain + destination.FqdnSubdomain = genruntime.ClonePointerToString(cluster.FqdnSubdomain) + + // HttpProxyConfig + if cluster.HttpProxyConfig != nil { + var httpProxyConfig v20231001s.ManagedClusterHTTPProxyConfig + err := cluster.HttpProxyConfig.AssignProperties_To_ManagedClusterHTTPProxyConfig(&httpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterHTTPProxyConfig() to populate field HttpProxyConfig") + } + destination.HttpProxyConfig = &httpProxyConfig + } else { + destination.HttpProxyConfig = nil + } + + // Identity + if cluster.Identity != nil { + var identity v20231001s.ManagedClusterIdentity + err := cluster.Identity.AssignProperties_To_ManagedClusterIdentity(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // IdentityProfile + if cluster.IdentityProfile != nil { + identityProfileMap := make(map[string]v20231001s.UserAssignedIdentity, len(cluster.IdentityProfile)) + for identityProfileKey, identityProfileValue := range cluster.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile v20231001s.UserAssignedIdentity + err := identityProfileValue.AssignProperties_To_UserAssignedIdentity(&identityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + destination.IdentityProfile = identityProfileMap + } else { + destination.IdentityProfile = nil + } + + // KubernetesVersion + destination.KubernetesVersion = genruntime.ClonePointerToString(cluster.KubernetesVersion) + + // LinuxProfile + if cluster.LinuxProfile != nil { + var linuxProfile v20231001s.ContainerServiceLinuxProfile + err := cluster.LinuxProfile.AssignProperties_To_ContainerServiceLinuxProfile(&linuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceLinuxProfile() to populate field LinuxProfile") + } + destination.LinuxProfile = &linuxProfile + } else { + destination.LinuxProfile = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(cluster.Location) + + // NetworkProfile + if cluster.NetworkProfile != nil { + var networkProfile v20231001s.ContainerServiceNetworkProfile + err := cluster.NetworkProfile.AssignProperties_To_ContainerServiceNetworkProfile(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceNetworkProfile() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeResourceGroup + destination.NodeResourceGroup = genruntime.ClonePointerToString(cluster.NodeResourceGroup) + + // OidcIssuerProfile + if cluster.OidcIssuerProfile != nil { + var oidcIssuerProfile v20231001s.ManagedClusterOIDCIssuerProfile + err := cluster.OidcIssuerProfile.AssignProperties_To_ManagedClusterOIDCIssuerProfile(&oidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOIDCIssuerProfile() to populate field OidcIssuerProfile") + } + destination.OidcIssuerProfile = &oidcIssuerProfile + } else { + destination.OidcIssuerProfile = nil + } + + // OperatorSpec + if cluster.OperatorSpec != nil { + var operatorSpec v20231001s.ManagedClusterOperatorSpec + err := cluster.OperatorSpec.AssignProperties_To_ManagedClusterOperatorSpec(&operatorSpec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorSpec() to populate field OperatorSpec") + } + destination.OperatorSpec = &operatorSpec + } else { + destination.OperatorSpec = nil + } + + // OriginalVersion + destination.OriginalVersion = cluster.OriginalVersion + + // Owner + if cluster.Owner != nil { + owner := cluster.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // PodIdentityProfile + if cluster.PodIdentityProfile != nil { + var podIdentityProfile v20231001s.ManagedClusterPodIdentityProfile + err := cluster.PodIdentityProfile.AssignProperties_To_ManagedClusterPodIdentityProfile(&podIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProfile() to populate field PodIdentityProfile") + } + destination.PodIdentityProfile = &podIdentityProfile + } else { + destination.PodIdentityProfile = nil + } + + // PrivateLinkResources + if cluster.PrivateLinkResources != nil { + privateLinkResourceList := make([]v20231001s.PrivateLinkResource, len(cluster.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range cluster.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource v20231001s.PrivateLinkResource + err := privateLinkResourceItem.AssignProperties_To_PrivateLinkResource(&privateLinkResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateLinkResource() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + destination.PrivateLinkResources = privateLinkResourceList + } else { + destination.PrivateLinkResources = nil + } + + // PublicNetworkAccess + destination.PublicNetworkAccess = genruntime.ClonePointerToString(cluster.PublicNetworkAccess) + + // SecurityProfile + if cluster.SecurityProfile != nil { + var securityProfile v20231001s.ManagedClusterSecurityProfile + err := cluster.SecurityProfile.AssignProperties_To_ManagedClusterSecurityProfile(&securityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfile() to populate field SecurityProfile") + } + destination.SecurityProfile = &securityProfile + } else { + destination.SecurityProfile = nil + } + + // ServiceMeshProfile + if propertyBag.Contains("ServiceMeshProfile") { + var serviceMeshProfileFromBag v20230201sc.ServiceMeshProfile + err := propertyBag.Pull("ServiceMeshProfile", &serviceMeshProfileFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'ServiceMeshProfile' from propertyBag") + } + + var serviceMeshProfile v20231001s.ServiceMeshProfile + err = serviceMeshProfileFromBag.AssignProperties_To_ServiceMeshProfile(&serviceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ServiceMeshProfile() to populate field ServiceMeshProfile") + } + destination.ServiceMeshProfile = &serviceMeshProfile + } else { + destination.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if cluster.ServicePrincipalProfile != nil { + var servicePrincipalProfile v20231001s.ManagedClusterServicePrincipalProfile + err := cluster.ServicePrincipalProfile.AssignProperties_To_ManagedClusterServicePrincipalProfile(&servicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterServicePrincipalProfile() to populate field ServicePrincipalProfile") + } + destination.ServicePrincipalProfile = &servicePrincipalProfile + } else { + destination.ServicePrincipalProfile = nil + } + + // Sku + if cluster.Sku != nil { + var sku v20231001s.ManagedClusterSKU + err := cluster.Sku.AssignProperties_To_ManagedClusterSKU(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSKU() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // StorageProfile + if cluster.StorageProfile != nil { + var storageProfile v20231001s.ManagedClusterStorageProfile + err := cluster.StorageProfile.AssignProperties_To_ManagedClusterStorageProfile(&storageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfile() to populate field StorageProfile") + } + destination.StorageProfile = &storageProfile + } else { + destination.StorageProfile = nil + } + + // SupportPlan + if propertyBag.Contains("SupportPlan") { + var supportPlan string + err := propertyBag.Pull("SupportPlan", &supportPlan) + if err != nil { + return errors.Wrap(err, "pulling 'SupportPlan' from propertyBag") + } + + destination.SupportPlan = &supportPlan + } else { + destination.SupportPlan = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(cluster.Tags) + + // UpgradeSettings + if propertyBag.Contains("UpgradeSettings") { + var upgradeSettingFromBag v20230201sc.ClusterUpgradeSettings + err := propertyBag.Pull("UpgradeSettings", &upgradeSettingFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'UpgradeSettings' from propertyBag") + } + + var upgradeSetting v20231001s.ClusterUpgradeSettings + err = upgradeSettingFromBag.AssignProperties_To_ClusterUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ClusterUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // WindowsProfile + if cluster.WindowsProfile != nil { + var windowsProfile v20231001s.ManagedClusterWindowsProfile + err := cluster.WindowsProfile.AssignProperties_To_ManagedClusterWindowsProfile(&windowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWindowsProfile() to populate field WindowsProfile") + } + destination.WindowsProfile = &windowsProfile + } else { + destination.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if cluster.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile v20231001s.ManagedClusterWorkloadAutoScalerProfile + err := cluster.WorkloadAutoScalerProfile.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(&workloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile() to populate field WorkloadAutoScalerProfile") + } + destination.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + destination.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedCluster_Spec interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster_Spec); ok { + err := augmentedCluster.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedCluster_STATUS +// Managed cluster. +type ManagedCluster_STATUS struct { + AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` + AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` + AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` + AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` + DnsPrefix *string `json:"dnsPrefix,omitempty"` + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + EnableRBAC *bool `json:"enableRBAC,omitempty"` + ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` + Fqdn *string `json:"fqdn,omitempty"` + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` + Id *string `json:"id,omitempty"` + Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` + IdentityProfile map[string]UserAssignedIdentity_STATUS `json:"identityProfile,omitempty"` + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + LinuxProfile *ContainerServiceLinuxProfile_STATUS `json:"linuxProfile,omitempty"` + Location *string `json:"location,omitempty"` + MaxAgentPools *int `json:"maxAgentPools,omitempty"` + Name *string `json:"name,omitempty"` + NetworkProfile *ContainerServiceNetworkProfile_STATUS `json:"networkProfile,omitempty"` + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_STATUS `json:"oidcIssuerProfile,omitempty"` + PodIdentityProfile *ManagedClusterPodIdentityProfile_STATUS `json:"podIdentityProfile,omitempty"` + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + PrivateFQDN *string `json:"privateFQDN,omitempty"` + PrivateLinkResources []PrivateLinkResource_STATUS `json:"privateLinkResources,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + SecurityProfile *ManagedClusterSecurityProfile_STATUS `json:"securityProfile,omitempty"` + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_STATUS `json:"servicePrincipalProfile,omitempty"` + Sku *ManagedClusterSKU_STATUS `json:"sku,omitempty"` + StorageProfile *ManagedClusterStorageProfile_STATUS `json:"storageProfile,omitempty"` + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + WindowsProfile *ManagedClusterWindowsProfile_STATUS `json:"windowsProfile,omitempty"` + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_STATUS `json:"workloadAutoScalerProfile,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ManagedCluster_STATUS{} + +// ConvertStatusFrom populates our ManagedCluster_STATUS from the provided source +func (cluster *ManagedCluster_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20231001s.ManagedCluster_STATUS) + if ok { + // Populate our instance from source + return cluster.AssignProperties_From_ManagedCluster_STATUS(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedCluster_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = cluster.AssignProperties_From_ManagedCluster_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20231001s.ManagedCluster_STATUS) + if ok { + // Populate destination from our instance + return cluster.AssignProperties_To_ManagedCluster_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedCluster_STATUS{} + err := cluster.AssignProperties_To_ManagedCluster_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } + + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } + + return nil +} + +// AssignProperties_From_ManagedCluster_STATUS populates our ManagedCluster_STATUS from the provided source ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) AssignProperties_From_ManagedCluster_STATUS(source *v20231001s.ManagedCluster_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AadProfile + if source.AadProfile != nil { + var aadProfile ManagedClusterAADProfile_STATUS + err := aadProfile.AssignProperties_From_ManagedClusterAADProfile_STATUS(source.AadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAADProfile_STATUS() to populate field AadProfile") + } + cluster.AadProfile = &aadProfile + } else { + cluster.AadProfile = nil + } + + // AddonProfiles + if source.AddonProfiles != nil { + addonProfileMap := make(map[string]ManagedClusterAddonProfile_STATUS, len(source.AddonProfiles)) + for addonProfileKey, addonProfileValue := range source.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile ManagedClusterAddonProfile_STATUS + err := addonProfile.AssignProperties_From_ManagedClusterAddonProfile_STATUS(&addonProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + cluster.AddonProfiles = addonProfileMap + } else { + cluster.AddonProfiles = nil + } + + // AgentPoolProfiles + if source.AgentPoolProfiles != nil { + agentPoolProfileList := make([]ManagedClusterAgentPoolProfile_STATUS, len(source.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile ManagedClusterAgentPoolProfile_STATUS + err := agentPoolProfile.AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfileItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + cluster.AgentPoolProfiles = agentPoolProfileList + } else { + cluster.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if source.ApiServerAccessProfile != nil { + var apiServerAccessProfile ManagedClusterAPIServerAccessProfile_STATUS + err := apiServerAccessProfile.AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(source.ApiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") + } + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } else { + cluster.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if source.AutoScalerProfile != nil { + var autoScalerProfile ManagedClusterProperties_AutoScalerProfile_STATUS + err := autoScalerProfile.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source.AutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") + } + cluster.AutoScalerProfile = &autoScalerProfile + } else { + cluster.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if source.AutoUpgradeProfile != nil { + var autoUpgradeProfile ManagedClusterAutoUpgradeProfile_STATUS + err := autoUpgradeProfile.AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(source.AutoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") + } + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } else { + cluster.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if source.AzureMonitorProfile != nil { + var azureMonitorProfile ManagedClusterAzureMonitorProfile_STATUS + err := azureMonitorProfile.AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(source.AzureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") + } + cluster.AzureMonitorProfile = &azureMonitorProfile + } else { + cluster.AzureMonitorProfile = nil + } + + // AzurePortalFQDN + cluster.AzurePortalFQDN = genruntime.ClonePointerToString(source.AzurePortalFQDN) + + // Conditions + cluster.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // CurrentKubernetesVersion + cluster.CurrentKubernetesVersion = genruntime.ClonePointerToString(source.CurrentKubernetesVersion) + + // DisableLocalAccounts + if source.DisableLocalAccounts != nil { + disableLocalAccount := *source.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccount + } else { + cluster.DisableLocalAccounts = nil + } + + // DiskEncryptionSetID + cluster.DiskEncryptionSetID = genruntime.ClonePointerToString(source.DiskEncryptionSetID) + + // DnsPrefix + cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) + + // EnablePodSecurityPolicy + if source.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *source.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + cluster.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if source.EnableRBAC != nil { + enableRBAC := *source.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } else { + cluster.EnableRBAC = nil + } + + // ExtendedLocation + if source.ExtendedLocation != nil { + var extendedLocation ExtendedLocation_STATUS + err := extendedLocation.AssignProperties_From_ExtendedLocation_STATUS(source.ExtendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ExtendedLocation_STATUS() to populate field ExtendedLocation") + } + cluster.ExtendedLocation = &extendedLocation + } else { + cluster.ExtendedLocation = nil + } + + // Fqdn + cluster.Fqdn = genruntime.ClonePointerToString(source.Fqdn) + + // FqdnSubdomain + cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) + + // HttpProxyConfig + if source.HttpProxyConfig != nil { + var httpProxyConfig ManagedClusterHTTPProxyConfig_STATUS + err := httpProxyConfig.AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(source.HttpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") + } + cluster.HttpProxyConfig = &httpProxyConfig + } else { + cluster.HttpProxyConfig = nil + } + + // Id + cluster.Id = genruntime.ClonePointerToString(source.Id) + + // Identity + if source.Identity != nil { + var identity ManagedClusterIdentity_STATUS + err := identity.AssignProperties_From_ManagedClusterIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity_STATUS() to populate field Identity") + } + cluster.Identity = &identity + } else { + cluster.Identity = nil + } + + // IdentityProfile + if source.IdentityProfile != nil { + identityProfileMap := make(map[string]UserAssignedIdentity_STATUS, len(source.IdentityProfile)) + for identityProfileKey, identityProfileValue := range source.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile UserAssignedIdentity_STATUS + err := identityProfile.AssignProperties_From_UserAssignedIdentity_STATUS(&identityProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + cluster.IdentityProfile = identityProfileMap + } else { + cluster.IdentityProfile = nil + } + + // KubernetesVersion + cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + + // LinuxProfile + if source.LinuxProfile != nil { + var linuxProfile ContainerServiceLinuxProfile_STATUS + err := linuxProfile.AssignProperties_From_ContainerServiceLinuxProfile_STATUS(source.LinuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") + } + cluster.LinuxProfile = &linuxProfile + } else { + cluster.LinuxProfile = nil + } + + // Location + cluster.Location = genruntime.ClonePointerToString(source.Location) + + // MaxAgentPools + cluster.MaxAgentPools = genruntime.ClonePointerToInt(source.MaxAgentPools) + + // Name + cluster.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile ContainerServiceNetworkProfile_STATUS + err := networkProfile.AssignProperties_From_ContainerServiceNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") + } + cluster.NetworkProfile = &networkProfile + } else { + cluster.NetworkProfile = nil + } + + // NodeResourceGroup + cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + + // OidcIssuerProfile + if source.OidcIssuerProfile != nil { + var oidcIssuerProfile ManagedClusterOIDCIssuerProfile_STATUS + err := oidcIssuerProfile.AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(source.OidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") + } + cluster.OidcIssuerProfile = &oidcIssuerProfile + } else { + cluster.OidcIssuerProfile = nil + } + + // PodIdentityProfile + if source.PodIdentityProfile != nil { + var podIdentityProfile ManagedClusterPodIdentityProfile_STATUS + err := podIdentityProfile.AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(source.PodIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") + } + cluster.PodIdentityProfile = &podIdentityProfile + } else { + cluster.PodIdentityProfile = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + cluster.PowerState = &powerState + } else { + cluster.PowerState = nil + } + + // PrivateFQDN + cluster.PrivateFQDN = genruntime.ClonePointerToString(source.PrivateFQDN) + + // PrivateLinkResources + if source.PrivateLinkResources != nil { + privateLinkResourceList := make([]PrivateLinkResource_STATUS, len(source.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource PrivateLinkResource_STATUS + err := privateLinkResource.AssignProperties_From_PrivateLinkResource_STATUS(&privateLinkResourceItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + cluster.PrivateLinkResources = privateLinkResourceList + } else { + cluster.PrivateLinkResources = nil + } + + // ProvisioningState + cluster.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // PublicNetworkAccess + cluster.PublicNetworkAccess = genruntime.ClonePointerToString(source.PublicNetworkAccess) + + // ResourceUID + if source.ResourceUID != nil { + propertyBag.Add("ResourceUID", *source.ResourceUID) + } else { + propertyBag.Remove("ResourceUID") + } + + // SecurityProfile + if source.SecurityProfile != nil { + var securityProfile ManagedClusterSecurityProfile_STATUS + err := securityProfile.AssignProperties_From_ManagedClusterSecurityProfile_STATUS(source.SecurityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") + } + cluster.SecurityProfile = &securityProfile + } else { + cluster.SecurityProfile = nil + } + + // ServiceMeshProfile + if source.ServiceMeshProfile != nil { + var serviceMeshProfile v20230201sc.ServiceMeshProfile_STATUS + err := serviceMeshProfile.AssignProperties_From_ServiceMeshProfile_STATUS(source.ServiceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ServiceMeshProfile_STATUS() to populate field ServiceMeshProfile") + } + propertyBag.Add("ServiceMeshProfile", serviceMeshProfile) + } else { + propertyBag.Remove("ServiceMeshProfile") + } + + // ServicePrincipalProfile + if source.ServicePrincipalProfile != nil { + var servicePrincipalProfile ManagedClusterServicePrincipalProfile_STATUS + err := servicePrincipalProfile.AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(source.ServicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") + } + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } else { + cluster.ServicePrincipalProfile = nil + } + + // Sku + if source.Sku != nil { + var sku ManagedClusterSKU_STATUS + err := sku.AssignProperties_From_ManagedClusterSKU_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSKU_STATUS() to populate field Sku") + } + cluster.Sku = &sku + } else { + cluster.Sku = nil + } + + // StorageProfile + if source.StorageProfile != nil { + var storageProfile ManagedClusterStorageProfile_STATUS + err := storageProfile.AssignProperties_From_ManagedClusterStorageProfile_STATUS(source.StorageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") + } + cluster.StorageProfile = &storageProfile + } else { + cluster.StorageProfile = nil + } + + // SupportPlan + if source.SupportPlan != nil { + propertyBag.Add("SupportPlan", *source.SupportPlan) + } else { + propertyBag.Remove("SupportPlan") + } + + // SystemData + if source.SystemData != nil { + var systemDatum SystemData_STATUS + err := systemDatum.AssignProperties_From_SystemData_STATUS(source.SystemData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SystemData_STATUS() to populate field SystemData") + } + cluster.SystemData = &systemDatum + } else { + cluster.SystemData = nil + } + + // Tags + cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + cluster.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting v20230201sc.ClusterUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_ClusterUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ClusterUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + propertyBag.Add("UpgradeSettings", upgradeSetting) + } else { + propertyBag.Remove("UpgradeSettings") + } + + // WindowsProfile + if source.WindowsProfile != nil { + var windowsProfile ManagedClusterWindowsProfile_STATUS + err := windowsProfile.AssignProperties_From_ManagedClusterWindowsProfile_STATUS(source.WindowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") + } + cluster.WindowsProfile = &windowsProfile + } else { + cluster.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if source.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile_STATUS + err := workloadAutoScalerProfile.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source.WorkloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") + } + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + cluster.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + cluster.PropertyBag = propertyBag + } else { + cluster.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedCluster_STATUS interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster_STATUS); ok { + err := augmentedCluster.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster_STATUS populates the provided destination ManagedCluster_STATUS from our ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) AssignProperties_To_ManagedCluster_STATUS(destination *v20231001s.ManagedCluster_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(cluster.PropertyBag) + + // AadProfile + if cluster.AadProfile != nil { + var aadProfile v20231001s.ManagedClusterAADProfile_STATUS + err := cluster.AadProfile.AssignProperties_To_ManagedClusterAADProfile_STATUS(&aadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAADProfile_STATUS() to populate field AadProfile") + } + destination.AadProfile = &aadProfile + } else { + destination.AadProfile = nil + } + + // AddonProfiles + if cluster.AddonProfiles != nil { + addonProfileMap := make(map[string]v20231001s.ManagedClusterAddonProfile_STATUS, len(cluster.AddonProfiles)) + for addonProfileKey, addonProfileValue := range cluster.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile v20231001s.ManagedClusterAddonProfile_STATUS + err := addonProfileValue.AssignProperties_To_ManagedClusterAddonProfile_STATUS(&addonProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + destination.AddonProfiles = addonProfileMap + } else { + destination.AddonProfiles = nil + } + + // AgentPoolProfiles + if cluster.AgentPoolProfiles != nil { + agentPoolProfileList := make([]v20231001s.ManagedClusterAgentPoolProfile_STATUS, len(cluster.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range cluster.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile v20231001s.ManagedClusterAgentPoolProfile_STATUS + err := agentPoolProfileItem.AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + destination.AgentPoolProfiles = agentPoolProfileList + } else { + destination.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if cluster.ApiServerAccessProfile != nil { + var apiServerAccessProfile v20231001s.ManagedClusterAPIServerAccessProfile_STATUS + err := cluster.ApiServerAccessProfile.AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(&apiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") + } + destination.ApiServerAccessProfile = &apiServerAccessProfile + } else { + destination.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if cluster.AutoScalerProfile != nil { + var autoScalerProfile v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS + err := cluster.AutoScalerProfile.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(&autoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") + } + destination.AutoScalerProfile = &autoScalerProfile + } else { + destination.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if cluster.AutoUpgradeProfile != nil { + var autoUpgradeProfile v20231001s.ManagedClusterAutoUpgradeProfile_STATUS + err := cluster.AutoUpgradeProfile.AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(&autoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") + } + destination.AutoUpgradeProfile = &autoUpgradeProfile + } else { + destination.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if cluster.AzureMonitorProfile != nil { + var azureMonitorProfile v20231001s.ManagedClusterAzureMonitorProfile_STATUS + err := cluster.AzureMonitorProfile.AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(&azureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") + } + destination.AzureMonitorProfile = &azureMonitorProfile + } else { + destination.AzureMonitorProfile = nil + } + + // AzurePortalFQDN + destination.AzurePortalFQDN = genruntime.ClonePointerToString(cluster.AzurePortalFQDN) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(cluster.Conditions) + + // CurrentKubernetesVersion + destination.CurrentKubernetesVersion = genruntime.ClonePointerToString(cluster.CurrentKubernetesVersion) + + // DisableLocalAccounts + if cluster.DisableLocalAccounts != nil { + disableLocalAccount := *cluster.DisableLocalAccounts + destination.DisableLocalAccounts = &disableLocalAccount + } else { + destination.DisableLocalAccounts = nil + } + + // DiskEncryptionSetID + destination.DiskEncryptionSetID = genruntime.ClonePointerToString(cluster.DiskEncryptionSetID) + + // DnsPrefix + destination.DnsPrefix = genruntime.ClonePointerToString(cluster.DnsPrefix) + + // EnablePodSecurityPolicy + if cluster.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *cluster.EnablePodSecurityPolicy + destination.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + destination.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if cluster.EnableRBAC != nil { + enableRBAC := *cluster.EnableRBAC + destination.EnableRBAC = &enableRBAC + } else { + destination.EnableRBAC = nil + } + + // ExtendedLocation + if cluster.ExtendedLocation != nil { + var extendedLocation v20231001s.ExtendedLocation_STATUS + err := cluster.ExtendedLocation.AssignProperties_To_ExtendedLocation_STATUS(&extendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ExtendedLocation_STATUS() to populate field ExtendedLocation") + } + destination.ExtendedLocation = &extendedLocation + } else { + destination.ExtendedLocation = nil + } + + // Fqdn + destination.Fqdn = genruntime.ClonePointerToString(cluster.Fqdn) + + // FqdnSubdomain + destination.FqdnSubdomain = genruntime.ClonePointerToString(cluster.FqdnSubdomain) + + // HttpProxyConfig + if cluster.HttpProxyConfig != nil { + var httpProxyConfig v20231001s.ManagedClusterHTTPProxyConfig_STATUS + err := cluster.HttpProxyConfig.AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(&httpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") + } + destination.HttpProxyConfig = &httpProxyConfig + } else { + destination.HttpProxyConfig = nil + } + + // Id + destination.Id = genruntime.ClonePointerToString(cluster.Id) + + // Identity + if cluster.Identity != nil { + var identity v20231001s.ManagedClusterIdentity_STATUS + err := cluster.Identity.AssignProperties_To_ManagedClusterIdentity_STATUS(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // IdentityProfile + if cluster.IdentityProfile != nil { + identityProfileMap := make(map[string]v20231001s.UserAssignedIdentity_STATUS, len(cluster.IdentityProfile)) + for identityProfileKey, identityProfileValue := range cluster.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile v20231001s.UserAssignedIdentity_STATUS + err := identityProfileValue.AssignProperties_To_UserAssignedIdentity_STATUS(&identityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + destination.IdentityProfile = identityProfileMap + } else { + destination.IdentityProfile = nil + } + + // KubernetesVersion + destination.KubernetesVersion = genruntime.ClonePointerToString(cluster.KubernetesVersion) + + // LinuxProfile + if cluster.LinuxProfile != nil { + var linuxProfile v20231001s.ContainerServiceLinuxProfile_STATUS + err := cluster.LinuxProfile.AssignProperties_To_ContainerServiceLinuxProfile_STATUS(&linuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") + } + destination.LinuxProfile = &linuxProfile + } else { + destination.LinuxProfile = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(cluster.Location) + + // MaxAgentPools + destination.MaxAgentPools = genruntime.ClonePointerToInt(cluster.MaxAgentPools) + + // Name + destination.Name = genruntime.ClonePointerToString(cluster.Name) + + // NetworkProfile + if cluster.NetworkProfile != nil { + var networkProfile v20231001s.ContainerServiceNetworkProfile_STATUS + err := cluster.NetworkProfile.AssignProperties_To_ContainerServiceNetworkProfile_STATUS(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeResourceGroup + destination.NodeResourceGroup = genruntime.ClonePointerToString(cluster.NodeResourceGroup) + + // OidcIssuerProfile + if cluster.OidcIssuerProfile != nil { + var oidcIssuerProfile v20231001s.ManagedClusterOIDCIssuerProfile_STATUS + err := cluster.OidcIssuerProfile.AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(&oidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") + } + destination.OidcIssuerProfile = &oidcIssuerProfile + } else { + destination.OidcIssuerProfile = nil + } + + // PodIdentityProfile + if cluster.PodIdentityProfile != nil { + var podIdentityProfile v20231001s.ManagedClusterPodIdentityProfile_STATUS + err := cluster.PodIdentityProfile.AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(&podIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") + } + destination.PodIdentityProfile = &podIdentityProfile + } else { + destination.PodIdentityProfile = nil + } + + // PowerState + if cluster.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := cluster.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // PrivateFQDN + destination.PrivateFQDN = genruntime.ClonePointerToString(cluster.PrivateFQDN) + + // PrivateLinkResources + if cluster.PrivateLinkResources != nil { + privateLinkResourceList := make([]v20231001s.PrivateLinkResource_STATUS, len(cluster.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range cluster.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource v20231001s.PrivateLinkResource_STATUS + err := privateLinkResourceItem.AssignProperties_To_PrivateLinkResource_STATUS(&privateLinkResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + destination.PrivateLinkResources = privateLinkResourceList + } else { + destination.PrivateLinkResources = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(cluster.ProvisioningState) + + // PublicNetworkAccess + destination.PublicNetworkAccess = genruntime.ClonePointerToString(cluster.PublicNetworkAccess) + + // ResourceUID + if propertyBag.Contains("ResourceUID") { + var resourceUID string + err := propertyBag.Pull("ResourceUID", &resourceUID) + if err != nil { + return errors.Wrap(err, "pulling 'ResourceUID' from propertyBag") + } + + destination.ResourceUID = &resourceUID + } else { + destination.ResourceUID = nil + } + + // SecurityProfile + if cluster.SecurityProfile != nil { + var securityProfile v20231001s.ManagedClusterSecurityProfile_STATUS + err := cluster.SecurityProfile.AssignProperties_To_ManagedClusterSecurityProfile_STATUS(&securityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") + } + destination.SecurityProfile = &securityProfile + } else { + destination.SecurityProfile = nil + } + + // ServiceMeshProfile + if propertyBag.Contains("ServiceMeshProfile") { + var serviceMeshProfileFromBag v20230201sc.ServiceMeshProfile_STATUS + err := propertyBag.Pull("ServiceMeshProfile", &serviceMeshProfileFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'ServiceMeshProfile' from propertyBag") + } + + var serviceMeshProfile v20231001s.ServiceMeshProfile_STATUS + err = serviceMeshProfileFromBag.AssignProperties_To_ServiceMeshProfile_STATUS(&serviceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ServiceMeshProfile_STATUS() to populate field ServiceMeshProfile") + } + destination.ServiceMeshProfile = &serviceMeshProfile + } else { + destination.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if cluster.ServicePrincipalProfile != nil { + var servicePrincipalProfile v20231001s.ManagedClusterServicePrincipalProfile_STATUS + err := cluster.ServicePrincipalProfile.AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(&servicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") + } + destination.ServicePrincipalProfile = &servicePrincipalProfile + } else { + destination.ServicePrincipalProfile = nil + } + + // Sku + if cluster.Sku != nil { + var sku v20231001s.ManagedClusterSKU_STATUS + err := cluster.Sku.AssignProperties_To_ManagedClusterSKU_STATUS(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSKU_STATUS() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // StorageProfile + if cluster.StorageProfile != nil { + var storageProfile v20231001s.ManagedClusterStorageProfile_STATUS + err := cluster.StorageProfile.AssignProperties_To_ManagedClusterStorageProfile_STATUS(&storageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") + } + destination.StorageProfile = &storageProfile + } else { + destination.StorageProfile = nil + } + + // SupportPlan + if propertyBag.Contains("SupportPlan") { + var supportPlan string + err := propertyBag.Pull("SupportPlan", &supportPlan) + if err != nil { + return errors.Wrap(err, "pulling 'SupportPlan' from propertyBag") + } + + destination.SupportPlan = &supportPlan + } else { + destination.SupportPlan = nil + } + + // SystemData + if cluster.SystemData != nil { + var systemDatum v20231001s.SystemData_STATUS + err := cluster.SystemData.AssignProperties_To_SystemData_STATUS(&systemDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SystemData_STATUS() to populate field SystemData") + } + destination.SystemData = &systemDatum + } else { + destination.SystemData = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(cluster.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(cluster.Type) + + // UpgradeSettings + if propertyBag.Contains("UpgradeSettings") { + var upgradeSettingFromBag v20230201sc.ClusterUpgradeSettings_STATUS + err := propertyBag.Pull("UpgradeSettings", &upgradeSettingFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'UpgradeSettings' from propertyBag") + } + + var upgradeSetting v20231001s.ClusterUpgradeSettings_STATUS + err = upgradeSettingFromBag.AssignProperties_To_ClusterUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ClusterUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // WindowsProfile + if cluster.WindowsProfile != nil { + var windowsProfile v20231001s.ManagedClusterWindowsProfile_STATUS + err := cluster.WindowsProfile.AssignProperties_To_ManagedClusterWindowsProfile_STATUS(&windowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") + } + destination.WindowsProfile = &windowsProfile + } else { + destination.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if cluster.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS + err := cluster.WorkloadAutoScalerProfile.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(&workloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") + } + destination.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + destination.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedCluster_STATUS interface (if implemented) to customize the conversion + var clusterAsAny any = cluster + if augmentedCluster, ok := clusterAsAny.(augmentConversionForManagedCluster_STATUS); ok { + err := augmentedCluster.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForManagedCluster_Spec interface { + AssignPropertiesFrom(src *v20231001s.ManagedCluster_Spec) error + AssignPropertiesTo(dst *v20231001s.ManagedCluster_Spec) error +} + +type augmentConversionForManagedCluster_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedCluster_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedCluster_STATUS) error +} + +// Storage version of v1api20230201.ContainerServiceLinuxProfile +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile struct { + AdminUsername *string `json:"adminUsername,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Ssh *ContainerServiceSshConfiguration `json:"ssh,omitempty"` +} + +// AssignProperties_From_ContainerServiceLinuxProfile populates our ContainerServiceLinuxProfile from the provided source ContainerServiceLinuxProfile +func (profile *ContainerServiceLinuxProfile) AssignProperties_From_ContainerServiceLinuxProfile(source *v20231001s.ContainerServiceLinuxProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // Ssh + if source.Ssh != nil { + var ssh ContainerServiceSshConfiguration + err := ssh.AssignProperties_From_ContainerServiceSshConfiguration(source.Ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshConfiguration() to populate field Ssh") + } + profile.Ssh = &ssh + } else { + profile.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceLinuxProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceLinuxProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceLinuxProfile populates the provided destination ContainerServiceLinuxProfile from our ContainerServiceLinuxProfile +func (profile *ContainerServiceLinuxProfile) AssignProperties_To_ContainerServiceLinuxProfile(destination *v20231001s.ContainerServiceLinuxProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // Ssh + if profile.Ssh != nil { + var ssh v20231001s.ContainerServiceSshConfiguration + err := profile.Ssh.AssignProperties_To_ContainerServiceSshConfiguration(&ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshConfiguration() to populate field Ssh") + } + destination.Ssh = &ssh + } else { + destination.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceLinuxProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceLinuxProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ContainerServiceLinuxProfile_STATUS +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile_STATUS struct { + AdminUsername *string `json:"adminUsername,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Ssh *ContainerServiceSshConfiguration_STATUS `json:"ssh,omitempty"` +} + +// AssignProperties_From_ContainerServiceLinuxProfile_STATUS populates our ContainerServiceLinuxProfile_STATUS from the provided source ContainerServiceLinuxProfile_STATUS +func (profile *ContainerServiceLinuxProfile_STATUS) AssignProperties_From_ContainerServiceLinuxProfile_STATUS(source *v20231001s.ContainerServiceLinuxProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // Ssh + if source.Ssh != nil { + var ssh ContainerServiceSshConfiguration_STATUS + err := ssh.AssignProperties_From_ContainerServiceSshConfiguration_STATUS(source.Ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") + } + profile.Ssh = &ssh + } else { + profile.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceLinuxProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceLinuxProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceLinuxProfile_STATUS populates the provided destination ContainerServiceLinuxProfile_STATUS from our ContainerServiceLinuxProfile_STATUS +func (profile *ContainerServiceLinuxProfile_STATUS) AssignProperties_To_ContainerServiceLinuxProfile_STATUS(destination *v20231001s.ContainerServiceLinuxProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // Ssh + if profile.Ssh != nil { + var ssh v20231001s.ContainerServiceSshConfiguration_STATUS + err := profile.Ssh.AssignProperties_To_ContainerServiceSshConfiguration_STATUS(&ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") + } + destination.Ssh = &ssh + } else { + destination.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceLinuxProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceLinuxProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ContainerServiceNetworkProfile +// Profile of network configuration. +type ContainerServiceNetworkProfile struct { + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` + IpFamilies []string `json:"ipFamilies,omitempty"` + LoadBalancerProfile *ManagedClusterLoadBalancerProfile `json:"loadBalancerProfile,omitempty"` + LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` + NatGatewayProfile *ManagedClusterNATGatewayProfile `json:"natGatewayProfile,omitempty"` + NetworkDataplane *string `json:"networkDataplane,omitempty"` + NetworkMode *string `json:"networkMode,omitempty"` + NetworkPlugin *string `json:"networkPlugin,omitempty"` + NetworkPluginMode *string `json:"networkPluginMode,omitempty"` + NetworkPolicy *string `json:"networkPolicy,omitempty"` + OutboundType *string `json:"outboundType,omitempty"` + PodCidr *string `json:"podCidr,omitempty"` + PodCidrs []string `json:"podCidrs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServiceCidr *string `json:"serviceCidr,omitempty"` + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +// AssignProperties_From_ContainerServiceNetworkProfile populates our ContainerServiceNetworkProfile from the provided source ContainerServiceNetworkProfile +func (profile *ContainerServiceNetworkProfile) AssignProperties_From_ContainerServiceNetworkProfile(source *v20231001s.ContainerServiceNetworkProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DnsServiceIP + profile.DnsServiceIP = genruntime.ClonePointerToString(source.DnsServiceIP) + + // DockerBridgeCidr + if propertyBag.Contains("DockerBridgeCidr") { + var dockerBridgeCidr string + err := propertyBag.Pull("DockerBridgeCidr", &dockerBridgeCidr) + if err != nil { + return errors.Wrap(err, "pulling 'DockerBridgeCidr' from propertyBag") + } + + profile.DockerBridgeCidr = &dockerBridgeCidr + } else { + profile.DockerBridgeCidr = nil + } + + // IpFamilies + profile.IpFamilies = genruntime.CloneSliceOfString(source.IpFamilies) + + // LoadBalancerProfile + if source.LoadBalancerProfile != nil { + var loadBalancerProfile ManagedClusterLoadBalancerProfile + err := loadBalancerProfile.AssignProperties_From_ManagedClusterLoadBalancerProfile(source.LoadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile() to populate field LoadBalancerProfile") + } + profile.LoadBalancerProfile = &loadBalancerProfile + } else { + profile.LoadBalancerProfile = nil + } + + // LoadBalancerSku + profile.LoadBalancerSku = genruntime.ClonePointerToString(source.LoadBalancerSku) + + // NatGatewayProfile + if source.NatGatewayProfile != nil { + var natGatewayProfile ManagedClusterNATGatewayProfile + err := natGatewayProfile.AssignProperties_From_ManagedClusterNATGatewayProfile(source.NatGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterNATGatewayProfile() to populate field NatGatewayProfile") + } + profile.NatGatewayProfile = &natGatewayProfile + } else { + profile.NatGatewayProfile = nil + } + + // NetworkDataplane + profile.NetworkDataplane = genruntime.ClonePointerToString(source.NetworkDataplane) + + // NetworkMode + profile.NetworkMode = genruntime.ClonePointerToString(source.NetworkMode) + + // NetworkPlugin + profile.NetworkPlugin = genruntime.ClonePointerToString(source.NetworkPlugin) + + // NetworkPluginMode + profile.NetworkPluginMode = genruntime.ClonePointerToString(source.NetworkPluginMode) + + // NetworkPolicy + profile.NetworkPolicy = genruntime.ClonePointerToString(source.NetworkPolicy) + + // OutboundType + profile.OutboundType = genruntime.ClonePointerToString(source.OutboundType) + + // PodCidr + profile.PodCidr = genruntime.ClonePointerToString(source.PodCidr) + + // PodCidrs + profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) + + // ServiceCidr + profile.ServiceCidr = genruntime.ClonePointerToString(source.ServiceCidr) + + // ServiceCidrs + profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceNetworkProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceNetworkProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceNetworkProfile populates the provided destination ContainerServiceNetworkProfile from our ContainerServiceNetworkProfile +func (profile *ContainerServiceNetworkProfile) AssignProperties_To_ContainerServiceNetworkProfile(destination *v20231001s.ContainerServiceNetworkProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // DnsServiceIP + destination.DnsServiceIP = genruntime.ClonePointerToString(profile.DnsServiceIP) + + // DockerBridgeCidr + if profile.DockerBridgeCidr != nil { + propertyBag.Add("DockerBridgeCidr", *profile.DockerBridgeCidr) + } else { + propertyBag.Remove("DockerBridgeCidr") + } + + // IpFamilies + destination.IpFamilies = genruntime.CloneSliceOfString(profile.IpFamilies) + + // LoadBalancerProfile + if profile.LoadBalancerProfile != nil { + var loadBalancerProfile v20231001s.ManagedClusterLoadBalancerProfile + err := profile.LoadBalancerProfile.AssignProperties_To_ManagedClusterLoadBalancerProfile(&loadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile() to populate field LoadBalancerProfile") + } + destination.LoadBalancerProfile = &loadBalancerProfile + } else { + destination.LoadBalancerProfile = nil + } + + // LoadBalancerSku + destination.LoadBalancerSku = genruntime.ClonePointerToString(profile.LoadBalancerSku) + + // NatGatewayProfile + if profile.NatGatewayProfile != nil { + var natGatewayProfile v20231001s.ManagedClusterNATGatewayProfile + err := profile.NatGatewayProfile.AssignProperties_To_ManagedClusterNATGatewayProfile(&natGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterNATGatewayProfile() to populate field NatGatewayProfile") + } + destination.NatGatewayProfile = &natGatewayProfile + } else { + destination.NatGatewayProfile = nil + } + + // NetworkDataplane + destination.NetworkDataplane = genruntime.ClonePointerToString(profile.NetworkDataplane) + + // NetworkMode + destination.NetworkMode = genruntime.ClonePointerToString(profile.NetworkMode) + + // NetworkPlugin + destination.NetworkPlugin = genruntime.ClonePointerToString(profile.NetworkPlugin) + + // NetworkPluginMode + destination.NetworkPluginMode = genruntime.ClonePointerToString(profile.NetworkPluginMode) + + // NetworkPolicy + destination.NetworkPolicy = genruntime.ClonePointerToString(profile.NetworkPolicy) + + // OutboundType + destination.OutboundType = genruntime.ClonePointerToString(profile.OutboundType) + + // PodCidr + destination.PodCidr = genruntime.ClonePointerToString(profile.PodCidr) + + // PodCidrs + destination.PodCidrs = genruntime.CloneSliceOfString(profile.PodCidrs) + + // ServiceCidr + destination.ServiceCidr = genruntime.ClonePointerToString(profile.ServiceCidr) + + // ServiceCidrs + destination.ServiceCidrs = genruntime.CloneSliceOfString(profile.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceNetworkProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceNetworkProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ContainerServiceNetworkProfile_STATUS +// Profile of network configuration. +type ContainerServiceNetworkProfile_STATUS struct { + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + DockerBridgeCidr *string `json:"dockerBridgeCidr,omitempty"` + IpFamilies []string `json:"ipFamilies,omitempty"` + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` + LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` + NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS `json:"natGatewayProfile,omitempty"` + NetworkDataplane *string `json:"networkDataplane,omitempty"` + NetworkMode *string `json:"networkMode,omitempty"` + NetworkPlugin *string `json:"networkPlugin,omitempty"` + NetworkPluginMode *string `json:"networkPluginMode,omitempty"` + NetworkPolicy *string `json:"networkPolicy,omitempty"` + OutboundType *string `json:"outboundType,omitempty"` + PodCidr *string `json:"podCidr,omitempty"` + PodCidrs []string `json:"podCidrs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServiceCidr *string `json:"serviceCidr,omitempty"` + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +// AssignProperties_From_ContainerServiceNetworkProfile_STATUS populates our ContainerServiceNetworkProfile_STATUS from the provided source ContainerServiceNetworkProfile_STATUS +func (profile *ContainerServiceNetworkProfile_STATUS) AssignProperties_From_ContainerServiceNetworkProfile_STATUS(source *v20231001s.ContainerServiceNetworkProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DnsServiceIP + profile.DnsServiceIP = genruntime.ClonePointerToString(source.DnsServiceIP) + + // DockerBridgeCidr + if propertyBag.Contains("DockerBridgeCidr") { + var dockerBridgeCidr string + err := propertyBag.Pull("DockerBridgeCidr", &dockerBridgeCidr) + if err != nil { + return errors.Wrap(err, "pulling 'DockerBridgeCidr' from propertyBag") + } + + profile.DockerBridgeCidr = &dockerBridgeCidr + } else { + profile.DockerBridgeCidr = nil + } + + // IpFamilies + profile.IpFamilies = genruntime.CloneSliceOfString(source.IpFamilies) + + // LoadBalancerProfile + if source.LoadBalancerProfile != nil { + var loadBalancerProfile ManagedClusterLoadBalancerProfile_STATUS + err := loadBalancerProfile.AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(source.LoadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") + } + profile.LoadBalancerProfile = &loadBalancerProfile + } else { + profile.LoadBalancerProfile = nil + } + + // LoadBalancerSku + profile.LoadBalancerSku = genruntime.ClonePointerToString(source.LoadBalancerSku) + + // NatGatewayProfile + if source.NatGatewayProfile != nil { + var natGatewayProfile ManagedClusterNATGatewayProfile_STATUS + err := natGatewayProfile.AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(source.NatGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") + } + profile.NatGatewayProfile = &natGatewayProfile + } else { + profile.NatGatewayProfile = nil + } + + // NetworkDataplane + profile.NetworkDataplane = genruntime.ClonePointerToString(source.NetworkDataplane) + + // NetworkMode + profile.NetworkMode = genruntime.ClonePointerToString(source.NetworkMode) + + // NetworkPlugin + profile.NetworkPlugin = genruntime.ClonePointerToString(source.NetworkPlugin) + + // NetworkPluginMode + profile.NetworkPluginMode = genruntime.ClonePointerToString(source.NetworkPluginMode) + + // NetworkPolicy + profile.NetworkPolicy = genruntime.ClonePointerToString(source.NetworkPolicy) + + // OutboundType + profile.OutboundType = genruntime.ClonePointerToString(source.OutboundType) + + // PodCidr + profile.PodCidr = genruntime.ClonePointerToString(source.PodCidr) + + // PodCidrs + profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) + + // ServiceCidr + profile.ServiceCidr = genruntime.ClonePointerToString(source.ServiceCidr) + + // ServiceCidrs + profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceNetworkProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceNetworkProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceNetworkProfile_STATUS populates the provided destination ContainerServiceNetworkProfile_STATUS from our ContainerServiceNetworkProfile_STATUS +func (profile *ContainerServiceNetworkProfile_STATUS) AssignProperties_To_ContainerServiceNetworkProfile_STATUS(destination *v20231001s.ContainerServiceNetworkProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // DnsServiceIP + destination.DnsServiceIP = genruntime.ClonePointerToString(profile.DnsServiceIP) + + // DockerBridgeCidr + if profile.DockerBridgeCidr != nil { + propertyBag.Add("DockerBridgeCidr", *profile.DockerBridgeCidr) + } else { + propertyBag.Remove("DockerBridgeCidr") + } + + // IpFamilies + destination.IpFamilies = genruntime.CloneSliceOfString(profile.IpFamilies) + + // LoadBalancerProfile + if profile.LoadBalancerProfile != nil { + var loadBalancerProfile v20231001s.ManagedClusterLoadBalancerProfile_STATUS + err := profile.LoadBalancerProfile.AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(&loadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") + } + destination.LoadBalancerProfile = &loadBalancerProfile + } else { + destination.LoadBalancerProfile = nil + } + + // LoadBalancerSku + destination.LoadBalancerSku = genruntime.ClonePointerToString(profile.LoadBalancerSku) + + // NatGatewayProfile + if profile.NatGatewayProfile != nil { + var natGatewayProfile v20231001s.ManagedClusterNATGatewayProfile_STATUS + err := profile.NatGatewayProfile.AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(&natGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") + } + destination.NatGatewayProfile = &natGatewayProfile + } else { + destination.NatGatewayProfile = nil + } + + // NetworkDataplane + destination.NetworkDataplane = genruntime.ClonePointerToString(profile.NetworkDataplane) + + // NetworkMode + destination.NetworkMode = genruntime.ClonePointerToString(profile.NetworkMode) + + // NetworkPlugin + destination.NetworkPlugin = genruntime.ClonePointerToString(profile.NetworkPlugin) + + // NetworkPluginMode + destination.NetworkPluginMode = genruntime.ClonePointerToString(profile.NetworkPluginMode) + + // NetworkPolicy + destination.NetworkPolicy = genruntime.ClonePointerToString(profile.NetworkPolicy) + + // OutboundType + destination.OutboundType = genruntime.ClonePointerToString(profile.OutboundType) + + // PodCidr + destination.PodCidr = genruntime.ClonePointerToString(profile.PodCidr) + + // PodCidrs + destination.PodCidrs = genruntime.CloneSliceOfString(profile.PodCidrs) + + // ServiceCidr + destination.ServiceCidr = genruntime.ClonePointerToString(profile.ServiceCidr) + + // ServiceCidrs + destination.ServiceCidrs = genruntime.CloneSliceOfString(profile.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceNetworkProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForContainerServiceNetworkProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ExtendedLocation +// The complex type of the extended location. +type ExtendedLocation struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// AssignProperties_From_ExtendedLocation populates our ExtendedLocation from the provided source ExtendedLocation +func (location *ExtendedLocation) AssignProperties_From_ExtendedLocation(source *v20231001s.ExtendedLocation) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + location.Name = genruntime.ClonePointerToString(source.Name) + + // Type + location.Type = genruntime.ClonePointerToString(source.Type) + + // Update the property bag + if len(propertyBag) > 0 { + location.PropertyBag = propertyBag + } else { + location.PropertyBag = nil + } + + // Invoke the augmentConversionForExtendedLocation interface (if implemented) to customize the conversion + var locationAsAny any = location + if augmentedLocation, ok := locationAsAny.(augmentConversionForExtendedLocation); ok { + err := augmentedLocation.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ExtendedLocation populates the provided destination ExtendedLocation from our ExtendedLocation +func (location *ExtendedLocation) AssignProperties_To_ExtendedLocation(destination *v20231001s.ExtendedLocation) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(location.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(location.Name) + + // Type + destination.Type = genruntime.ClonePointerToString(location.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForExtendedLocation interface (if implemented) to customize the conversion + var locationAsAny any = location + if augmentedLocation, ok := locationAsAny.(augmentConversionForExtendedLocation); ok { + err := augmentedLocation.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ExtendedLocation_STATUS +// The complex type of the extended location. +type ExtendedLocation_STATUS struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// AssignProperties_From_ExtendedLocation_STATUS populates our ExtendedLocation_STATUS from the provided source ExtendedLocation_STATUS +func (location *ExtendedLocation_STATUS) AssignProperties_From_ExtendedLocation_STATUS(source *v20231001s.ExtendedLocation_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + location.Name = genruntime.ClonePointerToString(source.Name) + + // Type + location.Type = genruntime.ClonePointerToString(source.Type) + + // Update the property bag + if len(propertyBag) > 0 { + location.PropertyBag = propertyBag + } else { + location.PropertyBag = nil + } + + // Invoke the augmentConversionForExtendedLocation_STATUS interface (if implemented) to customize the conversion + var locationAsAny any = location + if augmentedLocation, ok := locationAsAny.(augmentConversionForExtendedLocation_STATUS); ok { + err := augmentedLocation.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ExtendedLocation_STATUS populates the provided destination ExtendedLocation_STATUS from our ExtendedLocation_STATUS +func (location *ExtendedLocation_STATUS) AssignProperties_To_ExtendedLocation_STATUS(destination *v20231001s.ExtendedLocation_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(location.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(location.Name) + + // Type + destination.Type = genruntime.ClonePointerToString(location.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForExtendedLocation_STATUS interface (if implemented) to customize the conversion + var locationAsAny any = location + if augmentedLocation, ok := locationAsAny.(augmentConversionForExtendedLocation_STATUS); ok { + err := augmentedLocation.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAADProfile +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile struct { + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + ClientAppID *string `json:"clientAppID,omitempty"` + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + Managed *bool `json:"managed,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServerAppID *string `json:"serverAppID,omitempty"` + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + TenantID *string `json:"tenantID,omitempty"` +} + +// AssignProperties_From_ManagedClusterAADProfile populates our ManagedClusterAADProfile from the provided source ManagedClusterAADProfile +func (profile *ManagedClusterAADProfile) AssignProperties_From_ManagedClusterAADProfile(source *v20231001s.ManagedClusterAADProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminGroupObjectIDs + profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) + + // ClientAppID + profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) + + // EnableAzureRBAC + if source.EnableAzureRBAC != nil { + enableAzureRBAC := *source.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } else { + profile.EnableAzureRBAC = nil + } + + // Managed + if source.Managed != nil { + managed := *source.Managed + profile.Managed = &managed + } else { + profile.Managed = nil + } + + // ServerAppID + profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) + + // ServerAppSecret + profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) + + // TenantID + profile.TenantID = genruntime.ClonePointerToString(source.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAADProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAADProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAADProfile populates the provided destination ManagedClusterAADProfile from our ManagedClusterAADProfile +func (profile *ManagedClusterAADProfile) AssignProperties_To_ManagedClusterAADProfile(destination *v20231001s.ManagedClusterAADProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminGroupObjectIDs + destination.AdminGroupObjectIDs = genruntime.CloneSliceOfString(profile.AdminGroupObjectIDs) + + // ClientAppID + destination.ClientAppID = genruntime.ClonePointerToString(profile.ClientAppID) + + // EnableAzureRBAC + if profile.EnableAzureRBAC != nil { + enableAzureRBAC := *profile.EnableAzureRBAC + destination.EnableAzureRBAC = &enableAzureRBAC + } else { + destination.EnableAzureRBAC = nil + } + + // Managed + if profile.Managed != nil { + managed := *profile.Managed + destination.Managed = &managed + } else { + destination.Managed = nil + } + + // ServerAppID + destination.ServerAppID = genruntime.ClonePointerToString(profile.ServerAppID) + + // ServerAppSecret + destination.ServerAppSecret = genruntime.ClonePointerToString(profile.ServerAppSecret) + + // TenantID + destination.TenantID = genruntime.ClonePointerToString(profile.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAADProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAADProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAADProfile_STATUS +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile_STATUS struct { + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + ClientAppID *string `json:"clientAppID,omitempty"` + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + Managed *bool `json:"managed,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServerAppID *string `json:"serverAppID,omitempty"` + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + TenantID *string `json:"tenantID,omitempty"` +} + +// AssignProperties_From_ManagedClusterAADProfile_STATUS populates our ManagedClusterAADProfile_STATUS from the provided source ManagedClusterAADProfile_STATUS +func (profile *ManagedClusterAADProfile_STATUS) AssignProperties_From_ManagedClusterAADProfile_STATUS(source *v20231001s.ManagedClusterAADProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminGroupObjectIDs + profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) + + // ClientAppID + profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) + + // EnableAzureRBAC + if source.EnableAzureRBAC != nil { + enableAzureRBAC := *source.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } else { + profile.EnableAzureRBAC = nil + } + + // Managed + if source.Managed != nil { + managed := *source.Managed + profile.Managed = &managed + } else { + profile.Managed = nil + } + + // ServerAppID + profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) + + // ServerAppSecret + profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) + + // TenantID + profile.TenantID = genruntime.ClonePointerToString(source.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAADProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAADProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAADProfile_STATUS populates the provided destination ManagedClusterAADProfile_STATUS from our ManagedClusterAADProfile_STATUS +func (profile *ManagedClusterAADProfile_STATUS) AssignProperties_To_ManagedClusterAADProfile_STATUS(destination *v20231001s.ManagedClusterAADProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminGroupObjectIDs + destination.AdminGroupObjectIDs = genruntime.CloneSliceOfString(profile.AdminGroupObjectIDs) + + // ClientAppID + destination.ClientAppID = genruntime.ClonePointerToString(profile.ClientAppID) + + // EnableAzureRBAC + if profile.EnableAzureRBAC != nil { + enableAzureRBAC := *profile.EnableAzureRBAC + destination.EnableAzureRBAC = &enableAzureRBAC + } else { + destination.EnableAzureRBAC = nil + } + + // Managed + if profile.Managed != nil { + managed := *profile.Managed + destination.Managed = &managed + } else { + destination.Managed = nil + } + + // ServerAppID + destination.ServerAppID = genruntime.ClonePointerToString(profile.ServerAppID) + + // ServerAppSecret + destination.ServerAppSecret = genruntime.ClonePointerToString(profile.ServerAppSecret) + + // TenantID + destination.TenantID = genruntime.ClonePointerToString(profile.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAADProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAADProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAddonProfile +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile struct { + Config map[string]string `json:"config,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAddonProfile populates our ManagedClusterAddonProfile from the provided source ManagedClusterAddonProfile +func (profile *ManagedClusterAddonProfile) AssignProperties_From_ManagedClusterAddonProfile(source *v20231001s.ManagedClusterAddonProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Config + profile.Config = genruntime.CloneMapOfStringToString(source.Config) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAddonProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAddonProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAddonProfile populates the provided destination ManagedClusterAddonProfile from our ManagedClusterAddonProfile +func (profile *ManagedClusterAddonProfile) AssignProperties_To_ManagedClusterAddonProfile(destination *v20231001s.ManagedClusterAddonProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Config + destination.Config = genruntime.CloneMapOfStringToString(profile.Config) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAddonProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAddonProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAddonProfile_STATUS +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile_STATUS struct { + Config map[string]string `json:"config,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAddonProfile_STATUS populates our ManagedClusterAddonProfile_STATUS from the provided source ManagedClusterAddonProfile_STATUS +func (profile *ManagedClusterAddonProfile_STATUS) AssignProperties_From_ManagedClusterAddonProfile_STATUS(source *v20231001s.ManagedClusterAddonProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Config + profile.Config = genruntime.CloneMapOfStringToString(source.Config) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // Identity + if source.Identity != nil { + var identity UserAssignedIdentity_STATUS + err := identity.AssignProperties_From_UserAssignedIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field Identity") + } + profile.Identity = &identity + } else { + profile.Identity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAddonProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAddonProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAddonProfile_STATUS populates the provided destination ManagedClusterAddonProfile_STATUS from our ManagedClusterAddonProfile_STATUS +func (profile *ManagedClusterAddonProfile_STATUS) AssignProperties_To_ManagedClusterAddonProfile_STATUS(destination *v20231001s.ManagedClusterAddonProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Config + destination.Config = genruntime.CloneMapOfStringToString(profile.Config) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Identity + if profile.Identity != nil { + var identity v20231001s.UserAssignedIdentity_STATUS + err := profile.Identity.AssignProperties_To_UserAssignedIdentity_STATUS(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAddonProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAddonProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAgentPoolProfile +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData `json:"creationData,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + + // HostGroupReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` + KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` MaxCount *int `json:"maxCount,omitempty"` MaxPods *int `json:"maxPods,omitempty"` @@ -458,744 +3484,8703 @@ type ManagedClusterAgentPoolProfile struct { Name *string `json:"name,omitempty"` NodeLabels map[string]string `json:"nodeLabels,omitempty"` - // NodePublicIPPrefixReference: This is of the form: - // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} - NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` - NodeTaints []string `json:"nodeTaints,omitempty"` - OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` - OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` - OsDiskType *string `json:"osDiskType,omitempty"` - OsSKU *string `json:"osSKU,omitempty"` - OsType *string `json:"osType,omitempty"` + // NodePublicIPPrefixReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + + // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). + // This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` + PowerState *PowerState `json:"powerState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // ProximityPlacementGroupReference: The ID for Proximity Placement Group. + ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is + // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +// AssignProperties_From_ManagedClusterAgentPoolProfile populates our ManagedClusterAgentPoolProfile from the provided source ManagedClusterAgentPoolProfile +func (profile *ManagedClusterAgentPoolProfile) AssignProperties_From_ManagedClusterAgentPoolProfile(source *v20231001s.ManagedClusterAgentPoolProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AvailabilityZones + profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // CapacityReservationGroupReference + if source.CapacityReservationGroupReference != nil { + propertyBag.Add("CapacityReservationGroupReference", *source.CapacityReservationGroupReference) + } else { + propertyBag.Remove("CapacityReservationGroupReference") + } + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.AssignProperties_From_CreationData(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData() to populate field CreationData") + } + profile.CreationData = &creationDatum + } else { + profile.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } else { + profile.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + profile.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + profile.EnableFIPS = &enableFIPS + } else { + profile.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } else { + profile.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } else { + profile.EnableUltraSSD = nil + } + + // GpuInstanceProfile + profile.GpuInstanceProfile = genruntime.ClonePointerToString(source.GpuInstanceProfile) + + // HostGroupReference + if source.HostGroupReference != nil { + hostGroupReference := source.HostGroupReference.Copy() + profile.HostGroupReference = &hostGroupReference + } else { + profile.HostGroupReference = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.AssignProperties_From_KubeletConfig(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig() to populate field KubeletConfig") + } + profile.KubeletConfig = &kubeletConfig + } else { + profile.KubeletConfig = nil + } + + // KubeletDiskType + profile.KubeletDiskType = genruntime.ClonePointerToString(source.KubeletDiskType) + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig() to populate field LinuxOSConfig") + } + profile.LinuxOSConfig = &linuxOSConfig + } else { + profile.LinuxOSConfig = nil + } + + // MaxCount + profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Name + profile.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + propertyBag.Add("NetworkProfile", *source.NetworkProfile) + } else { + propertyBag.Remove("NetworkProfile") + } + + // NodeLabels + profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixReference + if source.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := source.NodePublicIPPrefixReference.Copy() + profile.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + profile.NodePublicIPPrefixReference = nil + } + + // NodeTaints + profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + profile.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + profile.OsDiskType = genruntime.ClonePointerToString(source.OsDiskType) + + // OsSKU + profile.OsSKU = genruntime.ClonePointerToString(source.OsSKU) + + // OsType + profile.OsType = genruntime.ClonePointerToString(source.OsType) + + // PodSubnetReference + if source.PodSubnetReference != nil { + podSubnetReference := source.PodSubnetReference.Copy() + profile.PodSubnetReference = &podSubnetReference + } else { + profile.PodSubnetReference = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.AssignProperties_From_PowerState(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState() to populate field PowerState") + } + profile.PowerState = &powerState + } else { + profile.PowerState = nil + } + + // ProximityPlacementGroupReference + if source.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := source.ProximityPlacementGroupReference.Copy() + profile.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + profile.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + profile.ScaleDownMode = genruntime.ClonePointerToString(source.ScaleDownMode) + + // ScaleSetEvictionPolicy + profile.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(source.ScaleSetEvictionPolicy) + + // ScaleSetPriority + profile.ScaleSetPriority = genruntime.ClonePointerToString(source.ScaleSetPriority) + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } else { + profile.SpotMaxPrice = nil + } + + // Tags + profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + profile.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + profile.UpgradeSettings = &upgradeSetting + } else { + profile.UpgradeSettings = nil + } + + // VmSize + profile.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetReference + if source.VnetSubnetReference != nil { + vnetSubnetReference := source.VnetSubnetReference.Copy() + profile.VnetSubnetReference = &vnetSubnetReference + } else { + profile.VnetSubnetReference = nil + } + + // WorkloadRuntime + profile.WorkloadRuntime = genruntime.ClonePointerToString(source.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAgentPoolProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAgentPoolProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAgentPoolProfile populates the provided destination ManagedClusterAgentPoolProfile from our ManagedClusterAgentPoolProfile +func (profile *ManagedClusterAgentPoolProfile) AssignProperties_To_ManagedClusterAgentPoolProfile(destination *v20231001s.ManagedClusterAgentPoolProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(profile.AvailabilityZones) + + // CapacityReservationGroupReference + if propertyBag.Contains("CapacityReservationGroupReference") { + var capacityReservationGroupReference genruntime.ResourceReference + err := propertyBag.Pull("CapacityReservationGroupReference", &capacityReservationGroupReference) + if err != nil { + return errors.Wrap(err, "pulling 'CapacityReservationGroupReference' from propertyBag") + } + + destination.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + destination.CapacityReservationGroupReference = nil + } + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // CreationData + if profile.CreationData != nil { + var creationDatum v20231001s.CreationData + err := profile.CreationData.AssignProperties_To_CreationData(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // EnableAutoScaling + if profile.EnableAutoScaling != nil { + enableAutoScaling := *profile.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if profile.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *profile.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if profile.EnableFIPS != nil { + enableFIPS := *profile.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if profile.EnableNodePublicIP != nil { + enableNodePublicIP := *profile.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if profile.EnableUltraSSD != nil { + enableUltraSSD := *profile.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + destination.GpuInstanceProfile = genruntime.ClonePointerToString(profile.GpuInstanceProfile) + + // HostGroupReference + if profile.HostGroupReference != nil { + hostGroupReference := profile.HostGroupReference.Copy() + destination.HostGroupReference = &hostGroupReference + } else { + destination.HostGroupReference = nil + } + + // KubeletConfig + if profile.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig + err := profile.KubeletConfig.AssignProperties_To_KubeletConfig(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + destination.KubeletDiskType = genruntime.ClonePointerToString(profile.KubeletDiskType) + + // LinuxOSConfig + if profile.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig + err := profile.LinuxOSConfig.AssignProperties_To_LinuxOSConfig(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(profile.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(profile.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(profile.MinCount) + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Name + destination.Name = genruntime.ClonePointerToString(profile.Name) + + // NetworkProfile + if propertyBag.Contains("NetworkProfile") { + var networkProfile v20231001s.AgentPoolNetworkProfile + err := propertyBag.Pull("NetworkProfile", &networkProfile) + if err != nil { + return errors.Wrap(err, "pulling 'NetworkProfile' from propertyBag") + } + + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(profile.NodeLabels) + + // NodePublicIPPrefixReference + if profile.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := profile.NodePublicIPPrefixReference.Copy() + destination.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + destination.NodePublicIPPrefixReference = nil + } + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(profile.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(profile.OrchestratorVersion) + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(profile.OsDiskSizeGB) + + // OsDiskType + destination.OsDiskType = genruntime.ClonePointerToString(profile.OsDiskType) + + // OsSKU + destination.OsSKU = genruntime.ClonePointerToString(profile.OsSKU) + + // OsType + destination.OsType = genruntime.ClonePointerToString(profile.OsType) + + // PodSubnetReference + if profile.PodSubnetReference != nil { + podSubnetReference := profile.PodSubnetReference.Copy() + destination.PodSubnetReference = &podSubnetReference + } else { + destination.PodSubnetReference = nil + } + + // PowerState + if profile.PowerState != nil { + var powerState v20231001s.PowerState + err := profile.PowerState.AssignProperties_To_PowerState(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProximityPlacementGroupReference + if profile.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := profile.ProximityPlacementGroupReference.Copy() + destination.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + destination.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + destination.ScaleDownMode = genruntime.ClonePointerToString(profile.ScaleDownMode) + + // ScaleSetEvictionPolicy + destination.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(profile.ScaleSetEvictionPolicy) + + // ScaleSetPriority + destination.ScaleSetPriority = genruntime.ClonePointerToString(profile.ScaleSetPriority) + + // SpotMaxPrice + if profile.SpotMaxPrice != nil { + spotMaxPrice := *profile.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(profile.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(profile.Type) + + // UpgradeSettings + if profile.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings + err := profile.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(profile.VmSize) + + // VnetSubnetReference + if profile.VnetSubnetReference != nil { + vnetSubnetReference := profile.VnetSubnetReference.Copy() + destination.VnetSubnetReference = &vnetSubnetReference + } else { + destination.VnetSubnetReference = nil + } + + // WorkloadRuntime + destination.WorkloadRuntime = genruntime.ClonePointerToString(profile.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAgentPoolProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAgentPoolProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAgentPoolProfile_STATUS +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile_STATUS struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData_STATUS `json:"creationData,omitempty"` + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + HostGroupID *string `json:"hostGroupID,omitempty"` + KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` + MaxCount *int `json:"maxCount,omitempty"` + MaxPods *int `json:"maxPods,omitempty"` + MinCount *int `json:"minCount,omitempty"` + Mode *string `json:"mode,omitempty"` + Name *string `json:"name,omitempty"` + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + PodSubnetID *string `json:"podSubnetID,omitempty"` + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +// AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS populates our ManagedClusterAgentPoolProfile_STATUS from the provided source ManagedClusterAgentPoolProfile_STATUS +func (profile *ManagedClusterAgentPoolProfile_STATUS) AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(source *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AvailabilityZones + profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // CapacityReservationGroupID + if source.CapacityReservationGroupID != nil { + propertyBag.Add("CapacityReservationGroupID", *source.CapacityReservationGroupID) + } else { + propertyBag.Remove("CapacityReservationGroupID") + } + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData_STATUS + err := creationDatum.AssignProperties_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData_STATUS() to populate field CreationData") + } + profile.CreationData = &creationDatum + } else { + profile.CreationData = nil + } + + // CurrentOrchestratorVersion + profile.CurrentOrchestratorVersion = genruntime.ClonePointerToString(source.CurrentOrchestratorVersion) + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } else { + profile.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + profile.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + profile.EnableFIPS = &enableFIPS + } else { + profile.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } else { + profile.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } else { + profile.EnableUltraSSD = nil + } + + // GpuInstanceProfile + profile.GpuInstanceProfile = genruntime.ClonePointerToString(source.GpuInstanceProfile) + + // HostGroupID + profile.HostGroupID = genruntime.ClonePointerToString(source.HostGroupID) + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig_STATUS + err := kubeletConfig.AssignProperties_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + profile.KubeletConfig = &kubeletConfig + } else { + profile.KubeletConfig = nil + } + + // KubeletDiskType + profile.KubeletDiskType = genruntime.ClonePointerToString(source.KubeletDiskType) + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig_STATUS + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + profile.LinuxOSConfig = &linuxOSConfig + } else { + profile.LinuxOSConfig = nil + } + + // MaxCount + profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Name + profile.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + propertyBag.Add("NetworkProfile", *source.NetworkProfile) + } else { + propertyBag.Remove("NetworkProfile") + } + + // NodeImageVersion + profile.NodeImageVersion = genruntime.ClonePointerToString(source.NodeImageVersion) + + // NodeLabels + profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixID + profile.NodePublicIPPrefixID = genruntime.ClonePointerToString(source.NodePublicIPPrefixID) + + // NodeTaints + profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + profile.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + profile.OsDiskType = genruntime.ClonePointerToString(source.OsDiskType) + + // OsSKU + profile.OsSKU = genruntime.ClonePointerToString(source.OsSKU) + + // OsType + profile.OsType = genruntime.ClonePointerToString(source.OsType) + + // PodSubnetID + profile.PodSubnetID = genruntime.ClonePointerToString(source.PodSubnetID) + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + profile.PowerState = &powerState + } else { + profile.PowerState = nil + } + + // ProvisioningState + profile.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // ProximityPlacementGroupID + profile.ProximityPlacementGroupID = genruntime.ClonePointerToString(source.ProximityPlacementGroupID) + + // ScaleDownMode + profile.ScaleDownMode = genruntime.ClonePointerToString(source.ScaleDownMode) + + // ScaleSetEvictionPolicy + profile.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(source.ScaleSetEvictionPolicy) + + // ScaleSetPriority + profile.ScaleSetPriority = genruntime.ClonePointerToString(source.ScaleSetPriority) + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } else { + profile.SpotMaxPrice = nil + } + + // Tags + profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + profile.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + profile.UpgradeSettings = &upgradeSetting + } else { + profile.UpgradeSettings = nil + } + + // VmSize + profile.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetID + profile.VnetSubnetID = genruntime.ClonePointerToString(source.VnetSubnetID) + + // WorkloadRuntime + profile.WorkloadRuntime = genruntime.ClonePointerToString(source.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAgentPoolProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAgentPoolProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS populates the provided destination ManagedClusterAgentPoolProfile_STATUS from our ManagedClusterAgentPoolProfile_STATUS +func (profile *ManagedClusterAgentPoolProfile_STATUS) AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(destination *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(profile.AvailabilityZones) + + // CapacityReservationGroupID + if propertyBag.Contains("CapacityReservationGroupID") { + var capacityReservationGroupID string + err := propertyBag.Pull("CapacityReservationGroupID", &capacityReservationGroupID) + if err != nil { + return errors.Wrap(err, "pulling 'CapacityReservationGroupID' from propertyBag") + } + + destination.CapacityReservationGroupID = &capacityReservationGroupID + } else { + destination.CapacityReservationGroupID = nil + } + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // CreationData + if profile.CreationData != nil { + var creationDatum v20231001s.CreationData_STATUS + err := profile.CreationData.AssignProperties_To_CreationData_STATUS(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData_STATUS() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // CurrentOrchestratorVersion + destination.CurrentOrchestratorVersion = genruntime.ClonePointerToString(profile.CurrentOrchestratorVersion) + + // EnableAutoScaling + if profile.EnableAutoScaling != nil { + enableAutoScaling := *profile.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if profile.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *profile.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if profile.EnableFIPS != nil { + enableFIPS := *profile.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if profile.EnableNodePublicIP != nil { + enableNodePublicIP := *profile.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if profile.EnableUltraSSD != nil { + enableUltraSSD := *profile.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + destination.GpuInstanceProfile = genruntime.ClonePointerToString(profile.GpuInstanceProfile) + + // HostGroupID + destination.HostGroupID = genruntime.ClonePointerToString(profile.HostGroupID) + + // KubeletConfig + if profile.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig_STATUS + err := profile.KubeletConfig.AssignProperties_To_KubeletConfig_STATUS(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig_STATUS() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + destination.KubeletDiskType = genruntime.ClonePointerToString(profile.KubeletDiskType) + + // LinuxOSConfig + if profile.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig_STATUS + err := profile.LinuxOSConfig.AssignProperties_To_LinuxOSConfig_STATUS(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(profile.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(profile.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(profile.MinCount) + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Name + destination.Name = genruntime.ClonePointerToString(profile.Name) + + // NetworkProfile + if propertyBag.Contains("NetworkProfile") { + var networkProfile v20231001s.AgentPoolNetworkProfile_STATUS + err := propertyBag.Pull("NetworkProfile", &networkProfile) + if err != nil { + return errors.Wrap(err, "pulling 'NetworkProfile' from propertyBag") + } + + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeImageVersion + destination.NodeImageVersion = genruntime.ClonePointerToString(profile.NodeImageVersion) + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(profile.NodeLabels) + + // NodePublicIPPrefixID + destination.NodePublicIPPrefixID = genruntime.ClonePointerToString(profile.NodePublicIPPrefixID) + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(profile.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(profile.OrchestratorVersion) + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(profile.OsDiskSizeGB) + + // OsDiskType + destination.OsDiskType = genruntime.ClonePointerToString(profile.OsDiskType) + + // OsSKU + destination.OsSKU = genruntime.ClonePointerToString(profile.OsSKU) + + // OsType + destination.OsType = genruntime.ClonePointerToString(profile.OsType) + + // PodSubnetID + destination.PodSubnetID = genruntime.ClonePointerToString(profile.PodSubnetID) + + // PowerState + if profile.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := profile.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(profile.ProvisioningState) + + // ProximityPlacementGroupID + destination.ProximityPlacementGroupID = genruntime.ClonePointerToString(profile.ProximityPlacementGroupID) + + // ScaleDownMode + destination.ScaleDownMode = genruntime.ClonePointerToString(profile.ScaleDownMode) + + // ScaleSetEvictionPolicy + destination.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(profile.ScaleSetEvictionPolicy) + + // ScaleSetPriority + destination.ScaleSetPriority = genruntime.ClonePointerToString(profile.ScaleSetPriority) + + // SpotMaxPrice + if profile.SpotMaxPrice != nil { + spotMaxPrice := *profile.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(profile.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(profile.Type) + + // UpgradeSettings + if profile.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings_STATUS + err := profile.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(profile.VmSize) + + // VnetSubnetID + destination.VnetSubnetID = genruntime.ClonePointerToString(profile.VnetSubnetID) + + // WorkloadRuntime + destination.WorkloadRuntime = genruntime.ClonePointerToString(profile.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAgentPoolProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAgentPoolProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAPIServerAccessProfile +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile struct { + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAPIServerAccessProfile populates our ManagedClusterAPIServerAccessProfile from the provided source ManagedClusterAPIServerAccessProfile +func (profile *ManagedClusterAPIServerAccessProfile) AssignProperties_From_ManagedClusterAPIServerAccessProfile(source *v20231001s.ManagedClusterAPIServerAccessProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AuthorizedIPRanges + profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) + + // DisableRunCommand + if source.DisableRunCommand != nil { + disableRunCommand := *source.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } else { + profile.DisableRunCommand = nil + } + + // EnablePrivateCluster + if source.EnablePrivateCluster != nil { + enablePrivateCluster := *source.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } else { + profile.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if source.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + profile.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAPIServerAccessProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAPIServerAccessProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAPIServerAccessProfile populates the provided destination ManagedClusterAPIServerAccessProfile from our ManagedClusterAPIServerAccessProfile +func (profile *ManagedClusterAPIServerAccessProfile) AssignProperties_To_ManagedClusterAPIServerAccessProfile(destination *v20231001s.ManagedClusterAPIServerAccessProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AuthorizedIPRanges + destination.AuthorizedIPRanges = genruntime.CloneSliceOfString(profile.AuthorizedIPRanges) + + // DisableRunCommand + if profile.DisableRunCommand != nil { + disableRunCommand := *profile.DisableRunCommand + destination.DisableRunCommand = &disableRunCommand + } else { + destination.DisableRunCommand = nil + } + + // EnablePrivateCluster + if profile.EnablePrivateCluster != nil { + enablePrivateCluster := *profile.EnablePrivateCluster + destination.EnablePrivateCluster = &enablePrivateCluster + } else { + destination.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if profile.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *profile.EnablePrivateClusterPublicFQDN + destination.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + destination.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + destination.PrivateDNSZone = genruntime.ClonePointerToString(profile.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAPIServerAccessProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAPIServerAccessProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAPIServerAccessProfile_STATUS +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile_STATUS struct { + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS populates our ManagedClusterAPIServerAccessProfile_STATUS from the provided source ManagedClusterAPIServerAccessProfile_STATUS +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(source *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AuthorizedIPRanges + profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) + + // DisableRunCommand + if source.DisableRunCommand != nil { + disableRunCommand := *source.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } else { + profile.DisableRunCommand = nil + } + + // EnablePrivateCluster + if source.EnablePrivateCluster != nil { + enablePrivateCluster := *source.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } else { + profile.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if source.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + profile.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAPIServerAccessProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAPIServerAccessProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS populates the provided destination ManagedClusterAPIServerAccessProfile_STATUS from our ManagedClusterAPIServerAccessProfile_STATUS +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(destination *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AuthorizedIPRanges + destination.AuthorizedIPRanges = genruntime.CloneSliceOfString(profile.AuthorizedIPRanges) + + // DisableRunCommand + if profile.DisableRunCommand != nil { + disableRunCommand := *profile.DisableRunCommand + destination.DisableRunCommand = &disableRunCommand + } else { + destination.DisableRunCommand = nil + } + + // EnablePrivateCluster + if profile.EnablePrivateCluster != nil { + enablePrivateCluster := *profile.EnablePrivateCluster + destination.EnablePrivateCluster = &enablePrivateCluster + } else { + destination.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if profile.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *profile.EnablePrivateClusterPublicFQDN + destination.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + destination.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + destination.PrivateDNSZone = genruntime.ClonePointerToString(profile.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAPIServerAccessProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAPIServerAccessProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAutoUpgradeProfile +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpgradeChannel *string `json:"upgradeChannel,omitempty"` +} + +// AssignProperties_From_ManagedClusterAutoUpgradeProfile populates our ManagedClusterAutoUpgradeProfile from the provided source ManagedClusterAutoUpgradeProfile +func (profile *ManagedClusterAutoUpgradeProfile) AssignProperties_From_ManagedClusterAutoUpgradeProfile(source *v20231001s.ManagedClusterAutoUpgradeProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // NodeOSUpgradeChannel + if source.NodeOSUpgradeChannel != nil { + propertyBag.Add("NodeOSUpgradeChannel", *source.NodeOSUpgradeChannel) + } else { + propertyBag.Remove("NodeOSUpgradeChannel") + } + + // UpgradeChannel + profile.UpgradeChannel = genruntime.ClonePointerToString(source.UpgradeChannel) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAutoUpgradeProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAutoUpgradeProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAutoUpgradeProfile populates the provided destination ManagedClusterAutoUpgradeProfile from our ManagedClusterAutoUpgradeProfile +func (profile *ManagedClusterAutoUpgradeProfile) AssignProperties_To_ManagedClusterAutoUpgradeProfile(destination *v20231001s.ManagedClusterAutoUpgradeProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // NodeOSUpgradeChannel + if propertyBag.Contains("NodeOSUpgradeChannel") { + var nodeOSUpgradeChannel string + err := propertyBag.Pull("NodeOSUpgradeChannel", &nodeOSUpgradeChannel) + if err != nil { + return errors.Wrap(err, "pulling 'NodeOSUpgradeChannel' from propertyBag") + } + + destination.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + destination.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + destination.UpgradeChannel = genruntime.ClonePointerToString(profile.UpgradeChannel) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAutoUpgradeProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAutoUpgradeProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAutoUpgradeProfile_STATUS +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpgradeChannel *string `json:"upgradeChannel,omitempty"` +} + +// AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS populates our ManagedClusterAutoUpgradeProfile_STATUS from the provided source ManagedClusterAutoUpgradeProfile_STATUS +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(source *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // NodeOSUpgradeChannel + if source.NodeOSUpgradeChannel != nil { + propertyBag.Add("NodeOSUpgradeChannel", *source.NodeOSUpgradeChannel) + } else { + propertyBag.Remove("NodeOSUpgradeChannel") + } + + // UpgradeChannel + profile.UpgradeChannel = genruntime.ClonePointerToString(source.UpgradeChannel) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAutoUpgradeProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAutoUpgradeProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS populates the provided destination ManagedClusterAutoUpgradeProfile_STATUS from our ManagedClusterAutoUpgradeProfile_STATUS +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(destination *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // NodeOSUpgradeChannel + if propertyBag.Contains("NodeOSUpgradeChannel") { + var nodeOSUpgradeChannel string + err := propertyBag.Pull("NodeOSUpgradeChannel", &nodeOSUpgradeChannel) + if err != nil { + return errors.Wrap(err, "pulling 'NodeOSUpgradeChannel' from propertyBag") + } + + destination.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + destination.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + destination.UpgradeChannel = genruntime.ClonePointerToString(profile.UpgradeChannel) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAutoUpgradeProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAutoUpgradeProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAzureMonitorProfile +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile struct { + Metrics *ManagedClusterAzureMonitorProfileMetrics `json:"metrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfile populates our ManagedClusterAzureMonitorProfile from the provided source ManagedClusterAzureMonitorProfile +func (profile *ManagedClusterAzureMonitorProfile) AssignProperties_From_ManagedClusterAzureMonitorProfile(source *v20231001s.ManagedClusterAzureMonitorProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Metrics + if source.Metrics != nil { + var metric ManagedClusterAzureMonitorProfileMetrics + err := metric.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics() to populate field Metrics") + } + profile.Metrics = &metric + } else { + profile.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAzureMonitorProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfile populates the provided destination ManagedClusterAzureMonitorProfile from our ManagedClusterAzureMonitorProfile +func (profile *ManagedClusterAzureMonitorProfile) AssignProperties_To_ManagedClusterAzureMonitorProfile(destination *v20231001s.ManagedClusterAzureMonitorProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Metrics + if profile.Metrics != nil { + var metric v20231001s.ManagedClusterAzureMonitorProfileMetrics + err := profile.Metrics.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(&metric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics() to populate field Metrics") + } + destination.Metrics = &metric + } else { + destination.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAzureMonitorProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAzureMonitorProfile_STATUS +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile_STATUS struct { + Metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS `json:"metrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS populates our ManagedClusterAzureMonitorProfile_STATUS from the provided source ManagedClusterAzureMonitorProfile_STATUS +func (profile *ManagedClusterAzureMonitorProfile_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Metrics + if source.Metrics != nil { + var metric ManagedClusterAzureMonitorProfileMetrics_STATUS + err := metric.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") + } + profile.Metrics = &metric + } else { + profile.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAzureMonitorProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS populates the provided destination ManagedClusterAzureMonitorProfile_STATUS from our ManagedClusterAzureMonitorProfile_STATUS +func (profile *ManagedClusterAzureMonitorProfile_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Metrics + if profile.Metrics != nil { + var metric v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS + err := profile.Metrics.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(&metric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") + } + destination.Metrics = &metric + } else { + destination.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterAzureMonitorProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterHTTPProxyConfig +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig struct { + HttpProxy *string `json:"httpProxy,omitempty"` + HttpsProxy *string `json:"httpsProxy,omitempty"` + NoProxy []string `json:"noProxy,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TrustedCa *string `json:"trustedCa,omitempty"` +} + +// AssignProperties_From_ManagedClusterHTTPProxyConfig populates our ManagedClusterHTTPProxyConfig from the provided source ManagedClusterHTTPProxyConfig +func (config *ManagedClusterHTTPProxyConfig) AssignProperties_From_ManagedClusterHTTPProxyConfig(source *v20231001s.ManagedClusterHTTPProxyConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // HttpProxy + config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) + + // HttpsProxy + config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) + + // NoProxy + config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) + + // TrustedCa + config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterHTTPProxyConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForManagedClusterHTTPProxyConfig); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterHTTPProxyConfig populates the provided destination ManagedClusterHTTPProxyConfig from our ManagedClusterHTTPProxyConfig +func (config *ManagedClusterHTTPProxyConfig) AssignProperties_To_ManagedClusterHTTPProxyConfig(destination *v20231001s.ManagedClusterHTTPProxyConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // HttpProxy + destination.HttpProxy = genruntime.ClonePointerToString(config.HttpProxy) + + // HttpsProxy + destination.HttpsProxy = genruntime.ClonePointerToString(config.HttpsProxy) + + // NoProxy + destination.NoProxy = genruntime.CloneSliceOfString(config.NoProxy) + + // TrustedCa + destination.TrustedCa = genruntime.ClonePointerToString(config.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterHTTPProxyConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForManagedClusterHTTPProxyConfig); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterHTTPProxyConfig_STATUS +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig_STATUS struct { + HttpProxy *string `json:"httpProxy,omitempty"` + HttpsProxy *string `json:"httpsProxy,omitempty"` + NoProxy []string `json:"noProxy,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TrustedCa *string `json:"trustedCa,omitempty"` +} + +// AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS populates our ManagedClusterHTTPProxyConfig_STATUS from the provided source ManagedClusterHTTPProxyConfig_STATUS +func (config *ManagedClusterHTTPProxyConfig_STATUS) AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(source *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // HttpProxy + config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) + + // HttpsProxy + config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) + + // NoProxy + config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) + + // TrustedCa + config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterHTTPProxyConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForManagedClusterHTTPProxyConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS populates the provided destination ManagedClusterHTTPProxyConfig_STATUS from our ManagedClusterHTTPProxyConfig_STATUS +func (config *ManagedClusterHTTPProxyConfig_STATUS) AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(destination *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // HttpProxy + destination.HttpProxy = genruntime.ClonePointerToString(config.HttpProxy) + + // HttpsProxy + destination.HttpsProxy = genruntime.ClonePointerToString(config.HttpsProxy) + + // NoProxy + destination.NoProxy = genruntime.CloneSliceOfString(config.NoProxy) + + // TrustedCa + destination.TrustedCa = genruntime.ClonePointerToString(config.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterHTTPProxyConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForManagedClusterHTTPProxyConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterIdentity +// Identity for the managed cluster. +type ManagedClusterIdentity struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +} + +// AssignProperties_From_ManagedClusterIdentity populates our ManagedClusterIdentity from the provided source ManagedClusterIdentity +func (identity *ManagedClusterIdentity) AssignProperties_From_ManagedClusterIdentity(source *v20231001s.ManagedClusterIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DelegatedResources + if len(source.DelegatedResources) > 0 { + propertyBag.Add("DelegatedResources", source.DelegatedResources) + } else { + propertyBag.Remove("DelegatedResources") + } + + // Type + identity.Type = genruntime.ClonePointerToString(source.Type) + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]UserAssignedIdentityDetails, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity UserAssignedIdentityDetails + err := userAssignedIdentity.AssignProperties_From_UserAssignedIdentityDetails(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityList + } else { + identity.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterIdentity); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity populates the provided destination ManagedClusterIdentity from our ManagedClusterIdentity +func (identity *ManagedClusterIdentity) AssignProperties_To_ManagedClusterIdentity(destination *v20231001s.ManagedClusterIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // DelegatedResources + if propertyBag.Contains("DelegatedResources") { + var delegatedResource map[string]v20231001s.DelegatedResource + err := propertyBag.Pull("DelegatedResources", &delegatedResource) + if err != nil { + return errors.Wrap(err, "pulling 'DelegatedResources' from propertyBag") + } + + destination.DelegatedResources = delegatedResource + } else { + destination.DelegatedResources = nil + } + + // Type + destination.Type = genruntime.ClonePointerToString(identity.Type) + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.UserAssignedIdentityDetails, len(identity.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.UserAssignedIdentityDetails + err := userAssignedIdentityItem.AssignProperties_To_UserAssignedIdentityDetails(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterIdentity); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterIdentity_STATUS +// Identity for the managed cluster. +type ManagedClusterIdentity_STATUS struct { + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TenantId *string `json:"tenantId,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS `json:"userAssignedIdentities,omitempty"` +} + +// AssignProperties_From_ManagedClusterIdentity_STATUS populates our ManagedClusterIdentity_STATUS from the provided source ManagedClusterIdentity_STATUS +func (identity *ManagedClusterIdentity_STATUS) AssignProperties_From_ManagedClusterIdentity_STATUS(source *v20231001s.ManagedClusterIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DelegatedResources + if len(source.DelegatedResources) > 0 { + propertyBag.Add("DelegatedResources", source.DelegatedResources) + } else { + propertyBag.Remove("DelegatedResources") + } + + // PrincipalId + identity.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // TenantId + identity.TenantId = genruntime.ClonePointerToString(source.TenantId) + + // Type + identity.Type = genruntime.ClonePointerToString(source.Type) + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(source.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := userAssignedIdentity.AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&userAssignedIdentityValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityMap + } else { + identity.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity_STATUS populates the provided destination ManagedClusterIdentity_STATUS from our ManagedClusterIdentity_STATUS +func (identity *ManagedClusterIdentity_STATUS) AssignProperties_To_ManagedClusterIdentity_STATUS(destination *v20231001s.ManagedClusterIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // DelegatedResources + if propertyBag.Contains("DelegatedResources") { + var delegatedResource map[string]v20231001s.DelegatedResource_STATUS + err := propertyBag.Pull("DelegatedResources", &delegatedResource) + if err != nil { + return errors.Wrap(err, "pulling 'DelegatedResources' from propertyBag") + } + + destination.DelegatedResources = delegatedResource + } else { + destination.DelegatedResources = nil + } + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(identity.PrincipalId) + + // TenantId + destination.TenantId = genruntime.ClonePointerToString(identity.TenantId) + + // Type + destination.Type = genruntime.ClonePointerToString(identity.Type) + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(identity.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := userAssignedIdentityValue.AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityMap + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterOIDCIssuerProfile +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterOIDCIssuerProfile populates our ManagedClusterOIDCIssuerProfile from the provided source ManagedClusterOIDCIssuerProfile +func (profile *ManagedClusterOIDCIssuerProfile) AssignProperties_From_ManagedClusterOIDCIssuerProfile(source *v20231001s.ManagedClusterOIDCIssuerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOIDCIssuerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterOIDCIssuerProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOIDCIssuerProfile populates the provided destination ManagedClusterOIDCIssuerProfile from our ManagedClusterOIDCIssuerProfile +func (profile *ManagedClusterOIDCIssuerProfile) AssignProperties_To_ManagedClusterOIDCIssuerProfile(destination *v20231001s.ManagedClusterOIDCIssuerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOIDCIssuerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterOIDCIssuerProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterOIDCIssuerProfile_STATUS +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + IssuerURL *string `json:"issuerURL,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS populates our ManagedClusterOIDCIssuerProfile_STATUS from the provided source ManagedClusterOIDCIssuerProfile_STATUS +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(source *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // IssuerURL + profile.IssuerURL = genruntime.ClonePointerToString(source.IssuerURL) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOIDCIssuerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterOIDCIssuerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS populates the provided destination ManagedClusterOIDCIssuerProfile_STATUS from our ManagedClusterOIDCIssuerProfile_STATUS +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(destination *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IssuerURL + destination.IssuerURL = genruntime.ClonePointerToString(profile.IssuerURL) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOIDCIssuerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterOIDCIssuerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterOperatorSpec +// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure +type ManagedClusterOperatorSpec struct { + ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorSpec populates our ManagedClusterOperatorSpec from the provided source ManagedClusterOperatorSpec +func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedClusterOperatorSpec(source *v20231001s.ManagedClusterOperatorSpec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ConfigMaps + if source.ConfigMaps != nil { + var configMap ManagedClusterOperatorConfigMaps + err := configMap.AssignProperties_From_ManagedClusterOperatorConfigMaps(source.ConfigMaps) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps") + } + operator.ConfigMaps = &configMap + } else { + operator.ConfigMaps = nil + } + + // Secrets + if source.Secrets != nil { + var secret ManagedClusterOperatorSecrets + err := secret.AssignProperties_From_ManagedClusterOperatorSecrets(source.Secrets) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorSecrets() to populate field Secrets") + } + operator.Secrets = &secret + } else { + operator.Secrets = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + operator.PropertyBag = propertyBag + } else { + operator.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorSpec interface (if implemented) to customize the conversion + var operatorAsAny any = operator + if augmentedOperator, ok := operatorAsAny.(augmentConversionForManagedClusterOperatorSpec); ok { + err := augmentedOperator.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorSpec populates the provided destination ManagedClusterOperatorSpec from our ManagedClusterOperatorSpec +func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOperatorSpec(destination *v20231001s.ManagedClusterOperatorSpec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(operator.PropertyBag) + + // ConfigMaps + if operator.ConfigMaps != nil { + var configMap v20231001s.ManagedClusterOperatorConfigMaps + err := operator.ConfigMaps.AssignProperties_To_ManagedClusterOperatorConfigMaps(&configMap) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps") + } + destination.ConfigMaps = &configMap + } else { + destination.ConfigMaps = nil + } + + // Secrets + if operator.Secrets != nil { + var secret v20231001s.ManagedClusterOperatorSecrets + err := operator.Secrets.AssignProperties_To_ManagedClusterOperatorSecrets(&secret) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorSecrets() to populate field Secrets") + } + destination.Secrets = &secret + } else { + destination.Secrets = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorSpec interface (if implemented) to customize the conversion + var operatorAsAny any = operator + if augmentedOperator, ok := operatorAsAny.(augmentConversionForManagedClusterOperatorSpec); ok { + err := augmentedOperator.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentityProfile +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile struct { + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserAssignedIdentities []ManagedClusterPodIdentity `json:"userAssignedIdentities,omitempty"` + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException `json:"userAssignedIdentityExceptions,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentityProfile populates our ManagedClusterPodIdentityProfile from the provided source ManagedClusterPodIdentityProfile +func (profile *ManagedClusterPodIdentityProfile) AssignProperties_From_ManagedClusterPodIdentityProfile(source *v20231001s.ManagedClusterPodIdentityProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowNetworkPluginKubenet + if source.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + profile.AllowNetworkPluginKubenet = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]ManagedClusterPodIdentity, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity ManagedClusterPodIdentity + err := userAssignedIdentity.AssignProperties_From_ManagedClusterPodIdentity(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + profile.UserAssignedIdentities = userAssignedIdentityList + } else { + profile.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if source.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException, len(source.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException ManagedClusterPodIdentityException + err := userAssignedIdentityException.AssignProperties_From_ManagedClusterPodIdentityException(&userAssignedIdentityExceptionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityException() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + profile.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterPodIdentityProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProfile populates the provided destination ManagedClusterPodIdentityProfile from our ManagedClusterPodIdentityProfile +func (profile *ManagedClusterPodIdentityProfile) AssignProperties_To_ManagedClusterPodIdentityProfile(destination *v20231001s.ManagedClusterPodIdentityProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllowNetworkPluginKubenet + if profile.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *profile.AllowNetworkPluginKubenet + destination.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + destination.AllowNetworkPluginKubenet = nil + } + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UserAssignedIdentities + if profile.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.ManagedClusterPodIdentity, len(profile.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range profile.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.ManagedClusterPodIdentity + err := userAssignedIdentityItem.AssignProperties_To_ManagedClusterPodIdentity(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if profile.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]v20231001s.ManagedClusterPodIdentityException, len(profile.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range profile.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException v20231001s.ManagedClusterPodIdentityException + err := userAssignedIdentityExceptionItem.AssignProperties_To_ManagedClusterPodIdentityException(&userAssignedIdentityException) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityException() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + destination.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + destination.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterPodIdentityProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentityProfile_STATUS +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile_STATUS struct { + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserAssignedIdentities []ManagedClusterPodIdentity_STATUS `json:"userAssignedIdentities,omitempty"` + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_STATUS `json:"userAssignedIdentityExceptions,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS populates our ManagedClusterPodIdentityProfile_STATUS from the provided source ManagedClusterPodIdentityProfile_STATUS +func (profile *ManagedClusterPodIdentityProfile_STATUS) AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(source *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowNetworkPluginKubenet + if source.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + profile.AllowNetworkPluginKubenet = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]ManagedClusterPodIdentity_STATUS, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity ManagedClusterPodIdentity_STATUS + err := userAssignedIdentity.AssignProperties_From_ManagedClusterPodIdentity_STATUS(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + profile.UserAssignedIdentities = userAssignedIdentityList + } else { + profile.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if source.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException_STATUS, len(source.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException ManagedClusterPodIdentityException_STATUS + err := userAssignedIdentityException.AssignProperties_From_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityExceptionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + profile.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterPodIdentityProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS populates the provided destination ManagedClusterPodIdentityProfile_STATUS from our ManagedClusterPodIdentityProfile_STATUS +func (profile *ManagedClusterPodIdentityProfile_STATUS) AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(destination *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllowNetworkPluginKubenet + if profile.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *profile.AllowNetworkPluginKubenet + destination.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + destination.AllowNetworkPluginKubenet = nil + } + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UserAssignedIdentities + if profile.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.ManagedClusterPodIdentity_STATUS, len(profile.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range profile.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.ManagedClusterPodIdentity_STATUS + err := userAssignedIdentityItem.AssignProperties_To_ManagedClusterPodIdentity_STATUS(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if profile.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]v20231001s.ManagedClusterPodIdentityException_STATUS, len(profile.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range profile.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException v20231001s.ManagedClusterPodIdentityException_STATUS + err := userAssignedIdentityExceptionItem.AssignProperties_To_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityException) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + destination.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + destination.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterPodIdentityProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterProperties_AutoScalerProfile +type ManagedClusterProperties_AutoScalerProfile struct { + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + Expander *string `json:"expander,omitempty"` + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + ScanInterval *string `json:"scan-interval,omitempty"` + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// AssignProperties_From_ManagedClusterProperties_AutoScalerProfile populates our ManagedClusterProperties_AutoScalerProfile from the provided source ManagedClusterProperties_AutoScalerProfile +func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(source *v20231001s.ManagedClusterProperties_AutoScalerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + + // Expander + profile.Expander = genruntime.ClonePointerToString(source.Expander) + + // MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + + // ScanInterval + profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + + // SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterProperties_AutoScalerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterProperties_AutoScalerProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile populates the provided destination ManagedClusterProperties_AutoScalerProfile from our ManagedClusterProperties_AutoScalerProfile +func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(destination *v20231001s.ManagedClusterProperties_AutoScalerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // BalanceSimilarNodeGroups + destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) + + // Expander + destination.Expander = genruntime.ClonePointerToString(profile.Expander) + + // MaxEmptyBulkDelete + destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) + + // ScanInterval + destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) + + // SkipNodesWithLocalStorage + destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterProperties_AutoScalerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterProperties_AutoScalerProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterProperties_AutoScalerProfile_STATUS +type ManagedClusterProperties_AutoScalerProfile_STATUS struct { + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + Expander *string `json:"expander,omitempty"` + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + ScanInterval *string `json:"scan-interval,omitempty"` + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS populates our ManagedClusterProperties_AutoScalerProfile_STATUS from the provided source ManagedClusterProperties_AutoScalerProfile_STATUS +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + + // Expander + profile.Expander = genruntime.ClonePointerToString(source.Expander) + + // MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + + // ScanInterval + profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + + // SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS populates the provided destination ManagedClusterProperties_AutoScalerProfile_STATUS from our ManagedClusterProperties_AutoScalerProfile_STATUS +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(destination *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // BalanceSimilarNodeGroups + destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) + + // Expander + destination.Expander = genruntime.ClonePointerToString(profile.Expander) + + // MaxEmptyBulkDelete + destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) + + // ScanInterval + destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) + + // SkipNodesWithLocalStorage + destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfile +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile struct { + AzureKeyVaultKms *AzureKeyVaultKms `json:"azureKeyVaultKms,omitempty"` + Defender *ManagedClusterSecurityProfileDefender `json:"defender,omitempty"` + ImageCleaner *ManagedClusterSecurityProfileImageCleaner `json:"imageCleaner,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity `json:"workloadIdentity,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfile populates our ManagedClusterSecurityProfile from the provided source ManagedClusterSecurityProfile +func (profile *ManagedClusterSecurityProfile) AssignProperties_From_ManagedClusterSecurityProfile(source *v20231001s.ManagedClusterSecurityProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AzureKeyVaultKms + if source.AzureKeyVaultKms != nil { + var azureKeyVaultKm AzureKeyVaultKms + err := azureKeyVaultKm.AssignProperties_From_AzureKeyVaultKms(source.AzureKeyVaultKms) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AzureKeyVaultKms() to populate field AzureKeyVaultKms") + } + profile.AzureKeyVaultKms = &azureKeyVaultKm + } else { + profile.AzureKeyVaultKms = nil + } + + // Defender + if source.Defender != nil { + var defender ManagedClusterSecurityProfileDefender + err := defender.AssignProperties_From_ManagedClusterSecurityProfileDefender(source.Defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefender() to populate field Defender") + } + profile.Defender = &defender + } else { + profile.Defender = nil + } + + // ImageCleaner + if source.ImageCleaner != nil { + var imageCleaner ManagedClusterSecurityProfileImageCleaner + err := imageCleaner.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(source.ImageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileImageCleaner() to populate field ImageCleaner") + } + profile.ImageCleaner = &imageCleaner + } else { + profile.ImageCleaner = nil + } + + // WorkloadIdentity + if source.WorkloadIdentity != nil { + var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity + err := workloadIdentity.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(source.WorkloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity() to populate field WorkloadIdentity") + } + profile.WorkloadIdentity = &workloadIdentity + } else { + profile.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterSecurityProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfile populates the provided destination ManagedClusterSecurityProfile from our ManagedClusterSecurityProfile +func (profile *ManagedClusterSecurityProfile) AssignProperties_To_ManagedClusterSecurityProfile(destination *v20231001s.ManagedClusterSecurityProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AzureKeyVaultKms + if profile.AzureKeyVaultKms != nil { + var azureKeyVaultKm v20231001s.AzureKeyVaultKms + err := profile.AzureKeyVaultKms.AssignProperties_To_AzureKeyVaultKms(&azureKeyVaultKm) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AzureKeyVaultKms() to populate field AzureKeyVaultKms") + } + destination.AzureKeyVaultKms = &azureKeyVaultKm + } else { + destination.AzureKeyVaultKms = nil + } + + // Defender + if profile.Defender != nil { + var defender v20231001s.ManagedClusterSecurityProfileDefender + err := profile.Defender.AssignProperties_To_ManagedClusterSecurityProfileDefender(&defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefender() to populate field Defender") + } + destination.Defender = &defender + } else { + destination.Defender = nil + } + + // ImageCleaner + if profile.ImageCleaner != nil { + var imageCleaner v20231001s.ManagedClusterSecurityProfileImageCleaner + err := profile.ImageCleaner.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(&imageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileImageCleaner() to populate field ImageCleaner") + } + destination.ImageCleaner = &imageCleaner + } else { + destination.ImageCleaner = nil + } + + // WorkloadIdentity + if profile.WorkloadIdentity != nil { + var workloadIdentity v20231001s.ManagedClusterSecurityProfileWorkloadIdentity + err := profile.WorkloadIdentity.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(&workloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity() to populate field WorkloadIdentity") + } + destination.WorkloadIdentity = &workloadIdentity + } else { + destination.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterSecurityProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfile_STATUS +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile_STATUS struct { + AzureKeyVaultKms *AzureKeyVaultKms_STATUS `json:"azureKeyVaultKms,omitempty"` + Defender *ManagedClusterSecurityProfileDefender_STATUS `json:"defender,omitempty"` + ImageCleaner *ManagedClusterSecurityProfileImageCleaner_STATUS `json:"imageCleaner,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS `json:"workloadIdentity,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfile_STATUS populates our ManagedClusterSecurityProfile_STATUS from the provided source ManagedClusterSecurityProfile_STATUS +func (profile *ManagedClusterSecurityProfile_STATUS) AssignProperties_From_ManagedClusterSecurityProfile_STATUS(source *v20231001s.ManagedClusterSecurityProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AzureKeyVaultKms + if source.AzureKeyVaultKms != nil { + var azureKeyVaultKm AzureKeyVaultKms_STATUS + err := azureKeyVaultKm.AssignProperties_From_AzureKeyVaultKms_STATUS(source.AzureKeyVaultKms) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") + } + profile.AzureKeyVaultKms = &azureKeyVaultKm + } else { + profile.AzureKeyVaultKms = nil + } + + // Defender + if source.Defender != nil { + var defender ManagedClusterSecurityProfileDefender_STATUS + err := defender.AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(source.Defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") + } + profile.Defender = &defender + } else { + profile.Defender = nil + } + + // ImageCleaner + if source.ImageCleaner != nil { + var imageCleaner ManagedClusterSecurityProfileImageCleaner_STATUS + err := imageCleaner.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source.ImageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") + } + profile.ImageCleaner = &imageCleaner + } else { + profile.ImageCleaner = nil + } + + // WorkloadIdentity + if source.WorkloadIdentity != nil { + var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := workloadIdentity.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source.WorkloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") + } + profile.WorkloadIdentity = &workloadIdentity + } else { + profile.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterSecurityProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfile_STATUS populates the provided destination ManagedClusterSecurityProfile_STATUS from our ManagedClusterSecurityProfile_STATUS +func (profile *ManagedClusterSecurityProfile_STATUS) AssignProperties_To_ManagedClusterSecurityProfile_STATUS(destination *v20231001s.ManagedClusterSecurityProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AzureKeyVaultKms + if profile.AzureKeyVaultKms != nil { + var azureKeyVaultKm v20231001s.AzureKeyVaultKms_STATUS + err := profile.AzureKeyVaultKms.AssignProperties_To_AzureKeyVaultKms_STATUS(&azureKeyVaultKm) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") + } + destination.AzureKeyVaultKms = &azureKeyVaultKm + } else { + destination.AzureKeyVaultKms = nil + } + + // Defender + if profile.Defender != nil { + var defender v20231001s.ManagedClusterSecurityProfileDefender_STATUS + err := profile.Defender.AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(&defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") + } + destination.Defender = &defender + } else { + destination.Defender = nil + } + + // ImageCleaner + if profile.ImageCleaner != nil { + var imageCleaner v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS + err := profile.ImageCleaner.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(&imageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") + } + destination.ImageCleaner = &imageCleaner + } else { + destination.ImageCleaner = nil + } + + // WorkloadIdentity + if profile.WorkloadIdentity != nil { + var workloadIdentity v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := profile.WorkloadIdentity.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&workloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") + } + destination.WorkloadIdentity = &workloadIdentity + } else { + destination.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterSecurityProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterServicePrincipalProfile +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile struct { + ClientId *string `json:"clientId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Secret *genruntime.SecretReference `json:"secret,omitempty"` +} + +// AssignProperties_From_ManagedClusterServicePrincipalProfile populates our ManagedClusterServicePrincipalProfile from the provided source ManagedClusterServicePrincipalProfile +func (profile *ManagedClusterServicePrincipalProfile) AssignProperties_From_ManagedClusterServicePrincipalProfile(source *v20231001s.ManagedClusterServicePrincipalProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ClientId + profile.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // Secret + if source.Secret != nil { + secret := source.Secret.Copy() + profile.Secret = &secret + } else { + profile.Secret = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterServicePrincipalProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterServicePrincipalProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterServicePrincipalProfile populates the provided destination ManagedClusterServicePrincipalProfile from our ManagedClusterServicePrincipalProfile +func (profile *ManagedClusterServicePrincipalProfile) AssignProperties_To_ManagedClusterServicePrincipalProfile(destination *v20231001s.ManagedClusterServicePrincipalProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(profile.ClientId) + + // Secret + if profile.Secret != nil { + secret := profile.Secret.Copy() + destination.Secret = &secret + } else { + destination.Secret = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterServicePrincipalProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterServicePrincipalProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterServicePrincipalProfile_STATUS +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS populates our ManagedClusterServicePrincipalProfile_STATUS from the provided source ManagedClusterServicePrincipalProfile_STATUS +func (profile *ManagedClusterServicePrincipalProfile_STATUS) AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(source *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ClientId + profile.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterServicePrincipalProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterServicePrincipalProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS populates the provided destination ManagedClusterServicePrincipalProfile_STATUS from our ManagedClusterServicePrincipalProfile_STATUS +func (profile *ManagedClusterServicePrincipalProfile_STATUS) AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(destination *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(profile.ClientId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterServicePrincipalProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterServicePrincipalProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSKU +// The SKU of a Managed Cluster. +type ManagedClusterSKU struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tier *string `json:"tier,omitempty"` +} + +// AssignProperties_From_ManagedClusterSKU populates our ManagedClusterSKU from the provided source ManagedClusterSKU +func (clusterSKU *ManagedClusterSKU) AssignProperties_From_ManagedClusterSKU(source *v20231001s.ManagedClusterSKU) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + clusterSKU.Name = genruntime.ClonePointerToString(source.Name) + + // Tier + clusterSKU.Tier = genruntime.ClonePointerToString(source.Tier) + + // Update the property bag + if len(propertyBag) > 0 { + clusterSKU.PropertyBag = propertyBag + } else { + clusterSKU.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSKU interface (if implemented) to customize the conversion + var clusterSKUAsAny any = clusterSKU + if augmentedClusterSKU, ok := clusterSKUAsAny.(augmentConversionForManagedClusterSKU); ok { + err := augmentedClusterSKU.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSKU populates the provided destination ManagedClusterSKU from our ManagedClusterSKU +func (clusterSKU *ManagedClusterSKU) AssignProperties_To_ManagedClusterSKU(destination *v20231001s.ManagedClusterSKU) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(clusterSKU.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(clusterSKU.Name) + + // Tier + destination.Tier = genruntime.ClonePointerToString(clusterSKU.Tier) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSKU interface (if implemented) to customize the conversion + var clusterSKUAsAny any = clusterSKU + if augmentedClusterSKU, ok := clusterSKUAsAny.(augmentConversionForManagedClusterSKU); ok { + err := augmentedClusterSKU.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSKU_STATUS +// The SKU of a Managed Cluster. +type ManagedClusterSKU_STATUS struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tier *string `json:"tier,omitempty"` +} + +// AssignProperties_From_ManagedClusterSKU_STATUS populates our ManagedClusterSKU_STATUS from the provided source ManagedClusterSKU_STATUS +func (clusterSKU *ManagedClusterSKU_STATUS) AssignProperties_From_ManagedClusterSKU_STATUS(source *v20231001s.ManagedClusterSKU_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + clusterSKU.Name = genruntime.ClonePointerToString(source.Name) + + // Tier + clusterSKU.Tier = genruntime.ClonePointerToString(source.Tier) + + // Update the property bag + if len(propertyBag) > 0 { + clusterSKU.PropertyBag = propertyBag + } else { + clusterSKU.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSKU_STATUS interface (if implemented) to customize the conversion + var clusterSKUAsAny any = clusterSKU + if augmentedClusterSKU, ok := clusterSKUAsAny.(augmentConversionForManagedClusterSKU_STATUS); ok { + err := augmentedClusterSKU.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSKU_STATUS populates the provided destination ManagedClusterSKU_STATUS from our ManagedClusterSKU_STATUS +func (clusterSKU *ManagedClusterSKU_STATUS) AssignProperties_To_ManagedClusterSKU_STATUS(destination *v20231001s.ManagedClusterSKU_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(clusterSKU.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(clusterSKU.Name) + + // Tier + destination.Tier = genruntime.ClonePointerToString(clusterSKU.Tier) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSKU_STATUS interface (if implemented) to customize the conversion + var clusterSKUAsAny any = clusterSKU + if augmentedClusterSKU, ok := clusterSKUAsAny.(augmentConversionForManagedClusterSKU_STATUS); ok { + err := augmentedClusterSKU.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterStorageProfile +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile struct { + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver `json:"blobCSIDriver,omitempty"` + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver `json:"diskCSIDriver,omitempty"` + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver `json:"fileCSIDriver,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SnapshotController *ManagedClusterStorageProfileSnapshotController `json:"snapshotController,omitempty"` +} + +// AssignProperties_From_ManagedClusterStorageProfile populates our ManagedClusterStorageProfile from the provided source ManagedClusterStorageProfile +func (profile *ManagedClusterStorageProfile) AssignProperties_From_ManagedClusterStorageProfile(source *v20231001s.ManagedClusterStorageProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BlobCSIDriver + if source.BlobCSIDriver != nil { + var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver + err := blobCSIDriver.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(source.BlobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver() to populate field BlobCSIDriver") + } + profile.BlobCSIDriver = &blobCSIDriver + } else { + profile.BlobCSIDriver = nil + } + + // DiskCSIDriver + if source.DiskCSIDriver != nil { + var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver + err := diskCSIDriver.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(source.DiskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver() to populate field DiskCSIDriver") + } + profile.DiskCSIDriver = &diskCSIDriver + } else { + profile.DiskCSIDriver = nil + } + + // FileCSIDriver + if source.FileCSIDriver != nil { + var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver + err := fileCSIDriver.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(source.FileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver() to populate field FileCSIDriver") + } + profile.FileCSIDriver = &fileCSIDriver + } else { + profile.FileCSIDriver = nil + } + + // SnapshotController + if source.SnapshotController != nil { + var snapshotController ManagedClusterStorageProfileSnapshotController + err := snapshotController.AssignProperties_From_ManagedClusterStorageProfileSnapshotController(source.SnapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileSnapshotController() to populate field SnapshotController") + } + profile.SnapshotController = &snapshotController + } else { + profile.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterStorageProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfile populates the provided destination ManagedClusterStorageProfile from our ManagedClusterStorageProfile +func (profile *ManagedClusterStorageProfile) AssignProperties_To_ManagedClusterStorageProfile(destination *v20231001s.ManagedClusterStorageProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // BlobCSIDriver + if profile.BlobCSIDriver != nil { + var blobCSIDriver v20231001s.ManagedClusterStorageProfileBlobCSIDriver + err := profile.BlobCSIDriver.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(&blobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver() to populate field BlobCSIDriver") + } + destination.BlobCSIDriver = &blobCSIDriver + } else { + destination.BlobCSIDriver = nil + } + + // DiskCSIDriver + if profile.DiskCSIDriver != nil { + var diskCSIDriver v20231001s.ManagedClusterStorageProfileDiskCSIDriver + err := profile.DiskCSIDriver.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(&diskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver() to populate field DiskCSIDriver") + } + destination.DiskCSIDriver = &diskCSIDriver + } else { + destination.DiskCSIDriver = nil + } + + // FileCSIDriver + if profile.FileCSIDriver != nil { + var fileCSIDriver v20231001s.ManagedClusterStorageProfileFileCSIDriver + err := profile.FileCSIDriver.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(&fileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver() to populate field FileCSIDriver") + } + destination.FileCSIDriver = &fileCSIDriver + } else { + destination.FileCSIDriver = nil + } + + // SnapshotController + if profile.SnapshotController != nil { + var snapshotController v20231001s.ManagedClusterStorageProfileSnapshotController + err := profile.SnapshotController.AssignProperties_To_ManagedClusterStorageProfileSnapshotController(&snapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileSnapshotController() to populate field SnapshotController") + } + destination.SnapshotController = &snapshotController + } else { + destination.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterStorageProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterStorageProfile_STATUS +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile_STATUS struct { + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_STATUS `json:"blobCSIDriver,omitempty"` + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_STATUS `json:"diskCSIDriver,omitempty"` + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_STATUS `json:"fileCSIDriver,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SnapshotController *ManagedClusterStorageProfileSnapshotController_STATUS `json:"snapshotController,omitempty"` +} + +// AssignProperties_From_ManagedClusterStorageProfile_STATUS populates our ManagedClusterStorageProfile_STATUS from the provided source ManagedClusterStorageProfile_STATUS +func (profile *ManagedClusterStorageProfile_STATUS) AssignProperties_From_ManagedClusterStorageProfile_STATUS(source *v20231001s.ManagedClusterStorageProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BlobCSIDriver + if source.BlobCSIDriver != nil { + var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := blobCSIDriver.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source.BlobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") + } + profile.BlobCSIDriver = &blobCSIDriver + } else { + profile.BlobCSIDriver = nil + } + + // DiskCSIDriver + if source.DiskCSIDriver != nil { + var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := diskCSIDriver.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source.DiskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") + } + profile.DiskCSIDriver = &diskCSIDriver + } else { + profile.DiskCSIDriver = nil + } + + // FileCSIDriver + if source.FileCSIDriver != nil { + var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver_STATUS + err := fileCSIDriver.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source.FileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") + } + profile.FileCSIDriver = &fileCSIDriver + } else { + profile.FileCSIDriver = nil + } + + // SnapshotController + if source.SnapshotController != nil { + var snapshotController ManagedClusterStorageProfileSnapshotController_STATUS + err := snapshotController.AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(source.SnapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") + } + profile.SnapshotController = &snapshotController + } else { + profile.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterStorageProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfile_STATUS populates the provided destination ManagedClusterStorageProfile_STATUS from our ManagedClusterStorageProfile_STATUS +func (profile *ManagedClusterStorageProfile_STATUS) AssignProperties_To_ManagedClusterStorageProfile_STATUS(destination *v20231001s.ManagedClusterStorageProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // BlobCSIDriver + if profile.BlobCSIDriver != nil { + var blobCSIDriver v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := profile.BlobCSIDriver.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&blobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") + } + destination.BlobCSIDriver = &blobCSIDriver + } else { + destination.BlobCSIDriver = nil + } + + // DiskCSIDriver + if profile.DiskCSIDriver != nil { + var diskCSIDriver v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := profile.DiskCSIDriver.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&diskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") + } + destination.DiskCSIDriver = &diskCSIDriver + } else { + destination.DiskCSIDriver = nil + } + + // FileCSIDriver + if profile.FileCSIDriver != nil { + var fileCSIDriver v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS + err := profile.FileCSIDriver.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(&fileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") + } + destination.FileCSIDriver = &fileCSIDriver + } else { + destination.FileCSIDriver = nil + } + + // SnapshotController + if profile.SnapshotController != nil { + var snapshotController v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS + err := profile.SnapshotController.AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(&snapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") + } + destination.SnapshotController = &snapshotController + } else { + destination.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterStorageProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterWindowsProfile +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile struct { + AdminPassword *string `json:"adminPassword,omitempty"` + AdminUsername *string `json:"adminUsername,omitempty"` + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + GmsaProfile *WindowsGmsaProfile `json:"gmsaProfile,omitempty"` + LicenseType *string `json:"licenseType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterWindowsProfile populates our ManagedClusterWindowsProfile from the provided source ManagedClusterWindowsProfile +func (profile *ManagedClusterWindowsProfile) AssignProperties_From_ManagedClusterWindowsProfile(source *v20231001s.ManagedClusterWindowsProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminPassword + profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // EnableCSIProxy + if source.EnableCSIProxy != nil { + enableCSIProxy := *source.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } else { + profile.EnableCSIProxy = nil + } + + // GmsaProfile + if source.GmsaProfile != nil { + var gmsaProfile WindowsGmsaProfile + err := gmsaProfile.AssignProperties_From_WindowsGmsaProfile(source.GmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_WindowsGmsaProfile() to populate field GmsaProfile") + } + profile.GmsaProfile = &gmsaProfile + } else { + profile.GmsaProfile = nil + } + + // LicenseType + profile.LicenseType = genruntime.ClonePointerToString(source.LicenseType) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWindowsProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWindowsProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWindowsProfile populates the provided destination ManagedClusterWindowsProfile from our ManagedClusterWindowsProfile +func (profile *ManagedClusterWindowsProfile) AssignProperties_To_ManagedClusterWindowsProfile(destination *v20231001s.ManagedClusterWindowsProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminPassword + destination.AdminPassword = genruntime.ClonePointerToString(profile.AdminPassword) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // EnableCSIProxy + if profile.EnableCSIProxy != nil { + enableCSIProxy := *profile.EnableCSIProxy + destination.EnableCSIProxy = &enableCSIProxy + } else { + destination.EnableCSIProxy = nil + } + + // GmsaProfile + if profile.GmsaProfile != nil { + var gmsaProfile v20231001s.WindowsGmsaProfile + err := profile.GmsaProfile.AssignProperties_To_WindowsGmsaProfile(&gmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_WindowsGmsaProfile() to populate field GmsaProfile") + } + destination.GmsaProfile = &gmsaProfile + } else { + destination.GmsaProfile = nil + } + + // LicenseType + destination.LicenseType = genruntime.ClonePointerToString(profile.LicenseType) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWindowsProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWindowsProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterWindowsProfile_STATUS +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile_STATUS struct { + AdminPassword *string `json:"adminPassword,omitempty"` + AdminUsername *string `json:"adminUsername,omitempty"` + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + GmsaProfile *WindowsGmsaProfile_STATUS `json:"gmsaProfile,omitempty"` + LicenseType *string `json:"licenseType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterWindowsProfile_STATUS populates our ManagedClusterWindowsProfile_STATUS from the provided source ManagedClusterWindowsProfile_STATUS +func (profile *ManagedClusterWindowsProfile_STATUS) AssignProperties_From_ManagedClusterWindowsProfile_STATUS(source *v20231001s.ManagedClusterWindowsProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminPassword + profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // EnableCSIProxy + if source.EnableCSIProxy != nil { + enableCSIProxy := *source.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } else { + profile.EnableCSIProxy = nil + } + + // GmsaProfile + if source.GmsaProfile != nil { + var gmsaProfile WindowsGmsaProfile_STATUS + err := gmsaProfile.AssignProperties_From_WindowsGmsaProfile_STATUS(source.GmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") + } + profile.GmsaProfile = &gmsaProfile + } else { + profile.GmsaProfile = nil + } + + // LicenseType + profile.LicenseType = genruntime.ClonePointerToString(source.LicenseType) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWindowsProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWindowsProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWindowsProfile_STATUS populates the provided destination ManagedClusterWindowsProfile_STATUS from our ManagedClusterWindowsProfile_STATUS +func (profile *ManagedClusterWindowsProfile_STATUS) AssignProperties_To_ManagedClusterWindowsProfile_STATUS(destination *v20231001s.ManagedClusterWindowsProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AdminPassword + destination.AdminPassword = genruntime.ClonePointerToString(profile.AdminPassword) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // EnableCSIProxy + if profile.EnableCSIProxy != nil { + enableCSIProxy := *profile.EnableCSIProxy + destination.EnableCSIProxy = &enableCSIProxy + } else { + destination.EnableCSIProxy = nil + } + + // GmsaProfile + if profile.GmsaProfile != nil { + var gmsaProfile v20231001s.WindowsGmsaProfile_STATUS + err := profile.GmsaProfile.AssignProperties_To_WindowsGmsaProfile_STATUS(&gmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") + } + destination.GmsaProfile = &gmsaProfile + } else { + destination.GmsaProfile = nil + } + + // LicenseType + destination.LicenseType = genruntime.ClonePointerToString(profile.LicenseType) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWindowsProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWindowsProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfile +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile struct { + Keda *ManagedClusterWorkloadAutoScalerProfileKeda `json:"keda,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile populates our ManagedClusterWorkloadAutoScalerProfile from the provided source ManagedClusterWorkloadAutoScalerProfile +func (profile *ManagedClusterWorkloadAutoScalerProfile) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(source *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Keda + if source.Keda != nil { + var kedum ManagedClusterWorkloadAutoScalerProfileKeda + err := kedum.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(source.Keda) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda() to populate field Keda") + } + profile.Keda = &kedum + } else { + profile.Keda = nil + } + + // VerticalPodAutoscaler + if source.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := verticalPodAutoscaler.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(source.VerticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler() to populate field VerticalPodAutoscaler") + } + propertyBag.Add("VerticalPodAutoscaler", verticalPodAutoscaler) + } else { + propertyBag.Remove("VerticalPodAutoscaler") + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile populates the provided destination ManagedClusterWorkloadAutoScalerProfile from our ManagedClusterWorkloadAutoScalerProfile +func (profile *ManagedClusterWorkloadAutoScalerProfile) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Keda + if profile.Keda != nil { + var kedum v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda + err := profile.Keda.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(&kedum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda() to populate field Keda") + } + destination.Keda = &kedum + } else { + destination.Keda = nil + } + + // VerticalPodAutoscaler + if propertyBag.Contains("VerticalPodAutoscaler") { + var verticalPodAutoscalerFromBag v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := propertyBag.Pull("VerticalPodAutoscaler", &verticalPodAutoscalerFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'VerticalPodAutoscaler' from propertyBag") + } + + var verticalPodAutoscaler v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = verticalPodAutoscalerFromBag.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&verticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler() to populate field VerticalPodAutoscaler") + } + destination.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + destination.VerticalPodAutoscaler = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfile_STATUS +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile_STATUS struct { + Keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS `json:"keda,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS populates our ManagedClusterWorkloadAutoScalerProfile_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfile_STATUS +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Keda + if source.Keda != nil { + var kedum ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := kedum.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source.Keda) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") + } + profile.Keda = &kedum + } else { + profile.Keda = nil + } + + // VerticalPodAutoscaler + if source.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := verticalPodAutoscaler.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source.VerticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS() to populate field VerticalPodAutoscaler") + } + propertyBag.Add("VerticalPodAutoscaler", verticalPodAutoscaler) + } else { + propertyBag.Remove("VerticalPodAutoscaler") + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfile_STATUS from our ManagedClusterWorkloadAutoScalerProfile_STATUS +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Keda + if profile.Keda != nil { + var kedum v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := profile.Keda.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&kedum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") + } + destination.Keda = &kedum + } else { + destination.Keda = nil + } + + // VerticalPodAutoscaler + if propertyBag.Contains("VerticalPodAutoscaler") { + var verticalPodAutoscalerFromBag v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := propertyBag.Pull("VerticalPodAutoscaler", &verticalPodAutoscalerFromBag) + if err != nil { + return errors.Wrap(err, "pulling 'VerticalPodAutoscaler' from propertyBag") + } + + var verticalPodAutoscaler v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = verticalPodAutoscalerFromBag.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&verticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS() to populate field VerticalPodAutoscaler") + } + destination.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + destination.VerticalPodAutoscaler = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.PowerState_STATUS +// Describes the Power State of the cluster +type PowerState_STATUS struct { + Code *string `json:"code,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_PowerState_STATUS populates our PowerState_STATUS from the provided source PowerState_STATUS +func (state *PowerState_STATUS) AssignProperties_From_PowerState_STATUS(source *v20231001s.PowerState_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Code + state.Code = genruntime.ClonePointerToString(source.Code) + + // Update the property bag + if len(propertyBag) > 0 { + state.PropertyBag = propertyBag + } else { + state.PropertyBag = nil + } + + // Invoke the augmentConversionForPowerState_STATUS interface (if implemented) to customize the conversion + var stateAsAny any = state + if augmentedState, ok := stateAsAny.(augmentConversionForPowerState_STATUS); ok { + err := augmentedState.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PowerState_STATUS populates the provided destination PowerState_STATUS from our PowerState_STATUS +func (state *PowerState_STATUS) AssignProperties_To_PowerState_STATUS(destination *v20231001s.PowerState_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(state.PropertyBag) + + // Code + destination.Code = genruntime.ClonePointerToString(state.Code) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPowerState_STATUS interface (if implemented) to customize the conversion + var stateAsAny any = state + if augmentedState, ok := stateAsAny.(augmentConversionForPowerState_STATUS); ok { + err := augmentedState.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.PrivateLinkResource +// A private link resource +type PrivateLinkResource struct { + GroupId *string `json:"groupId,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // Reference: The ID of the private link resource. + Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` + RequiredMembers []string `json:"requiredMembers,omitempty"` + Type *string `json:"type,omitempty"` +} + +// AssignProperties_From_PrivateLinkResource populates our PrivateLinkResource from the provided source PrivateLinkResource +func (resource *PrivateLinkResource) AssignProperties_From_PrivateLinkResource(source *v20231001s.PrivateLinkResource) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // GroupId + resource.GroupId = genruntime.ClonePointerToString(source.GroupId) + + // Name + resource.Name = genruntime.ClonePointerToString(source.Name) + + // Reference + if source.Reference != nil { + reference := source.Reference.Copy() + resource.Reference = &reference + } else { + resource.Reference = nil + } + + // RequiredMembers + resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + + // Type + resource.Type = genruntime.ClonePointerToString(source.Type) + + // Update the property bag + if len(propertyBag) > 0 { + resource.PropertyBag = propertyBag + } else { + resource.PropertyBag = nil + } + + // Invoke the augmentConversionForPrivateLinkResource interface (if implemented) to customize the conversion + var resourceAsAny any = resource + if augmentedResource, ok := resourceAsAny.(augmentConversionForPrivateLinkResource); ok { + err := augmentedResource.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PrivateLinkResource populates the provided destination PrivateLinkResource from our PrivateLinkResource +func (resource *PrivateLinkResource) AssignProperties_To_PrivateLinkResource(destination *v20231001s.PrivateLinkResource) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(resource.PropertyBag) + + // GroupId + destination.GroupId = genruntime.ClonePointerToString(resource.GroupId) + + // Name + destination.Name = genruntime.ClonePointerToString(resource.Name) + + // Reference + if resource.Reference != nil { + reference := resource.Reference.Copy() + destination.Reference = &reference + } else { + destination.Reference = nil + } + + // RequiredMembers + destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) + + // Type + destination.Type = genruntime.ClonePointerToString(resource.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPrivateLinkResource interface (if implemented) to customize the conversion + var resourceAsAny any = resource + if augmentedResource, ok := resourceAsAny.(augmentConversionForPrivateLinkResource); ok { + err := augmentedResource.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.PrivateLinkResource_STATUS +// A private link resource +type PrivateLinkResource_STATUS struct { + GroupId *string `json:"groupId,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RequiredMembers []string `json:"requiredMembers,omitempty"` + Type *string `json:"type,omitempty"` +} + +// AssignProperties_From_PrivateLinkResource_STATUS populates our PrivateLinkResource_STATUS from the provided source PrivateLinkResource_STATUS +func (resource *PrivateLinkResource_STATUS) AssignProperties_From_PrivateLinkResource_STATUS(source *v20231001s.PrivateLinkResource_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // GroupId + resource.GroupId = genruntime.ClonePointerToString(source.GroupId) + + // Id + resource.Id = genruntime.ClonePointerToString(source.Id) + + // Name + resource.Name = genruntime.ClonePointerToString(source.Name) + + // PrivateLinkServiceID + resource.PrivateLinkServiceID = genruntime.ClonePointerToString(source.PrivateLinkServiceID) + + // RequiredMembers + resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + + // Type + resource.Type = genruntime.ClonePointerToString(source.Type) + + // Update the property bag + if len(propertyBag) > 0 { + resource.PropertyBag = propertyBag + } else { + resource.PropertyBag = nil + } + + // Invoke the augmentConversionForPrivateLinkResource_STATUS interface (if implemented) to customize the conversion + var resourceAsAny any = resource + if augmentedResource, ok := resourceAsAny.(augmentConversionForPrivateLinkResource_STATUS); ok { + err := augmentedResource.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PrivateLinkResource_STATUS populates the provided destination PrivateLinkResource_STATUS from our PrivateLinkResource_STATUS +func (resource *PrivateLinkResource_STATUS) AssignProperties_To_PrivateLinkResource_STATUS(destination *v20231001s.PrivateLinkResource_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(resource.PropertyBag) + + // GroupId + destination.GroupId = genruntime.ClonePointerToString(resource.GroupId) + + // Id + destination.Id = genruntime.ClonePointerToString(resource.Id) + + // Name + destination.Name = genruntime.ClonePointerToString(resource.Name) + + // PrivateLinkServiceID + destination.PrivateLinkServiceID = genruntime.ClonePointerToString(resource.PrivateLinkServiceID) + + // RequiredMembers + destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) + + // Type + destination.Type = genruntime.ClonePointerToString(resource.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPrivateLinkResource_STATUS interface (if implemented) to customize the conversion + var resourceAsAny any = resource + if augmentedResource, ok := resourceAsAny.(augmentConversionForPrivateLinkResource_STATUS); ok { + err := augmentedResource.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.SystemData_STATUS +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS struct { + CreatedAt *string `json:"createdAt,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + CreatedByType *string `json:"createdByType,omitempty"` + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + LastModifiedByType *string `json:"lastModifiedByType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_SystemData_STATUS populates our SystemData_STATUS from the provided source SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_From_SystemData_STATUS(source *v20231001s.SystemData_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // CreatedAt + data.CreatedAt = genruntime.ClonePointerToString(source.CreatedAt) + + // CreatedBy + data.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedByType + data.CreatedByType = genruntime.ClonePointerToString(source.CreatedByType) + + // LastModifiedAt + data.LastModifiedAt = genruntime.ClonePointerToString(source.LastModifiedAt) + + // LastModifiedBy + data.LastModifiedBy = genruntime.ClonePointerToString(source.LastModifiedBy) + + // LastModifiedByType + data.LastModifiedByType = genruntime.ClonePointerToString(source.LastModifiedByType) + + // Update the property bag + if len(propertyBag) > 0 { + data.PropertyBag = propertyBag + } else { + data.PropertyBag = nil + } + + // Invoke the augmentConversionForSystemData_STATUS interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForSystemData_STATUS); ok { + err := augmentedData.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_SystemData_STATUS populates the provided destination SystemData_STATUS from our SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_To_SystemData_STATUS(destination *v20231001s.SystemData_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(data.PropertyBag) + + // CreatedAt + destination.CreatedAt = genruntime.ClonePointerToString(data.CreatedAt) + + // CreatedBy + destination.CreatedBy = genruntime.ClonePointerToString(data.CreatedBy) + + // CreatedByType + destination.CreatedByType = genruntime.ClonePointerToString(data.CreatedByType) + + // LastModifiedAt + destination.LastModifiedAt = genruntime.ClonePointerToString(data.LastModifiedAt) + + // LastModifiedBy + destination.LastModifiedBy = genruntime.ClonePointerToString(data.LastModifiedBy) + + // LastModifiedByType + destination.LastModifiedByType = genruntime.ClonePointerToString(data.LastModifiedByType) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForSystemData_STATUS interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForSystemData_STATUS); ok { + err := augmentedData.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.UserAssignedIdentity +// Details about a user assigned identity. +type UserAssignedIdentity struct { + ClientId *string `json:"clientId,omitempty"` + ObjectId *string `json:"objectId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // ResourceReference: The resource ID of the user assigned identity. + ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` +} + +// AssignProperties_From_UserAssignedIdentity populates our UserAssignedIdentity from the provided source UserAssignedIdentity +func (identity *UserAssignedIdentity) AssignProperties_From_UserAssignedIdentity(source *v20231001s.UserAssignedIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ClientId + identity.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // ObjectId + identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) + + // ResourceReference + if source.ResourceReference != nil { + resourceReference := source.ResourceReference.Copy() + identity.ResourceReference = &resourceReference + } else { + identity.ResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForUserAssignedIdentity); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentity populates the provided destination UserAssignedIdentity from our UserAssignedIdentity +func (identity *UserAssignedIdentity) AssignProperties_To_UserAssignedIdentity(destination *v20231001s.UserAssignedIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identity.ClientId) + + // ObjectId + destination.ObjectId = genruntime.ClonePointerToString(identity.ObjectId) + + // ResourceReference + if identity.ResourceReference != nil { + resourceReference := identity.ResourceReference.Copy() + destination.ResourceReference = &resourceReference + } else { + destination.ResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForUserAssignedIdentity); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.UserAssignedIdentity_STATUS +// Details about a user assigned identity. +type UserAssignedIdentity_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + ObjectId *string `json:"objectId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` +} + +// AssignProperties_From_UserAssignedIdentity_STATUS populates our UserAssignedIdentity_STATUS from the provided source UserAssignedIdentity_STATUS +func (identity *UserAssignedIdentity_STATUS) AssignProperties_From_UserAssignedIdentity_STATUS(source *v20231001s.UserAssignedIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ClientId + identity.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // ObjectId + identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) + + // ResourceId + identity.ResourceId = genruntime.ClonePointerToString(source.ResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForUserAssignedIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentity_STATUS populates the provided destination UserAssignedIdentity_STATUS from our UserAssignedIdentity_STATUS +func (identity *UserAssignedIdentity_STATUS) AssignProperties_To_UserAssignedIdentity_STATUS(destination *v20231001s.UserAssignedIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identity.ClientId) + + // ObjectId + destination.ObjectId = genruntime.ClonePointerToString(identity.ObjectId) + + // ResourceId + destination.ResourceId = genruntime.ClonePointerToString(identity.ResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForUserAssignedIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForContainerServiceLinuxProfile interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceLinuxProfile) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceLinuxProfile) error +} + +type augmentConversionForContainerServiceLinuxProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceLinuxProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceLinuxProfile_STATUS) error +} + +type augmentConversionForContainerServiceNetworkProfile interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceNetworkProfile) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceNetworkProfile) error +} + +type augmentConversionForContainerServiceNetworkProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceNetworkProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceNetworkProfile_STATUS) error +} + +type augmentConversionForExtendedLocation interface { + AssignPropertiesFrom(src *v20231001s.ExtendedLocation) error + AssignPropertiesTo(dst *v20231001s.ExtendedLocation) error +} + +type augmentConversionForExtendedLocation_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ExtendedLocation_STATUS) error + AssignPropertiesTo(dst *v20231001s.ExtendedLocation_STATUS) error +} + +type augmentConversionForManagedClusterAADProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAADProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAADProfile) error +} + +type augmentConversionForManagedClusterAADProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAADProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAADProfile_STATUS) error +} + +type augmentConversionForManagedClusterAddonProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAddonProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAddonProfile) error +} + +type augmentConversionForManagedClusterAddonProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAddonProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAddonProfile_STATUS) error +} + +type augmentConversionForManagedClusterAgentPoolProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAgentPoolProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAgentPoolProfile) error +} + +type augmentConversionForManagedClusterAgentPoolProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error +} + +type augmentConversionForManagedClusterAPIServerAccessProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAPIServerAccessProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAPIServerAccessProfile) error +} + +type augmentConversionForManagedClusterAPIServerAccessProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error +} + +type augmentConversionForManagedClusterAutoUpgradeProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAutoUpgradeProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAutoUpgradeProfile) error +} + +type augmentConversionForManagedClusterAutoUpgradeProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error +} + +type augmentConversionForManagedClusterAzureMonitorProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfile) error +} + +type augmentConversionForManagedClusterAzureMonitorProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error +} + +type augmentConversionForManagedClusterHTTPProxyConfig interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterHTTPProxyConfig) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterHTTPProxyConfig) error +} + +type augmentConversionForManagedClusterHTTPProxyConfig_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error +} + +type augmentConversionForManagedClusterIdentity interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterIdentity) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterIdentity) error +} + +type augmentConversionForManagedClusterIdentity_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterIdentity_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterIdentity_STATUS) error +} + +type augmentConversionForManagedClusterOIDCIssuerProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterOIDCIssuerProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterOIDCIssuerProfile) error +} + +type augmentConversionForManagedClusterOIDCIssuerProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error +} + +type augmentConversionForManagedClusterOperatorSpec interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterOperatorSpec) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterOperatorSpec) error +} + +type augmentConversionForManagedClusterPodIdentityProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityProfile) error +} + +type augmentConversionForManagedClusterPodIdentityProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error +} + +type augmentConversionForManagedClusterProperties_AutoScalerProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterProperties_AutoScalerProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterProperties_AutoScalerProfile) error +} + +type augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error +} + +type augmentConversionForManagedClusterSecurityProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfile) error +} + +type augmentConversionForManagedClusterSecurityProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfile_STATUS) error +} + +type augmentConversionForManagedClusterServicePrincipalProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterServicePrincipalProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterServicePrincipalProfile) error +} + +type augmentConversionForManagedClusterServicePrincipalProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error +} + +type augmentConversionForManagedClusterSKU interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSKU) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSKU) error +} + +type augmentConversionForManagedClusterSKU_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSKU_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSKU_STATUS) error +} + +type augmentConversionForManagedClusterStorageProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfile) error +} + +type augmentConversionForManagedClusterStorageProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfile_STATUS) error +} + +type augmentConversionForManagedClusterWindowsProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWindowsProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWindowsProfile) error +} + +type augmentConversionForManagedClusterWindowsProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWindowsProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWindowsProfile_STATUS) error +} + +type augmentConversionForManagedClusterWorkloadAutoScalerProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error +} + +type augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error +} + +type augmentConversionForPowerState_STATUS interface { + AssignPropertiesFrom(src *v20231001s.PowerState_STATUS) error + AssignPropertiesTo(dst *v20231001s.PowerState_STATUS) error +} + +type augmentConversionForPrivateLinkResource interface { + AssignPropertiesFrom(src *v20231001s.PrivateLinkResource) error + AssignPropertiesTo(dst *v20231001s.PrivateLinkResource) error +} + +type augmentConversionForPrivateLinkResource_STATUS interface { + AssignPropertiesFrom(src *v20231001s.PrivateLinkResource_STATUS) error + AssignPropertiesTo(dst *v20231001s.PrivateLinkResource_STATUS) error +} + +type augmentConversionForSystemData_STATUS interface { + AssignPropertiesFrom(src *v20231001s.SystemData_STATUS) error + AssignPropertiesTo(dst *v20231001s.SystemData_STATUS) error +} + +type augmentConversionForUserAssignedIdentity interface { + AssignPropertiesFrom(src *v20231001s.UserAssignedIdentity) error + AssignPropertiesTo(dst *v20231001s.UserAssignedIdentity) error +} + +type augmentConversionForUserAssignedIdentity_STATUS interface { + AssignPropertiesFrom(src *v20231001s.UserAssignedIdentity_STATUS) error + AssignPropertiesTo(dst *v20231001s.UserAssignedIdentity_STATUS) error +} + +// Storage version of v1api20230201.AzureKeyVaultKms +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms struct { + Enabled *bool `json:"enabled,omitempty"` + KeyId *string `json:"keyId,omitempty"` + KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` + + // KeyVaultResourceReference: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and + // must be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. + KeyVaultResourceReference *genruntime.ResourceReference `armReference:"KeyVaultResourceId" json:"keyVaultResourceReference,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_AzureKeyVaultKms populates our AzureKeyVaultKms from the provided source AzureKeyVaultKms +func (vaultKms *AzureKeyVaultKms) AssignProperties_From_AzureKeyVaultKms(source *v20231001s.AzureKeyVaultKms) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + vaultKms.Enabled = &enabled + } else { + vaultKms.Enabled = nil + } + + // KeyId + vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) + + // KeyVaultNetworkAccess + vaultKms.KeyVaultNetworkAccess = genruntime.ClonePointerToString(source.KeyVaultNetworkAccess) + + // KeyVaultResourceReference + if source.KeyVaultResourceReference != nil { + keyVaultResourceReference := source.KeyVaultResourceReference.Copy() + vaultKms.KeyVaultResourceReference = &keyVaultResourceReference + } else { + vaultKms.KeyVaultResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + vaultKms.PropertyBag = propertyBag + } else { + vaultKms.PropertyBag = nil + } + + // Invoke the augmentConversionForAzureKeyVaultKms interface (if implemented) to customize the conversion + var vaultKmsAsAny any = vaultKms + if augmentedVaultKms, ok := vaultKmsAsAny.(augmentConversionForAzureKeyVaultKms); ok { + err := augmentedVaultKms.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AzureKeyVaultKms populates the provided destination AzureKeyVaultKms from our AzureKeyVaultKms +func (vaultKms *AzureKeyVaultKms) AssignProperties_To_AzureKeyVaultKms(destination *v20231001s.AzureKeyVaultKms) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(vaultKms.PropertyBag) + + // Enabled + if vaultKms.Enabled != nil { + enabled := *vaultKms.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KeyId + destination.KeyId = genruntime.ClonePointerToString(vaultKms.KeyId) + + // KeyVaultNetworkAccess + destination.KeyVaultNetworkAccess = genruntime.ClonePointerToString(vaultKms.KeyVaultNetworkAccess) + + // KeyVaultResourceReference + if vaultKms.KeyVaultResourceReference != nil { + keyVaultResourceReference := vaultKms.KeyVaultResourceReference.Copy() + destination.KeyVaultResourceReference = &keyVaultResourceReference + } else { + destination.KeyVaultResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAzureKeyVaultKms interface (if implemented) to customize the conversion + var vaultKmsAsAny any = vaultKms + if augmentedVaultKms, ok := vaultKmsAsAny.(augmentConversionForAzureKeyVaultKms); ok { + err := augmentedVaultKms.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.AzureKeyVaultKms_STATUS +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + KeyId *string `json:"keyId,omitempty"` + KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` + KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_AzureKeyVaultKms_STATUS populates our AzureKeyVaultKms_STATUS from the provided source AzureKeyVaultKms_STATUS +func (vaultKms *AzureKeyVaultKms_STATUS) AssignProperties_From_AzureKeyVaultKms_STATUS(source *v20231001s.AzureKeyVaultKms_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + vaultKms.Enabled = &enabled + } else { + vaultKms.Enabled = nil + } + + // KeyId + vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) + + // KeyVaultNetworkAccess + vaultKms.KeyVaultNetworkAccess = genruntime.ClonePointerToString(source.KeyVaultNetworkAccess) + + // KeyVaultResourceId + vaultKms.KeyVaultResourceId = genruntime.ClonePointerToString(source.KeyVaultResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + vaultKms.PropertyBag = propertyBag + } else { + vaultKms.PropertyBag = nil + } + + // Invoke the augmentConversionForAzureKeyVaultKms_STATUS interface (if implemented) to customize the conversion + var vaultKmsAsAny any = vaultKms + if augmentedVaultKms, ok := vaultKmsAsAny.(augmentConversionForAzureKeyVaultKms_STATUS); ok { + err := augmentedVaultKms.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AzureKeyVaultKms_STATUS populates the provided destination AzureKeyVaultKms_STATUS from our AzureKeyVaultKms_STATUS +func (vaultKms *AzureKeyVaultKms_STATUS) AssignProperties_To_AzureKeyVaultKms_STATUS(destination *v20231001s.AzureKeyVaultKms_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(vaultKms.PropertyBag) + + // Enabled + if vaultKms.Enabled != nil { + enabled := *vaultKms.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KeyId + destination.KeyId = genruntime.ClonePointerToString(vaultKms.KeyId) + + // KeyVaultNetworkAccess + destination.KeyVaultNetworkAccess = genruntime.ClonePointerToString(vaultKms.KeyVaultNetworkAccess) + + // KeyVaultResourceId + destination.KeyVaultResourceId = genruntime.ClonePointerToString(vaultKms.KeyVaultResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAzureKeyVaultKms_STATUS interface (if implemented) to customize the conversion + var vaultKmsAsAny any = vaultKms + if augmentedVaultKms, ok := vaultKmsAsAny.(augmentConversionForAzureKeyVaultKms_STATUS); ok { + err := augmentedVaultKms.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ContainerServiceSshConfiguration +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicKeys []ContainerServiceSshPublicKey `json:"publicKeys,omitempty"` +} + +// AssignProperties_From_ContainerServiceSshConfiguration populates our ContainerServiceSshConfiguration from the provided source ContainerServiceSshConfiguration +func (configuration *ContainerServiceSshConfiguration) AssignProperties_From_ContainerServiceSshConfiguration(source *v20231001s.ContainerServiceSshConfiguration) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicKeys + if source.PublicKeys != nil { + publicKeyList := make([]ContainerServiceSshPublicKey, len(source.PublicKeys)) + for publicKeyIndex, publicKeyItem := range source.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey ContainerServiceSshPublicKey + err := publicKey.AssignProperties_From_ContainerServiceSshPublicKey(&publicKeyItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshPublicKey() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + configuration.PublicKeys = publicKeyList + } else { + configuration.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + configuration.PropertyBag = propertyBag + } else { + configuration.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshConfiguration interface (if implemented) to customize the conversion + var configurationAsAny any = configuration + if augmentedConfiguration, ok := configurationAsAny.(augmentConversionForContainerServiceSshConfiguration); ok { + err := augmentedConfiguration.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshConfiguration populates the provided destination ContainerServiceSshConfiguration from our ContainerServiceSshConfiguration +func (configuration *ContainerServiceSshConfiguration) AssignProperties_To_ContainerServiceSshConfiguration(destination *v20231001s.ContainerServiceSshConfiguration) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(configuration.PropertyBag) + + // PublicKeys + if configuration.PublicKeys != nil { + publicKeyList := make([]v20231001s.ContainerServiceSshPublicKey, len(configuration.PublicKeys)) + for publicKeyIndex, publicKeyItem := range configuration.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey v20231001s.ContainerServiceSshPublicKey + err := publicKeyItem.AssignProperties_To_ContainerServiceSshPublicKey(&publicKey) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshPublicKey() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + destination.PublicKeys = publicKeyList + } else { + destination.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshConfiguration interface (if implemented) to customize the conversion + var configurationAsAny any = configuration + if augmentedConfiguration, ok := configurationAsAny.(augmentConversionForContainerServiceSshConfiguration); ok { + err := augmentedConfiguration.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ContainerServiceSshConfiguration_STATUS +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicKeys []ContainerServiceSshPublicKey_STATUS `json:"publicKeys,omitempty"` +} + +// AssignProperties_From_ContainerServiceSshConfiguration_STATUS populates our ContainerServiceSshConfiguration_STATUS from the provided source ContainerServiceSshConfiguration_STATUS +func (configuration *ContainerServiceSshConfiguration_STATUS) AssignProperties_From_ContainerServiceSshConfiguration_STATUS(source *v20231001s.ContainerServiceSshConfiguration_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicKeys + if source.PublicKeys != nil { + publicKeyList := make([]ContainerServiceSshPublicKey_STATUS, len(source.PublicKeys)) + for publicKeyIndex, publicKeyItem := range source.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey ContainerServiceSshPublicKey_STATUS + err := publicKey.AssignProperties_From_ContainerServiceSshPublicKey_STATUS(&publicKeyItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + configuration.PublicKeys = publicKeyList + } else { + configuration.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + configuration.PropertyBag = propertyBag + } else { + configuration.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshConfiguration_STATUS interface (if implemented) to customize the conversion + var configurationAsAny any = configuration + if augmentedConfiguration, ok := configurationAsAny.(augmentConversionForContainerServiceSshConfiguration_STATUS); ok { + err := augmentedConfiguration.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshConfiguration_STATUS populates the provided destination ContainerServiceSshConfiguration_STATUS from our ContainerServiceSshConfiguration_STATUS +func (configuration *ContainerServiceSshConfiguration_STATUS) AssignProperties_To_ContainerServiceSshConfiguration_STATUS(destination *v20231001s.ContainerServiceSshConfiguration_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(configuration.PropertyBag) + + // PublicKeys + if configuration.PublicKeys != nil { + publicKeyList := make([]v20231001s.ContainerServiceSshPublicKey_STATUS, len(configuration.PublicKeys)) + for publicKeyIndex, publicKeyItem := range configuration.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey v20231001s.ContainerServiceSshPublicKey_STATUS + err := publicKeyItem.AssignProperties_To_ContainerServiceSshPublicKey_STATUS(&publicKey) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + destination.PublicKeys = publicKeyList + } else { + destination.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshConfiguration_STATUS interface (if implemented) to customize the conversion + var configurationAsAny any = configuration + if augmentedConfiguration, ok := configurationAsAny.(augmentConversionForContainerServiceSshConfiguration_STATUS); ok { + err := augmentedConfiguration.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAzureMonitorProfileMetrics +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics struct { + Enabled *bool `json:"enabled,omitempty"` + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics +func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics + err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + metrics.PropertyBag = propertyBag + } else { + metrics.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileMetrics interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileMetrics); ok { + err := augmentedMetrics.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics populates the provided destination ManagedClusterAzureMonitorProfileMetrics from our ManagedClusterAzureMonitorProfileMetrics +func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(destination *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(metrics.PropertyBag) + + // Enabled + if metrics.Enabled != nil { + enabled := *metrics.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KubeStateMetrics + if metrics.KubeStateMetrics != nil { + var kubeStateMetric v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics + err := metrics.KubeStateMetrics.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(&kubeStateMetric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + } + destination.KubeStateMetrics = &kubeStateMetric + } else { + destination.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileMetrics interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileMetrics); ok { + err := augmentedMetrics.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterAzureMonitorProfileMetrics_STATUS +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS `json:"kubeStateMetrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS populates our ManagedClusterAzureMonitorProfileMetrics_STATUS from the provided source ManagedClusterAzureMonitorProfileMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + metrics.PropertyBag = propertyBag + } else { + metrics.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS); ok { + err := augmentedMetrics.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS populates the provided destination ManagedClusterAzureMonitorProfileMetrics_STATUS from our ManagedClusterAzureMonitorProfileMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(metrics.PropertyBag) + + // Enabled + if metrics.Enabled != nil { + enabled := *metrics.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KubeStateMetrics + if metrics.KubeStateMetrics != nil { + var kubeStateMetric v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := metrics.KubeStateMetrics.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&kubeStateMetric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") + } + destination.KubeStateMetrics = &kubeStateMetric + } else { + destination.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS); ok { + err := augmentedMetrics.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterIdentity_UserAssignedIdentities_STATUS +type ManagedClusterIdentity_UserAssignedIdentities_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS populates our ManagedClusterIdentity_UserAssignedIdentities_STATUS from the provided source ManagedClusterIdentity_UserAssignedIdentities_STATUS +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(source *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ClientId + identities.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // PrincipalId + identities.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // Update the property bag + if len(propertyBag) > 0 { + identities.PropertyBag = propertyBag + } else { + identities.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS interface (if implemented) to customize the conversion + var identitiesAsAny any = identities + if augmentedIdentities, ok := identitiesAsAny.(augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS); ok { + err := augmentedIdentities.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS populates the provided destination ManagedClusterIdentity_UserAssignedIdentities_STATUS from our ManagedClusterIdentity_UserAssignedIdentities_STATUS +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(destination *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identities.PropertyBag) + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identities.ClientId) + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(identities.PrincipalId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS interface (if implemented) to customize the conversion + var identitiesAsAny any = identities + if augmentedIdentities, ok := identitiesAsAny.(augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS); ok { + err := augmentedIdentities.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterLoadBalancerProfile +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile struct { + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs `json:"managedOutboundIPs,omitempty"` + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes `json:"outboundIPPrefixes,omitempty"` + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs `json:"outboundIPs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile populates our ManagedClusterLoadBalancerProfile from the provided source ManagedClusterLoadBalancerProfile +func (profile *ManagedClusterLoadBalancerProfile) AssignProperties_From_ManagedClusterLoadBalancerProfile(source *v20231001s.ManagedClusterLoadBalancerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllocatedOutboundPorts + profile.AllocatedOutboundPorts = genruntime.ClonePointerToInt(source.AllocatedOutboundPorts) + + // BackendPoolType + if source.BackendPoolType != nil { + propertyBag.Add("BackendPoolType", *source.BackendPoolType) + } else { + propertyBag.Remove("BackendPoolType") + } + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.AssignProperties_From_ResourceReference(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if source.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + profile.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if source.ManagedOutboundIPs != nil { + var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := managedOutboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(source.ManagedOutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs() to populate field ManagedOutboundIPs") + } + profile.ManagedOutboundIPs = &managedOutboundIP + } else { + profile.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if source.OutboundIPPrefixes != nil { + var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := outboundIPPrefix.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(source.OutboundIPPrefixes) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes() to populate field OutboundIPPrefixes") + } + profile.OutboundIPPrefixes = &outboundIPPrefix + } else { + profile.OutboundIPPrefixes = nil + } + + // OutboundIPs + if source.OutboundIPs != nil { + var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs + err := outboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(source.OutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs() to populate field OutboundIPs") + } + profile.OutboundIPs = &outboundIP + } else { + profile.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterLoadBalancerProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile populates the provided destination ManagedClusterLoadBalancerProfile from our ManagedClusterLoadBalancerProfile +func (profile *ManagedClusterLoadBalancerProfile) AssignProperties_To_ManagedClusterLoadBalancerProfile(destination *v20231001s.ManagedClusterLoadBalancerProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllocatedOutboundPorts + destination.AllocatedOutboundPorts = genruntime.ClonePointerToInt(profile.AllocatedOutboundPorts) + + // BackendPoolType + if propertyBag.Contains("BackendPoolType") { + var backendPoolType string + err := propertyBag.Pull("BackendPoolType", &backendPoolType) + if err != nil { + return errors.Wrap(err, "pulling 'BackendPoolType' from propertyBag") + } + + destination.BackendPoolType = &backendPoolType + } else { + destination.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if profile.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *profile.EnableMultipleStandardLoadBalancers + destination.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + destination.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if profile.ManagedOutboundIPs != nil { + var managedOutboundIP v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := profile.ManagedOutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&managedOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs() to populate field ManagedOutboundIPs") + } + destination.ManagedOutboundIPs = &managedOutboundIP + } else { + destination.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if profile.OutboundIPPrefixes != nil { + var outboundIPPrefix v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := profile.OutboundIPPrefixes.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&outboundIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes() to populate field OutboundIPPrefixes") + } + destination.OutboundIPPrefixes = &outboundIPPrefix + } else { + destination.OutboundIPPrefixes = nil + } + + // OutboundIPs + if profile.OutboundIPs != nil { + var outboundIP v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs + err := profile.OutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(&outboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs() to populate field OutboundIPs") + } + destination.OutboundIPs = &outboundIP + } else { + destination.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterLoadBalancerProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_STATUS +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile_STATUS struct { + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS `json:"managedOutboundIPs,omitempty"` + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS `json:"outboundIPPrefixes,omitempty"` + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS `json:"outboundIPs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS populates our ManagedClusterLoadBalancerProfile_STATUS from the provided source ManagedClusterLoadBalancerProfile_STATUS +func (profile *ManagedClusterLoadBalancerProfile_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllocatedOutboundPorts + profile.AllocatedOutboundPorts = genruntime.ClonePointerToInt(source.AllocatedOutboundPorts) + + // BackendPoolType + if source.BackendPoolType != nil { + propertyBag.Add("BackendPoolType", *source.BackendPoolType) + } else { + propertyBag.Remove("BackendPoolType") + } + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference_STATUS, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference_STATUS + err := effectiveOutboundIP.AssignProperties_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if source.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + profile.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if source.ManagedOutboundIPs != nil { + var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := managedOutboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source.ManagedOutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") + } + profile.ManagedOutboundIPs = &managedOutboundIP + } else { + profile.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if source.OutboundIPPrefixes != nil { + var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := outboundIPPrefix.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source.OutboundIPPrefixes) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") + } + profile.OutboundIPPrefixes = &outboundIPPrefix + } else { + profile.OutboundIPPrefixes = nil + } + + // OutboundIPs + if source.OutboundIPs != nil { + var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := outboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source.OutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") + } + profile.OutboundIPs = &outboundIP + } else { + profile.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_STATUS from our ManagedClusterLoadBalancerProfile_STATUS +func (profile *ManagedClusterLoadBalancerProfile_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllocatedOutboundPorts + destination.AllocatedOutboundPorts = genruntime.ClonePointerToInt(profile.AllocatedOutboundPorts) + + // BackendPoolType + if propertyBag.Contains("BackendPoolType") { + var backendPoolType string + err := propertyBag.Pull("BackendPoolType", &backendPoolType) + if err != nil { + return errors.Wrap(err, "pulling 'BackendPoolType' from propertyBag") + } + + destination.BackendPoolType = &backendPoolType + } else { + destination.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference_STATUS, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference_STATUS + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference_STATUS(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if profile.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *profile.EnableMultipleStandardLoadBalancers + destination.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + destination.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if profile.ManagedOutboundIPs != nil { + var managedOutboundIP v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := profile.ManagedOutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&managedOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") + } + destination.ManagedOutboundIPs = &managedOutboundIP + } else { + destination.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if profile.OutboundIPPrefixes != nil { + var outboundIPPrefix v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := profile.OutboundIPPrefixes.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&outboundIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") + } + destination.OutboundIPPrefixes = &outboundIPPrefix + } else { + destination.OutboundIPPrefixes = nil + } + + // OutboundIPs + if profile.OutboundIPs != nil { + var outboundIP v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := profile.OutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&outboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") + } + destination.OutboundIPs = &outboundIP + } else { + destination.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterNATGatewayProfile +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile struct { + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile `json:"managedOutboundIPProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterNATGatewayProfile populates our ManagedClusterNATGatewayProfile from the provided source ManagedClusterNATGatewayProfile +func (profile *ManagedClusterNATGatewayProfile) AssignProperties_From_ManagedClusterNATGatewayProfile(source *v20231001s.ManagedClusterNATGatewayProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.AssignProperties_From_ResourceReference(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if source.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile + err := managedOutboundIPProfile.AssignProperties_From_ManagedClusterManagedOutboundIPProfile(source.ManagedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterManagedOutboundIPProfile() to populate field ManagedOutboundIPProfile") + } + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + profile.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterNATGatewayProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterNATGatewayProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterNATGatewayProfile populates the provided destination ManagedClusterNATGatewayProfile from our ManagedClusterNATGatewayProfile +func (profile *ManagedClusterNATGatewayProfile) AssignProperties_To_ManagedClusterNATGatewayProfile(destination *v20231001s.ManagedClusterNATGatewayProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if profile.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile v20231001s.ManagedClusterManagedOutboundIPProfile + err := profile.ManagedOutboundIPProfile.AssignProperties_To_ManagedClusterManagedOutboundIPProfile(&managedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterManagedOutboundIPProfile() to populate field ManagedOutboundIPProfile") + } + destination.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + destination.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterNATGatewayProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterNATGatewayProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterNATGatewayProfile_STATUS +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile_STATUS struct { + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_STATUS `json:"managedOutboundIPProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS populates our ManagedClusterNATGatewayProfile_STATUS from the provided source ManagedClusterNATGatewayProfile_STATUS +func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(source *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference_STATUS, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference_STATUS + err := effectiveOutboundIP.AssignProperties_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if source.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile_STATUS + err := managedOutboundIPProfile.AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(source.ManagedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") + } + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + profile.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterNATGatewayProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterNATGatewayProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS populates the provided destination ManagedClusterNATGatewayProfile_STATUS from our ManagedClusterNATGatewayProfile_STATUS +func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(destination *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference_STATUS, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference_STATUS + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference_STATUS(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if profile.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS + err := profile.ManagedOutboundIPProfile.AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(&managedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") + } + destination.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + destination.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterNATGatewayProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterNATGatewayProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterOperatorConfigMaps +type ManagedClusterOperatorConfigMaps struct { + OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorConfigMaps populates our ManagedClusterOperatorConfigMaps from the provided source ManagedClusterOperatorConfigMaps +func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_From_ManagedClusterOperatorConfigMaps(source *v20231001s.ManagedClusterOperatorConfigMaps) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // OIDCIssuerProfile + if source.OIDCIssuerProfile != nil { + oidcIssuerProfile := source.OIDCIssuerProfile.Copy() + maps.OIDCIssuerProfile = &oidcIssuerProfile + } else { + maps.OIDCIssuerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + maps.PropertyBag = propertyBag + } else { + maps.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorConfigMaps interface (if implemented) to customize the conversion + var mapsAsAny any = maps + if augmentedMaps, ok := mapsAsAny.(augmentConversionForManagedClusterOperatorConfigMaps); ok { + err := augmentedMaps.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorConfigMaps populates the provided destination ManagedClusterOperatorConfigMaps from our ManagedClusterOperatorConfigMaps +func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_To_ManagedClusterOperatorConfigMaps(destination *v20231001s.ManagedClusterOperatorConfigMaps) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(maps.PropertyBag) + + // OIDCIssuerProfile + if maps.OIDCIssuerProfile != nil { + oidcIssuerProfile := maps.OIDCIssuerProfile.Copy() + destination.OIDCIssuerProfile = &oidcIssuerProfile + } else { + destination.OIDCIssuerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorConfigMaps interface (if implemented) to customize the conversion + var mapsAsAny any = maps + if augmentedMaps, ok := mapsAsAny.(augmentConversionForManagedClusterOperatorConfigMaps); ok { + err := augmentedMaps.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterOperatorSecrets +type ManagedClusterOperatorSecrets struct { + AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserCredentials *genruntime.SecretDestination `json:"userCredentials,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorSecrets populates our ManagedClusterOperatorSecrets from the provided source ManagedClusterOperatorSecrets +func (secrets *ManagedClusterOperatorSecrets) AssignProperties_From_ManagedClusterOperatorSecrets(source *v20231001s.ManagedClusterOperatorSecrets) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AdminCredentials + if source.AdminCredentials != nil { + adminCredential := source.AdminCredentials.Copy() + secrets.AdminCredentials = &adminCredential + } else { + secrets.AdminCredentials = nil + } + + // UserCredentials + if source.UserCredentials != nil { + userCredential := source.UserCredentials.Copy() + secrets.UserCredentials = &userCredential + } else { + secrets.UserCredentials = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + secrets.PropertyBag = propertyBag + } else { + secrets.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorSecrets interface (if implemented) to customize the conversion + var secretsAsAny any = secrets + if augmentedSecrets, ok := secretsAsAny.(augmentConversionForManagedClusterOperatorSecrets); ok { + err := augmentedSecrets.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorSecrets populates the provided destination ManagedClusterOperatorSecrets from our ManagedClusterOperatorSecrets +func (secrets *ManagedClusterOperatorSecrets) AssignProperties_To_ManagedClusterOperatorSecrets(destination *v20231001s.ManagedClusterOperatorSecrets) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(secrets.PropertyBag) + + // AdminCredentials + if secrets.AdminCredentials != nil { + adminCredential := secrets.AdminCredentials.Copy() + destination.AdminCredentials = &adminCredential + } else { + destination.AdminCredentials = nil + } + + // UserCredentials + if secrets.UserCredentials != nil { + userCredential := secrets.UserCredentials.Copy() + destination.UserCredentials = &userCredential + } else { + destination.UserCredentials = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterOperatorSecrets interface (if implemented) to customize the conversion + var secretsAsAny any = secrets + if augmentedSecrets, ok := secretsAsAny.(augmentConversionForManagedClusterOperatorSecrets); ok { + err := augmentedSecrets.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentity +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity struct { + BindingSelector *string `json:"bindingSelector,omitempty"` + Identity *UserAssignedIdentity `json:"identity,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentity populates our ManagedClusterPodIdentity from the provided source ManagedClusterPodIdentity +func (identity *ManagedClusterPodIdentity) AssignProperties_From_ManagedClusterPodIdentity(source *v20231001s.ManagedClusterPodIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BindingSelector + identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) + + // Identity + if source.Identity != nil { + var identityLocal UserAssignedIdentity + err := identityLocal.AssignProperties_From_UserAssignedIdentity(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity() to populate field Identity") + } + identity.Identity = &identityLocal + } else { + identity.Identity = nil + } + + // Name + identity.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + identity.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterPodIdentity); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity populates the provided destination ManagedClusterPodIdentity from our ManagedClusterPodIdentity +func (identity *ManagedClusterPodIdentity) AssignProperties_To_ManagedClusterPodIdentity(destination *v20231001s.ManagedClusterPodIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // BindingSelector + destination.BindingSelector = genruntime.ClonePointerToString(identity.BindingSelector) + + // Identity + if identity.Identity != nil { + var identityLocal v20231001s.UserAssignedIdentity + err := identity.Identity.AssignProperties_To_UserAssignedIdentity(&identityLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity() to populate field Identity") + } + destination.Identity = &identityLocal + } else { + destination.Identity = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(identity.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(identity.Namespace) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterPodIdentity); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentity_STATUS +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity_STATUS struct { + BindingSelector *string `json:"bindingSelector,omitempty"` + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningInfo *ManagedClusterPodIdentity_ProvisioningInfo_STATUS `json:"provisioningInfo,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentity_STATUS populates our ManagedClusterPodIdentity_STATUS from the provided source ManagedClusterPodIdentity_STATUS +func (identity *ManagedClusterPodIdentity_STATUS) AssignProperties_From_ManagedClusterPodIdentity_STATUS(source *v20231001s.ManagedClusterPodIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // BindingSelector + identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) + + // Identity + if source.Identity != nil { + var identityLocal UserAssignedIdentity_STATUS + err := identityLocal.AssignProperties_From_UserAssignedIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field Identity") + } + identity.Identity = &identityLocal + } else { + identity.Identity = nil + } + + // Name + identity.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + identity.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // ProvisioningInfo + if source.ProvisioningInfo != nil { + var provisioningInfo ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := provisioningInfo.AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(source.ProvisioningInfo) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS() to populate field ProvisioningInfo") + } + identity.ProvisioningInfo = &provisioningInfo + } else { + identity.ProvisioningInfo = nil + } + + // ProvisioningState + identity.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterPodIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity_STATUS populates the provided destination ManagedClusterPodIdentity_STATUS from our ManagedClusterPodIdentity_STATUS +func (identity *ManagedClusterPodIdentity_STATUS) AssignProperties_To_ManagedClusterPodIdentity_STATUS(destination *v20231001s.ManagedClusterPodIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // BindingSelector + destination.BindingSelector = genruntime.ClonePointerToString(identity.BindingSelector) + + // Identity + if identity.Identity != nil { + var identityLocal v20231001s.UserAssignedIdentity_STATUS + err := identity.Identity.AssignProperties_To_UserAssignedIdentity_STATUS(&identityLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identityLocal + } else { + destination.Identity = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(identity.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(identity.Namespace) + + // ProvisioningInfo + if identity.ProvisioningInfo != nil { + var provisioningInfo v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := identity.ProvisioningInfo.AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&provisioningInfo) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS() to populate field ProvisioningInfo") + } + destination.ProvisioningInfo = &provisioningInfo + } else { + destination.ProvisioningInfo = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(identity.ProvisioningState) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterPodIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentityException +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException struct { + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PodLabels map[string]string `json:"podLabels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentityException populates our ManagedClusterPodIdentityException from the provided source ManagedClusterPodIdentityException +func (exception *ManagedClusterPodIdentityException) AssignProperties_From_ManagedClusterPodIdentityException(source *v20231001s.ManagedClusterPodIdentityException) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + exception.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + exception.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // PodLabels + exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + exception.PropertyBag = propertyBag + } else { + exception.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityException interface (if implemented) to customize the conversion + var exceptionAsAny any = exception + if augmentedException, ok := exceptionAsAny.(augmentConversionForManagedClusterPodIdentityException); ok { + err := augmentedException.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityException populates the provided destination ManagedClusterPodIdentityException from our ManagedClusterPodIdentityException +func (exception *ManagedClusterPodIdentityException) AssignProperties_To_ManagedClusterPodIdentityException(destination *v20231001s.ManagedClusterPodIdentityException) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(exception.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(exception.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(exception.Namespace) + + // PodLabels + destination.PodLabels = genruntime.CloneMapOfStringToString(exception.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityException interface (if implemented) to customize the conversion + var exceptionAsAny any = exception + if augmentedException, ok := exceptionAsAny.(augmentConversionForManagedClusterPodIdentityException); ok { + err := augmentedException.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterPodIdentityException_STATUS +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException_STATUS struct { + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PodLabels map[string]string `json:"podLabels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterPodIdentityException_STATUS populates our ManagedClusterPodIdentityException_STATUS from the provided source ManagedClusterPodIdentityException_STATUS +func (exception *ManagedClusterPodIdentityException_STATUS) AssignProperties_From_ManagedClusterPodIdentityException_STATUS(source *v20231001s.ManagedClusterPodIdentityException_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Name + exception.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + exception.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // PodLabels + exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + exception.PropertyBag = propertyBag + } else { + exception.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityException_STATUS interface (if implemented) to customize the conversion + var exceptionAsAny any = exception + if augmentedException, ok := exceptionAsAny.(augmentConversionForManagedClusterPodIdentityException_STATUS); ok { + err := augmentedException.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityException_STATUS populates the provided destination ManagedClusterPodIdentityException_STATUS from our ManagedClusterPodIdentityException_STATUS +func (exception *ManagedClusterPodIdentityException_STATUS) AssignProperties_To_ManagedClusterPodIdentityException_STATUS(destination *v20231001s.ManagedClusterPodIdentityException_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(exception.PropertyBag) + + // Name + destination.Name = genruntime.ClonePointerToString(exception.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(exception.Namespace) + + // PodLabels + destination.PodLabels = genruntime.CloneMapOfStringToString(exception.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityException_STATUS interface (if implemented) to customize the conversion + var exceptionAsAny any = exception + if augmentedException, ok := exceptionAsAny.(augmentConversionForManagedClusterPodIdentityException_STATUS); ok { + err := augmentedException.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } - // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). - // This is of the form: - // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} - PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` - PowerState *PowerState `json:"powerState,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + // No error + return nil +} - // ProximityPlacementGroupReference: The ID for Proximity Placement Group. - ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` - ScaleDownMode *string `json:"scaleDownMode,omitempty"` - ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` - ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` - SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` - Tags map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` - UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` - VmSize *string `json:"vmSize,omitempty"` +// Storage version of v1api20230201.ManagedClusterSecurityProfileDefender +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender struct { + // LogAnalyticsWorkspaceResourceReference: Resource ID of the Log Analytics workspace to be associated with Microsoft + // Defender. When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When + // Microsoft Defender is disabled, leave the field empty. + LogAnalyticsWorkspaceResourceReference *genruntime.ResourceReference `armReference:"LogAnalyticsWorkspaceResourceId" json:"logAnalyticsWorkspaceResourceReference,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring `json:"securityMonitoring,omitempty"` +} - // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is - // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: - // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} - VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` - WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +// AssignProperties_From_ManagedClusterSecurityProfileDefender populates our ManagedClusterSecurityProfileDefender from the provided source ManagedClusterSecurityProfileDefender +func (defender *ManagedClusterSecurityProfileDefender) AssignProperties_From_ManagedClusterSecurityProfileDefender(source *v20231001s.ManagedClusterSecurityProfileDefender) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // LogAnalyticsWorkspaceResourceReference + if source.LogAnalyticsWorkspaceResourceReference != nil { + logAnalyticsWorkspaceResourceReference := source.LogAnalyticsWorkspaceResourceReference.Copy() + defender.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference + } else { + defender.LogAnalyticsWorkspaceResourceReference = nil + } + + // SecurityMonitoring + if source.SecurityMonitoring != nil { + var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := securityMonitoring.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(source.SecurityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring() to populate field SecurityMonitoring") + } + defender.SecurityMonitoring = &securityMonitoring + } else { + defender.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + defender.PropertyBag = propertyBag + } else { + defender.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefender interface (if implemented) to customize the conversion + var defenderAsAny any = defender + if augmentedDefender, ok := defenderAsAny.(augmentConversionForManagedClusterSecurityProfileDefender); ok { + err := augmentedDefender.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterAgentPoolProfile_STATUS -// Profile for the container service agent pool. -type ManagedClusterAgentPoolProfile_STATUS struct { - AvailabilityZones []string `json:"availabilityZones,omitempty"` - Count *int `json:"count,omitempty"` - CreationData *CreationData_STATUS `json:"creationData,omitempty"` - CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` - EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` - EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` - EnableFIPS *bool `json:"enableFIPS,omitempty"` - EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` - EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` - GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` - HostGroupID *string `json:"hostGroupID,omitempty"` - KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` - KubeletDiskType *string `json:"kubeletDiskType,omitempty"` - LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` - MaxCount *int `json:"maxCount,omitempty"` - MaxPods *int `json:"maxPods,omitempty"` - MinCount *int `json:"minCount,omitempty"` - Mode *string `json:"mode,omitempty"` - Name *string `json:"name,omitempty"` - NodeImageVersion *string `json:"nodeImageVersion,omitempty"` - NodeLabels map[string]string `json:"nodeLabels,omitempty"` - NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` - NodeTaints []string `json:"nodeTaints,omitempty"` - OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` - OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` - OsDiskType *string `json:"osDiskType,omitempty"` - OsSKU *string `json:"osSKU,omitempty"` - OsType *string `json:"osType,omitempty"` - PodSubnetID *string `json:"podSubnetID,omitempty"` - PowerState *PowerState_STATUS `json:"powerState,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ProvisioningState *string `json:"provisioningState,omitempty"` - ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` - ScaleDownMode *string `json:"scaleDownMode,omitempty"` - ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` - ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` - SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` - Tags map[string]string `json:"tags,omitempty"` - Type *string `json:"type,omitempty"` - UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` - VmSize *string `json:"vmSize,omitempty"` - VnetSubnetID *string `json:"vnetSubnetID,omitempty"` - WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +// AssignProperties_To_ManagedClusterSecurityProfileDefender populates the provided destination ManagedClusterSecurityProfileDefender from our ManagedClusterSecurityProfileDefender +func (defender *ManagedClusterSecurityProfileDefender) AssignProperties_To_ManagedClusterSecurityProfileDefender(destination *v20231001s.ManagedClusterSecurityProfileDefender) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(defender.PropertyBag) + + // LogAnalyticsWorkspaceResourceReference + if defender.LogAnalyticsWorkspaceResourceReference != nil { + logAnalyticsWorkspaceResourceReference := defender.LogAnalyticsWorkspaceResourceReference.Copy() + destination.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference + } else { + destination.LogAnalyticsWorkspaceResourceReference = nil + } + + // SecurityMonitoring + if defender.SecurityMonitoring != nil { + var securityMonitoring v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := defender.SecurityMonitoring.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&securityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring() to populate field SecurityMonitoring") + } + destination.SecurityMonitoring = &securityMonitoring + } else { + destination.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefender interface (if implemented) to customize the conversion + var defenderAsAny any = defender + if augmentedDefender, ok := defenderAsAny.(augmentConversionForManagedClusterSecurityProfileDefender); ok { + err := augmentedDefender.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfileDefender_STATUS +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender_STATUS struct { + LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS `json:"securityMonitoring,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS populates our ManagedClusterSecurityProfileDefender_STATUS from the provided source ManagedClusterSecurityProfileDefender_STATUS +func (defender *ManagedClusterSecurityProfileDefender_STATUS) AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(source *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // LogAnalyticsWorkspaceResourceId + defender.LogAnalyticsWorkspaceResourceId = genruntime.ClonePointerToString(source.LogAnalyticsWorkspaceResourceId) + + // SecurityMonitoring + if source.SecurityMonitoring != nil { + var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := securityMonitoring.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source.SecurityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") + } + defender.SecurityMonitoring = &securityMonitoring + } else { + defender.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + defender.PropertyBag = propertyBag + } else { + defender.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefender_STATUS interface (if implemented) to customize the conversion + var defenderAsAny any = defender + if augmentedDefender, ok := defenderAsAny.(augmentConversionForManagedClusterSecurityProfileDefender_STATUS); ok { + err := augmentedDefender.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS populates the provided destination ManagedClusterSecurityProfileDefender_STATUS from our ManagedClusterSecurityProfileDefender_STATUS +func (defender *ManagedClusterSecurityProfileDefender_STATUS) AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(destination *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(defender.PropertyBag) + + // LogAnalyticsWorkspaceResourceId + destination.LogAnalyticsWorkspaceResourceId = genruntime.ClonePointerToString(defender.LogAnalyticsWorkspaceResourceId) + + // SecurityMonitoring + if defender.SecurityMonitoring != nil { + var securityMonitoring v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := defender.SecurityMonitoring.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&securityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") + } + destination.SecurityMonitoring = &securityMonitoring + } else { + destination.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefender_STATUS interface (if implemented) to customize the conversion + var defenderAsAny any = defender + if augmentedDefender, ok := defenderAsAny.(augmentConversionForManagedClusterSecurityProfileDefender_STATUS); ok { + err := augmentedDefender.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfileImageCleaner +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner struct { + Enabled *bool `json:"enabled,omitempty"` + IntervalHours *int `json:"intervalHours,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfileImageCleaner populates our ManagedClusterSecurityProfileImageCleaner from the provided source ManagedClusterSecurityProfileImageCleaner +func (cleaner *ManagedClusterSecurityProfileImageCleaner) AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(source *v20231001s.ManagedClusterSecurityProfileImageCleaner) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + cleaner.Enabled = &enabled + } else { + cleaner.Enabled = nil + } + + // IntervalHours + cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + cleaner.PropertyBag = propertyBag + } else { + cleaner.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileImageCleaner interface (if implemented) to customize the conversion + var cleanerAsAny any = cleaner + if augmentedCleaner, ok := cleanerAsAny.(augmentConversionForManagedClusterSecurityProfileImageCleaner); ok { + err := augmentedCleaner.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileImageCleaner populates the provided destination ManagedClusterSecurityProfileImageCleaner from our ManagedClusterSecurityProfileImageCleaner +func (cleaner *ManagedClusterSecurityProfileImageCleaner) AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(destination *v20231001s.ManagedClusterSecurityProfileImageCleaner) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(cleaner.PropertyBag) + + // Enabled + if cleaner.Enabled != nil { + enabled := *cleaner.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IntervalHours + destination.IntervalHours = genruntime.ClonePointerToInt(cleaner.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileImageCleaner interface (if implemented) to customize the conversion + var cleanerAsAny any = cleaner + if augmentedCleaner, ok := cleanerAsAny.(augmentConversionForManagedClusterSecurityProfileImageCleaner); ok { + err := augmentedCleaner.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfileImageCleaner_STATUS +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + IntervalHours *int `json:"intervalHours,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS populates our ManagedClusterSecurityProfileImageCleaner_STATUS from the provided source ManagedClusterSecurityProfileImageCleaner_STATUS +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + cleaner.Enabled = &enabled + } else { + cleaner.Enabled = nil + } + + // IntervalHours + cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + cleaner.PropertyBag = propertyBag + } else { + cleaner.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS interface (if implemented) to customize the conversion + var cleanerAsAny any = cleaner + if augmentedCleaner, ok := cleanerAsAny.(augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS); ok { + err := augmentedCleaner.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS populates the provided destination ManagedClusterSecurityProfileImageCleaner_STATUS from our ManagedClusterSecurityProfileImageCleaner_STATUS +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(destination *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(cleaner.PropertyBag) + + // Enabled + if cleaner.Enabled != nil { + enabled := *cleaner.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IntervalHours + destination.IntervalHours = genruntime.ClonePointerToInt(cleaner.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS interface (if implemented) to customize the conversion + var cleanerAsAny any = cleaner + if augmentedCleaner, ok := cleanerAsAny.(augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS); ok { + err := augmentedCleaner.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfileWorkloadIdentity +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity populates our ManagedClusterSecurityProfileWorkloadIdentity from the provided source ManagedClusterSecurityProfileWorkloadIdentity +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(source *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + identity.Enabled = &enabled + } else { + identity.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileWorkloadIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterSecurityProfileWorkloadIdentity); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity populates the provided destination ManagedClusterSecurityProfileWorkloadIdentity from our ManagedClusterSecurityProfileWorkloadIdentity +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(destination *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // Enabled + if identity.Enabled != nil { + enabled := *identity.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileWorkloadIdentity interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterSecurityProfileWorkloadIdentity); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterSecurityProfileWorkloadIdentity_STATUS +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates our ManagedClusterSecurityProfileWorkloadIdentity_STATUS from the provided source ManagedClusterSecurityProfileWorkloadIdentity_STATUS +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + identity.Enabled = &enabled + } else { + identity.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + identity.PropertyBag = propertyBag + } else { + identity.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterAPIServerAccessProfile -// Access profile for managed cluster API server. -type ManagedClusterAPIServerAccessProfile struct { - AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` - DisableRunCommand *bool `json:"disableRunCommand,omitempty"` - EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` - EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` - PrivateDNSZone *string `json:"privateDNSZone,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates the provided destination ManagedClusterSecurityProfileWorkloadIdentity_STATUS from our ManagedClusterSecurityProfileWorkloadIdentity_STATUS +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(destination *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(identity.PropertyBag) + + // Enabled + if identity.Enabled != nil { + enabled := *identity.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS interface (if implemented) to customize the conversion + var identityAsAny any = identity + if augmentedIdentity, ok := identityAsAny.(augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS); ok { + err := augmentedIdentity.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterAPIServerAccessProfile_STATUS -// Access profile for managed cluster API server. -type ManagedClusterAPIServerAccessProfile_STATUS struct { - AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` - DisableRunCommand *bool `json:"disableRunCommand,omitempty"` - EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` - EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` - PrivateDNSZone *string `json:"privateDNSZone,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileBlobCSIDriver +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterAutoUpgradeProfile -// Auto upgrade profile for a managed cluster. -type ManagedClusterAutoUpgradeProfile struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UpgradeChannel *string `json:"upgradeChannel,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver populates our ManagedClusterStorageProfileBlobCSIDriver from the provided source ManagedClusterStorageProfileBlobCSIDriver +func (driver *ManagedClusterStorageProfileBlobCSIDriver) AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(source *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileBlobCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileBlobCSIDriver); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterAutoUpgradeProfile_STATUS -// Auto upgrade profile for a managed cluster. -type ManagedClusterAutoUpgradeProfile_STATUS struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UpgradeChannel *string `json:"upgradeChannel,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver populates the provided destination ManagedClusterStorageProfileBlobCSIDriver from our ManagedClusterStorageProfileBlobCSIDriver +func (driver *ManagedClusterStorageProfileBlobCSIDriver) AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(destination *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileBlobCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileBlobCSIDriver); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterAzureMonitorProfile -// Azure Monitor addon profiles for monitoring the managed cluster. -type ManagedClusterAzureMonitorProfile struct { - Metrics *ManagedClusterAzureMonitorProfileMetrics `json:"metrics,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileBlobCSIDriver_STATUS +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterAzureMonitorProfile_STATUS -// Azure Monitor addon profiles for monitoring the managed cluster. -type ManagedClusterAzureMonitorProfile_STATUS struct { - Metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS `json:"metrics,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates our ManagedClusterStorageProfileBlobCSIDriver_STATUS from the provided source ManagedClusterStorageProfileBlobCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterHTTPProxyConfig -// Cluster HTTP proxy configuration. -type ManagedClusterHTTPProxyConfig struct { - HttpProxy *string `json:"httpProxy,omitempty"` - HttpsProxy *string `json:"httpsProxy,omitempty"` - NoProxy []string `json:"noProxy,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - TrustedCa *string `json:"trustedCa,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileBlobCSIDriver_STATUS from our ManagedClusterStorageProfileBlobCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterHTTPProxyConfig_STATUS -// Cluster HTTP proxy configuration. -type ManagedClusterHTTPProxyConfig_STATUS struct { - HttpProxy *string `json:"httpProxy,omitempty"` - HttpsProxy *string `json:"httpsProxy,omitempty"` - NoProxy []string `json:"noProxy,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileDiskCSIDriver +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver struct { + Enabled *bool `json:"enabled,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - TrustedCa *string `json:"trustedCa,omitempty"` } -// Storage version of v1api20230201.ManagedClusterIdentity -// Identity for the managed cluster. -type ManagedClusterIdentity struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Type *string `json:"type,omitempty"` - UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver populates our ManagedClusterStorageProfileDiskCSIDriver from the provided source ManagedClusterStorageProfileDiskCSIDriver +func (driver *ManagedClusterStorageProfileDiskCSIDriver) AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(source *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileDiskCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileDiskCSIDriver); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterIdentity_STATUS -// Identity for the managed cluster. -type ManagedClusterIdentity_STATUS struct { - PrincipalId *string `json:"principalId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - TenantId *string `json:"tenantId,omitempty"` - Type *string `json:"type,omitempty"` - UserAssignedIdentities map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS `json:"userAssignedIdentities,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver populates the provided destination ManagedClusterStorageProfileDiskCSIDriver from our ManagedClusterStorageProfileDiskCSIDriver +func (driver *ManagedClusterStorageProfileDiskCSIDriver) AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(destination *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileDiskCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileDiskCSIDriver); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterOIDCIssuerProfile -// The OIDC issuer profile of the Managed Cluster. -type ManagedClusterOIDCIssuerProfile struct { +// Storage version of v1api20230201.ManagedClusterStorageProfileDiskCSIDriver_STATUS +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver_STATUS struct { Enabled *bool `json:"enabled,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterOIDCIssuerProfile_STATUS -// The OIDC issuer profile of the Managed Cluster. -type ManagedClusterOIDCIssuerProfile_STATUS struct { +// AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates our ManagedClusterStorageProfileDiskCSIDriver_STATUS from the provided source ManagedClusterStorageProfileDiskCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileDiskCSIDriver_STATUS from our ManagedClusterStorageProfileDiskCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterStorageProfileFileCSIDriver +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver struct { Enabled *bool `json:"enabled,omitempty"` - IssuerURL *string `json:"issuerURL,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterOperatorSpec -// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure -type ManagedClusterOperatorSpec struct { - ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"` -} +// AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver populates our ManagedClusterStorageProfileFileCSIDriver from the provided source ManagedClusterStorageProfileFileCSIDriver +func (driver *ManagedClusterStorageProfileFileCSIDriver) AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(source *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } -// Storage version of v1api20230201.ManagedClusterPodIdentityProfile -// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod -// identity integration. -type ManagedClusterPodIdentityProfile struct { - AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UserAssignedIdentities []ManagedClusterPodIdentity `json:"userAssignedIdentities,omitempty"` - UserAssignedIdentityExceptions []ManagedClusterPodIdentityException `json:"userAssignedIdentityExceptions,omitempty"` + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileFileCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileFileCSIDriver); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterPodIdentityProfile_STATUS -// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod -// identity integration. -type ManagedClusterPodIdentityProfile_STATUS struct { - AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UserAssignedIdentities []ManagedClusterPodIdentity_STATUS `json:"userAssignedIdentities,omitempty"` - UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_STATUS `json:"userAssignedIdentityExceptions,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver populates the provided destination ManagedClusterStorageProfileFileCSIDriver from our ManagedClusterStorageProfileFileCSIDriver +func (driver *ManagedClusterStorageProfileFileCSIDriver) AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(destination *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileFileCSIDriver interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileFileCSIDriver); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterProperties_AutoScalerProfile -type ManagedClusterProperties_AutoScalerProfile struct { - BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` - Expander *string `json:"expander,omitempty"` - MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` - MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` - MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` - MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` - NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` - OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` - ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` - ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` - ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` - ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` - ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` - ScanInterval *string `json:"scan-interval,omitempty"` - SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` - SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileFileCSIDriver_STATUS +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterProperties_AutoScalerProfile_STATUS -type ManagedClusterProperties_AutoScalerProfile_STATUS struct { - BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` - Expander *string `json:"expander,omitempty"` - MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` - MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` - MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` - MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` - NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` - OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` - ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` - ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` - ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` - ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` - ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` - ScanInterval *string `json:"scan-interval,omitempty"` - SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` - SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS populates our ManagedClusterStorageProfileFileCSIDriver_STATUS from the provided source ManagedClusterStorageProfileFileCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + driver.PropertyBag = propertyBag + } else { + driver.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterSecurityProfile -// Security profile for the container service cluster. -type ManagedClusterSecurityProfile struct { - AzureKeyVaultKms *AzureKeyVaultKms `json:"azureKeyVaultKms,omitempty"` - Defender *ManagedClusterSecurityProfileDefender `json:"defender,omitempty"` - ImageCleaner *ManagedClusterSecurityProfileImageCleaner `json:"imageCleaner,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity `json:"workloadIdentity,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileFileCSIDriver_STATUS from our ManagedClusterStorageProfileFileCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(driver.PropertyBag) + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS interface (if implemented) to customize the conversion + var driverAsAny any = driver + if augmentedDriver, ok := driverAsAny.(augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS); ok { + err := augmentedDriver.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterSecurityProfile_STATUS -// Security profile for the container service cluster. -type ManagedClusterSecurityProfile_STATUS struct { - AzureKeyVaultKms *AzureKeyVaultKms_STATUS `json:"azureKeyVaultKms,omitempty"` - Defender *ManagedClusterSecurityProfileDefender_STATUS `json:"defender,omitempty"` - ImageCleaner *ManagedClusterSecurityProfileImageCleaner_STATUS `json:"imageCleaner,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS `json:"workloadIdentity,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileSnapshotController +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterServicePrincipalProfile -// Information about a service principal identity for the cluster to use for manipulating Azure APIs. -type ManagedClusterServicePrincipalProfile struct { - ClientId *string `json:"clientId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Secret *genruntime.SecretReference `json:"secret,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileSnapshotController populates our ManagedClusterStorageProfileSnapshotController from the provided source ManagedClusterStorageProfileSnapshotController +func (controller *ManagedClusterStorageProfileSnapshotController) AssignProperties_From_ManagedClusterStorageProfileSnapshotController(source *v20231001s.ManagedClusterStorageProfileSnapshotController) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + controller.Enabled = &enabled + } else { + controller.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + controller.PropertyBag = propertyBag + } else { + controller.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileSnapshotController interface (if implemented) to customize the conversion + var controllerAsAny any = controller + if augmentedController, ok := controllerAsAny.(augmentConversionForManagedClusterStorageProfileSnapshotController); ok { + err := augmentedController.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterServicePrincipalProfile_STATUS -// Information about a service principal identity for the cluster to use for manipulating Azure APIs. -type ManagedClusterServicePrincipalProfile_STATUS struct { - ClientId *string `json:"clientId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_ManagedClusterStorageProfileSnapshotController populates the provided destination ManagedClusterStorageProfileSnapshotController from our ManagedClusterStorageProfileSnapshotController +func (controller *ManagedClusterStorageProfileSnapshotController) AssignProperties_To_ManagedClusterStorageProfileSnapshotController(destination *v20231001s.ManagedClusterStorageProfileSnapshotController) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(controller.PropertyBag) + + // Enabled + if controller.Enabled != nil { + enabled := *controller.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileSnapshotController interface (if implemented) to customize the conversion + var controllerAsAny any = controller + if augmentedController, ok := controllerAsAny.(augmentConversionForManagedClusterStorageProfileSnapshotController); ok { + err := augmentedController.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterSKU -// The SKU of a Managed Cluster. -type ManagedClusterSKU struct { - Name *string `json:"name,omitempty"` +// Storage version of v1api20230201.ManagedClusterStorageProfileSnapshotController_STATUS +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Tier *string `json:"tier,omitempty"` } -// Storage version of v1api20230201.ManagedClusterSKU_STATUS -// The SKU of a Managed Cluster. -type ManagedClusterSKU_STATUS struct { - Name *string `json:"name,omitempty"` +// AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS populates our ManagedClusterStorageProfileSnapshotController_STATUS from the provided source ManagedClusterStorageProfileSnapshotController_STATUS +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(source *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + controller.Enabled = &enabled + } else { + controller.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + controller.PropertyBag = propertyBag + } else { + controller.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS interface (if implemented) to customize the conversion + var controllerAsAny any = controller + if augmentedController, ok := controllerAsAny.(augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS); ok { + err := augmentedController.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS populates the provided destination ManagedClusterStorageProfileSnapshotController_STATUS from our ManagedClusterStorageProfileSnapshotController_STATUS +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(destination *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(controller.PropertyBag) + + // Enabled + if controller.Enabled != nil { + enabled := *controller.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS interface (if implemented) to customize the conversion + var controllerAsAny any = controller + if augmentedController, ok := controllerAsAny.(augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS); ok { + err := augmentedController.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfileKeda +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda struct { + Enabled *bool `json:"enabled,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Tier *string `json:"tier,omitempty"` } -// Storage version of v1api20230201.ManagedClusterStorageProfile -// Storage profile for the container service cluster. -type ManagedClusterStorageProfile struct { - BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver `json:"blobCSIDriver,omitempty"` - DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver `json:"diskCSIDriver,omitempty"` - FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver `json:"fileCSIDriver,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - SnapshotController *ManagedClusterStorageProfileSnapshotController `json:"snapshotController,omitempty"` +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda populates our ManagedClusterWorkloadAutoScalerProfileKeda from the provided source ManagedClusterWorkloadAutoScalerProfileKeda +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + keda.Enabled = &enabled + } else { + keda.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + keda.PropertyBag = propertyBag + } else { + keda.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda interface (if implemented) to customize the conversion + var kedaAsAny any = keda + if augmentedKeda, ok := kedaAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda); ok { + err := augmentedKeda.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterStorageProfile_STATUS -// Storage profile for the container service cluster. -type ManagedClusterStorageProfile_STATUS struct { - BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_STATUS `json:"blobCSIDriver,omitempty"` - DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_STATUS `json:"diskCSIDriver,omitempty"` - FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_STATUS `json:"fileCSIDriver,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - SnapshotController *ManagedClusterStorageProfileSnapshotController_STATUS `json:"snapshotController,omitempty"` +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda populates the provided destination ManagedClusterWorkloadAutoScalerProfileKeda from our ManagedClusterWorkloadAutoScalerProfileKeda +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(keda.PropertyBag) + + // Enabled + if keda.Enabled != nil { + enabled := *keda.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda interface (if implemented) to customize the conversion + var kedaAsAny any = keda + if augmentedKeda, ok := kedaAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda); ok { + err := augmentedKeda.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterWindowsProfile -// Profile for Windows VMs in the managed cluster. -type ManagedClusterWindowsProfile struct { - AdminPassword *string `json:"adminPassword,omitempty"` - AdminUsername *string `json:"adminUsername,omitempty"` - EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` - GmsaProfile *WindowsGmsaProfile `json:"gmsaProfile,omitempty"` - LicenseType *string `json:"licenseType,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230201.ManagedClusterWindowsProfile_STATUS -// Profile for Windows VMs in the managed cluster. -type ManagedClusterWindowsProfile_STATUS struct { - AdminPassword *string `json:"adminPassword,omitempty"` - AdminUsername *string `json:"adminUsername,omitempty"` - EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` - GmsaProfile *WindowsGmsaProfile_STATUS `json:"gmsaProfile,omitempty"` - LicenseType *string `json:"licenseType,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates our ManagedClusterWorkloadAutoScalerProfileKeda_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + keda.Enabled = &enabled + } else { + keda.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + keda.PropertyBag = propertyBag + } else { + keda.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS interface (if implemented) to customize the conversion + var kedaAsAny any = keda + if augmentedKeda, ok := kedaAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS); ok { + err := augmentedKeda.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfile -// Workload Auto-scaler profile for the managed cluster. -type ManagedClusterWorkloadAutoScalerProfile struct { - Keda *ManagedClusterWorkloadAutoScalerProfileKeda `json:"keda,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfileKeda_STATUS from our ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(keda.PropertyBag) + + // Enabled + if keda.Enabled != nil { + enabled := *keda.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS interface (if implemented) to customize the conversion + var kedaAsAny any = keda + if augmentedKeda, ok := kedaAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS); ok { + err := augmentedKeda.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfile_STATUS -// Workload Auto-scaler profile for the managed cluster. -type ManagedClusterWorkloadAutoScalerProfile_STATUS struct { - Keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS `json:"keda,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// Storage version of v1api20230201.UserAssignedIdentityDetails +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` } -// Storage version of v1api20230201.PowerState_STATUS -// Describes the Power State of the cluster -type PowerState_STATUS struct { - Code *string `json:"code,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_From_UserAssignedIdentityDetails populates our UserAssignedIdentityDetails from the provided source UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedIdentityDetails(source *v20231001s.UserAssignedIdentityDetails) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Reference + details.Reference = source.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + details.PropertyBag = propertyBag + } else { + details.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion + var detailsAsAny any = details + if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { + err := augmentedDetails.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.PrivateLinkResource -// A private link resource -type PrivateLinkResource struct { - GroupId *string `json:"groupId,omitempty"` - Name *string `json:"name,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_UserAssignedIdentityDetails populates the provided destination UserAssignedIdentityDetails from our UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIdentityDetails(destination *v20231001s.UserAssignedIdentityDetails) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(details.PropertyBag) - // Reference: The ID of the private link resource. - Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` - RequiredMembers []string `json:"requiredMembers,omitempty"` - Type *string `json:"type,omitempty"` + // Reference + destination.Reference = details.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion + var detailsAsAny any = details + if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { + err := augmentedDetails.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.PrivateLinkResource_STATUS -// A private link resource -type PrivateLinkResource_STATUS struct { - GroupId *string `json:"groupId,omitempty"` - Id *string `json:"id,omitempty"` - Name *string `json:"name,omitempty"` - PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - RequiredMembers []string `json:"requiredMembers,omitempty"` - Type *string `json:"type,omitempty"` +// Storage version of v1api20230201.WindowsGmsaProfile +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` } -// Storage version of v1api20230201.SystemData_STATUS -// Metadata pertaining to creation and last modification of the resource. -type SystemData_STATUS struct { - CreatedAt *string `json:"createdAt,omitempty"` - CreatedBy *string `json:"createdBy,omitempty"` - CreatedByType *string `json:"createdByType,omitempty"` - LastModifiedAt *string `json:"lastModifiedAt,omitempty"` - LastModifiedBy *string `json:"lastModifiedBy,omitempty"` - LastModifiedByType *string `json:"lastModifiedByType,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_From_WindowsGmsaProfile populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_From_WindowsGmsaProfile(source *v20231001s.WindowsGmsaProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.UserAssignedIdentity -// Details about a user assigned identity. -type UserAssignedIdentity struct { - ClientId *string `json:"clientId,omitempty"` - ObjectId *string `json:"objectId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_WindowsGmsaProfile populates the provided destination WindowsGmsaProfile from our WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destination *v20231001s.WindowsGmsaProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // DnsServer + destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // RootDomainName + destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } - // ResourceReference: The resource ID of the user assigned identity. - ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` + // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.UserAssignedIdentity_STATUS -// Details about a user assigned identity. -type UserAssignedIdentity_STATUS struct { - ClientId *string `json:"clientId,omitempty"` - ObjectId *string `json:"objectId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ResourceId *string `json:"resourceId,omitempty"` +// Storage version of v1api20230201.WindowsGmsaProfile_STATUS +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_STATUS struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` } -// Storage version of v1api20230201.AzureKeyVaultKms -// Azure Key Vault key management service settings for the security profile. -type AzureKeyVaultKms struct { - Enabled *bool `json:"enabled,omitempty"` - KeyId *string `json:"keyId,omitempty"` - KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` +// AssignProperties_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile_STATUS from the provided source WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile_STATUS) AssignProperties_From_WindowsGmsaProfile_STATUS(source *v20231001s.WindowsGmsaProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // KeyVaultResourceReference: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and - // must be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. - KeyVaultResourceReference *genruntime.ResourceReference `armReference:"KeyVaultResourceId" json:"keyVaultResourceReference,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.AzureKeyVaultKms_STATUS -// Azure Key Vault key management service settings for the security profile. -type AzureKeyVaultKms_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - KeyId *string `json:"keyId,omitempty"` - KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` - KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_To_WindowsGmsaProfile_STATUS populates the provided destination WindowsGmsaProfile_STATUS from our WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile_STATUS) AssignProperties_To_WindowsGmsaProfile_STATUS(destination *v20231001s.WindowsGmsaProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // DnsServer + destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // RootDomainName + destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil } -// Storage version of v1api20230201.ContainerServiceSshConfiguration -// SSH configuration for Linux-based VMs running on Azure. -type ContainerServiceSshConfiguration struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - PublicKeys []ContainerServiceSshPublicKey `json:"publicKeys,omitempty"` +type augmentConversionForAzureKeyVaultKms interface { + AssignPropertiesFrom(src *v20231001s.AzureKeyVaultKms) error + AssignPropertiesTo(dst *v20231001s.AzureKeyVaultKms) error } -// Storage version of v1api20230201.ContainerServiceSshConfiguration_STATUS -// SSH configuration for Linux-based VMs running on Azure. -type ContainerServiceSshConfiguration_STATUS struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - PublicKeys []ContainerServiceSshPublicKey_STATUS `json:"publicKeys,omitempty"` +type augmentConversionForAzureKeyVaultKms_STATUS interface { + AssignPropertiesFrom(src *v20231001s.AzureKeyVaultKms_STATUS) error + AssignPropertiesTo(dst *v20231001s.AzureKeyVaultKms_STATUS) error } -// Storage version of v1api20230201.ManagedClusterAzureMonitorProfileMetrics -// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes -// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See -// aka.ms/AzureManagedPrometheus for an overview. -type ManagedClusterAzureMonitorProfileMetrics struct { - Enabled *bool `json:"enabled,omitempty"` - KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForContainerServiceSshConfiguration interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceSshConfiguration) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceSshConfiguration) error } -// Storage version of v1api20230201.ManagedClusterAzureMonitorProfileMetrics_STATUS -// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes -// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See -// aka.ms/AzureManagedPrometheus for an overview. -type ManagedClusterAzureMonitorProfileMetrics_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS `json:"kubeStateMetrics,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForContainerServiceSshConfiguration_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceSshConfiguration_STATUS) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceSshConfiguration_STATUS) error } -// Storage version of v1api20230201.ManagedClusterIdentity_UserAssignedIdentities_STATUS -type ManagedClusterIdentity_UserAssignedIdentities_STATUS struct { - ClientId *string `json:"clientId,omitempty"` - PrincipalId *string `json:"principalId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterAzureMonitorProfileMetrics interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error } -// Storage version of v1api20230201.ManagedClusterLoadBalancerProfile -// Profile of the managed cluster load balancer. -type ManagedClusterLoadBalancerProfile struct { - AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` - EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` - EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` - IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` - ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs `json:"managedOutboundIPs,omitempty"` - OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes `json:"outboundIPPrefixes,omitempty"` - OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs `json:"outboundIPs,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error } -// Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_STATUS -// Profile of the managed cluster load balancer. -type ManagedClusterLoadBalancerProfile_STATUS struct { - AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` - EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` - EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` - IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` - ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS `json:"managedOutboundIPs,omitempty"` - OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS `json:"outboundIPPrefixes,omitempty"` - OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS `json:"outboundIPs,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error } -// Storage version of v1api20230201.ManagedClusterNATGatewayProfile -// Profile of the managed cluster NAT gateway. -type ManagedClusterNATGatewayProfile struct { - EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` - IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` - ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile `json:"managedOutboundIPProfile,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterLoadBalancerProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile) error } -// Storage version of v1api20230201.ManagedClusterNATGatewayProfile_STATUS -// Profile of the managed cluster NAT gateway. -type ManagedClusterNATGatewayProfile_STATUS struct { - EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` - IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` - ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_STATUS `json:"managedOutboundIPProfile,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterLoadBalancerProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error } -// Storage version of v1api20230201.ManagedClusterOperatorConfigMaps -type ManagedClusterOperatorConfigMaps struct { - OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterNATGatewayProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterNATGatewayProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterNATGatewayProfile) error } -// Storage version of v1api20230201.ManagedClusterOperatorSecrets -type ManagedClusterOperatorSecrets struct { - AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UserCredentials *genruntime.SecretDestination `json:"userCredentials,omitempty"` +type augmentConversionForManagedClusterNATGatewayProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error } -// Storage version of v1api20230201.ManagedClusterPodIdentity -// Details about the pod identity assigned to the Managed Cluster. -type ManagedClusterPodIdentity struct { - BindingSelector *string `json:"bindingSelector,omitempty"` - Identity *UserAssignedIdentity `json:"identity,omitempty"` - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterOperatorConfigMaps interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterOperatorConfigMaps) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterOperatorConfigMaps) error } -// Storage version of v1api20230201.ManagedClusterPodIdentity_STATUS -// Details about the pod identity assigned to the Managed Cluster. -type ManagedClusterPodIdentity_STATUS struct { - BindingSelector *string `json:"bindingSelector,omitempty"` - Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - ProvisioningInfo *ManagedClusterPodIdentity_ProvisioningInfo_STATUS `json:"provisioningInfo,omitempty"` - ProvisioningState *string `json:"provisioningState,omitempty"` +type augmentConversionForManagedClusterOperatorSecrets interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterOperatorSecrets) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterOperatorSecrets) error } -// Storage version of v1api20230201.ManagedClusterPodIdentityException -// See [disable AAD Pod Identity for a specific -// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. -type ManagedClusterPodIdentityException struct { - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` - PodLabels map[string]string `json:"podLabels,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterPodIdentity interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentity) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentity) error } -// Storage version of v1api20230201.ManagedClusterPodIdentityException_STATUS -// See [disable AAD Pod Identity for a specific -// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. -type ManagedClusterPodIdentityException_STATUS struct { - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` - PodLabels map[string]string `json:"podLabels,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterPodIdentity_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentity_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentity_STATUS) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileDefender -// Microsoft Defender settings for the security profile. -type ManagedClusterSecurityProfileDefender struct { - // LogAnalyticsWorkspaceResourceReference: Resource ID of the Log Analytics workspace to be associated with Microsoft - // Defender. When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When - // Microsoft Defender is disabled, leave the field empty. - LogAnalyticsWorkspaceResourceReference *genruntime.ResourceReference `armReference:"LogAnalyticsWorkspaceResourceId" json:"logAnalyticsWorkspaceResourceReference,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring `json:"securityMonitoring,omitempty"` +type augmentConversionForManagedClusterPodIdentityException interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityException) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityException) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileDefender_STATUS -// Microsoft Defender settings for the security profile. -type ManagedClusterSecurityProfileDefender_STATUS struct { - LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS `json:"securityMonitoring,omitempty"` +type augmentConversionForManagedClusterPodIdentityException_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityException_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityException_STATUS) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileImageCleaner -// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here -// are settings for the security profile. -type ManagedClusterSecurityProfileImageCleaner struct { - Enabled *bool `json:"enabled,omitempty"` - IntervalHours *int `json:"intervalHours,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileDefender interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileDefender) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileDefender) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileImageCleaner_STATUS -// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here -// are settings for the security profile. -type ManagedClusterSecurityProfileImageCleaner_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - IntervalHours *int `json:"intervalHours,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileDefender_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileWorkloadIdentity -// Workload identity settings for the security profile. -type ManagedClusterSecurityProfileWorkloadIdentity struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileImageCleaner interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileImageCleaner) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileImageCleaner) error } -// Storage version of v1api20230201.ManagedClusterSecurityProfileWorkloadIdentity_STATUS -// Workload identity settings for the security profile. -type ManagedClusterSecurityProfileWorkloadIdentity_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileBlobCSIDriver -// AzureBlob CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileBlobCSIDriver struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileWorkloadIdentity interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileBlobCSIDriver_STATUS -// AzureBlob CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileBlobCSIDriver_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileDiskCSIDriver -// AzureDisk CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileDiskCSIDriver struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileBlobCSIDriver interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileDiskCSIDriver_STATUS -// AzureDisk CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileDiskCSIDriver_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileFileCSIDriver -// AzureFile CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileFileCSIDriver struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileDiskCSIDriver interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileFileCSIDriver_STATUS -// AzureFile CSI Driver settings for the storage profile. -type ManagedClusterStorageProfileFileCSIDriver_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileSnapshotController -// Snapshot Controller settings for the storage profile. -type ManagedClusterStorageProfileSnapshotController struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileFileCSIDriver interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error } -// Storage version of v1api20230201.ManagedClusterStorageProfileSnapshotController_STATUS -// Snapshot Controller settings for the storage profile. -type ManagedClusterStorageProfileSnapshotController_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error +} + +type augmentConversionForManagedClusterStorageProfileSnapshotController interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileSnapshotController) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileSnapshotController) error } -// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfileKeda -// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. -type ManagedClusterWorkloadAutoScalerProfileKeda struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error } -// Storage version of v1api20230201.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS -// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. -type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS struct { - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +type augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error } -// Storage version of v1api20230201.UserAssignedIdentityDetails -// Information about the user assigned identity for the resource -type UserAssignedIdentityDetails struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +type augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error } -// Storage version of v1api20230201.WindowsGmsaProfile -// Windows gMSA Profile in the managed cluster. -type WindowsGmsaProfile struct { - DnsServer *string `json:"dnsServer,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - RootDomainName *string `json:"rootDomainName,omitempty"` +type augmentConversionForUserAssignedIdentityDetails interface { + AssignPropertiesFrom(src *v20231001s.UserAssignedIdentityDetails) error + AssignPropertiesTo(dst *v20231001s.UserAssignedIdentityDetails) error } -// Storage version of v1api20230201.WindowsGmsaProfile_STATUS -// Windows gMSA Profile in the managed cluster. -type WindowsGmsaProfile_STATUS struct { - DnsServer *string `json:"dnsServer,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - RootDomainName *string `json:"rootDomainName,omitempty"` +type augmentConversionForWindowsGmsaProfile interface { + AssignPropertiesFrom(src *v20231001s.WindowsGmsaProfile) error + AssignPropertiesTo(dst *v20231001s.WindowsGmsaProfile) error +} + +type augmentConversionForWindowsGmsaProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.WindowsGmsaProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.WindowsGmsaProfile_STATUS) error } // Storage version of v1api20230201.ContainerServiceSshPublicKey @@ -1205,6 +12190,62 @@ type ContainerServiceSshPublicKey struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ContainerServiceSshPublicKey populates our ContainerServiceSshPublicKey from the provided source ContainerServiceSshPublicKey +func (publicKey *ContainerServiceSshPublicKey) AssignProperties_From_ContainerServiceSshPublicKey(source *v20231001s.ContainerServiceSshPublicKey) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // KeyData + publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + publicKey.PropertyBag = propertyBag + } else { + publicKey.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshPublicKey interface (if implemented) to customize the conversion + var publicKeyAsAny any = publicKey + if augmentedPublicKey, ok := publicKeyAsAny.(augmentConversionForContainerServiceSshPublicKey); ok { + err := augmentedPublicKey.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshPublicKey populates the provided destination ContainerServiceSshPublicKey from our ContainerServiceSshPublicKey +func (publicKey *ContainerServiceSshPublicKey) AssignProperties_To_ContainerServiceSshPublicKey(destination *v20231001s.ContainerServiceSshPublicKey) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(publicKey.PropertyBag) + + // KeyData + destination.KeyData = genruntime.ClonePointerToString(publicKey.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshPublicKey interface (if implemented) to customize the conversion + var publicKeyAsAny any = publicKey + if augmentedPublicKey, ok := publicKeyAsAny.(augmentConversionForContainerServiceSshPublicKey); ok { + err := augmentedPublicKey.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ContainerServiceSshPublicKey_STATUS // Contains information about SSH certificate public key data. type ContainerServiceSshPublicKey_STATUS struct { @@ -1212,6 +12253,62 @@ type ContainerServiceSshPublicKey_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ContainerServiceSshPublicKey_STATUS populates our ContainerServiceSshPublicKey_STATUS from the provided source ContainerServiceSshPublicKey_STATUS +func (publicKey *ContainerServiceSshPublicKey_STATUS) AssignProperties_From_ContainerServiceSshPublicKey_STATUS(source *v20231001s.ContainerServiceSshPublicKey_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // KeyData + publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + publicKey.PropertyBag = propertyBag + } else { + publicKey.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshPublicKey_STATUS interface (if implemented) to customize the conversion + var publicKeyAsAny any = publicKey + if augmentedPublicKey, ok := publicKeyAsAny.(augmentConversionForContainerServiceSshPublicKey_STATUS); ok { + err := augmentedPublicKey.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshPublicKey_STATUS populates the provided destination ContainerServiceSshPublicKey_STATUS from our ContainerServiceSshPublicKey_STATUS +func (publicKey *ContainerServiceSshPublicKey_STATUS) AssignProperties_To_ContainerServiceSshPublicKey_STATUS(destination *v20231001s.ContainerServiceSshPublicKey_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(publicKey.PropertyBag) + + // KeyData + destination.KeyData = genruntime.ClonePointerToString(publicKey.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForContainerServiceSshPublicKey_STATUS interface (if implemented) to customize the conversion + var publicKeyAsAny any = publicKey + if augmentedPublicKey, ok := publicKeyAsAny.(augmentConversionForContainerServiceSshPublicKey_STATUS); ok { + err := augmentedPublicKey.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterAzureMonitorProfileKubeStateMetrics // Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for @@ -1222,6 +12319,68 @@ type ManagedClusterAzureMonitorProfileKubeStateMetrics struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics populates our ManagedClusterAzureMonitorProfileKubeStateMetrics from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + metrics.PropertyBag = propertyBag + } else { + metrics.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics); ok { + err := augmentedMetrics.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics populates the provided destination ManagedClusterAzureMonitorProfileKubeStateMetrics from our ManagedClusterAzureMonitorProfileKubeStateMetrics +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(destination *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(metrics.PropertyBag) + + // MetricAnnotationsAllowList + destination.MetricAnnotationsAllowList = genruntime.ClonePointerToString(metrics.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + destination.MetricLabelsAllowlist = genruntime.ClonePointerToString(metrics.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics); ok { + err := augmentedMetrics.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS // Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for @@ -1232,6 +12391,68 @@ type ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates our ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + metrics.PropertyBag = propertyBag + } else { + metrics.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS); ok { + err := augmentedMetrics.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates the provided destination ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS from our ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(metrics.PropertyBag) + + // MetricAnnotationsAllowList + destination.MetricAnnotationsAllowList = genruntime.ClonePointerToString(metrics.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + destination.MetricLabelsAllowlist = genruntime.ClonePointerToString(metrics.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS interface (if implemented) to customize the conversion + var metricsAsAny any = metrics + if augmentedMetrics, ok := metricsAsAny.(augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS); ok { + err := augmentedMetrics.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs struct { Count *int `json:"count,omitempty"` @@ -1239,6 +12460,68 @@ type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(source *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Count + iPs.Count = genruntime.ClonePointerToInt(source.Count) + + // CountIPv6 + iPs.CountIPv6 = genruntime.ClonePointerToInt(source.CountIPv6) + + // Update the property bag + if len(propertyBag) > 0 { + iPs.PropertyBag = propertyBag + } else { + iPs.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs); ok { + err := augmentedIPs.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs populates the provided destination ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(destination *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(iPs.PropertyBag) + + // Count + destination.Count = genruntime.ClonePointerToInt(iPs.Count) + + // CountIPv6 + destination.CountIPv6 = genruntime.ClonePointerToInt(iPs.CountIPv6) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs); ok { + err := augmentedIPs.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS struct { Count *int `json:"count,omitempty"` @@ -1246,30 +12529,436 @@ type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Count + iPs.Count = genruntime.ClonePointerToInt(source.Count) + + // CountIPv6 + iPs.CountIPv6 = genruntime.ClonePointerToInt(source.CountIPv6) + + // Update the property bag + if len(propertyBag) > 0 { + iPs.PropertyBag = propertyBag + } else { + iPs.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS); ok { + err := augmentedIPs.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS from our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(iPs.PropertyBag) + + // Count + destination.Count = genruntime.ClonePointerToInt(iPs.Count) + + // CountIPv6 + destination.CountIPv6 = genruntime.ClonePointerToInt(iPs.CountIPv6) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS); ok { + err := augmentedIPs.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` PublicIPPrefixes []ResourceReference `json:"publicIPPrefixes,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicIPPrefixes + if source.PublicIPPrefixes != nil { + publicIPPrefixList := make([]ResourceReference, len(source.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix ResourceReference + err := publicIPPrefix.AssignProperties_From_ResourceReference(&publicIPPrefixItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + prefixes.PublicIPPrefixes = publicIPPrefixList + } else { + prefixes.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + prefixes.PropertyBag = propertyBag + } else { + prefixes.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes interface (if implemented) to customize the conversion + var prefixesAsAny any = prefixes + if augmentedPrefixes, ok := prefixesAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes); ok { + err := augmentedPrefixes.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(prefixes.PropertyBag) + + // PublicIPPrefixes + if prefixes.PublicIPPrefixes != nil { + publicIPPrefixList := make([]v20231001s.ResourceReference, len(prefixes.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range prefixes.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix v20231001s.ResourceReference + err := publicIPPrefixItem.AssignProperties_To_ResourceReference(&publicIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + destination.PublicIPPrefixes = publicIPPrefixList + } else { + destination.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes interface (if implemented) to customize the conversion + var prefixesAsAny any = prefixes + if augmentedPrefixes, ok := prefixesAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes); ok { + err := augmentedPrefixes.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` PublicIPPrefixes []ResourceReference_STATUS `json:"publicIPPrefixes,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicIPPrefixes + if source.PublicIPPrefixes != nil { + publicIPPrefixList := make([]ResourceReference_STATUS, len(source.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix ResourceReference_STATUS + err := publicIPPrefix.AssignProperties_From_ResourceReference_STATUS(&publicIPPrefixItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + prefixes.PublicIPPrefixes = publicIPPrefixList + } else { + prefixes.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + prefixes.PropertyBag = propertyBag + } else { + prefixes.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS interface (if implemented) to customize the conversion + var prefixesAsAny any = prefixes + if augmentedPrefixes, ok := prefixesAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS); ok { + err := augmentedPrefixes.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS from our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(prefixes.PropertyBag) + + // PublicIPPrefixes + if prefixes.PublicIPPrefixes != nil { + publicIPPrefixList := make([]v20231001s.ResourceReference_STATUS, len(prefixes.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range prefixes.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix v20231001s.ResourceReference_STATUS + err := publicIPPrefixItem.AssignProperties_To_ResourceReference_STATUS(&publicIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + destination.PublicIPPrefixes = publicIPPrefixList + } else { + destination.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS interface (if implemented) to customize the conversion + var prefixesAsAny any = prefixes + if augmentedPrefixes, ok := prefixesAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS); ok { + err := augmentedPrefixes.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_OutboundIPs type ManagedClusterLoadBalancerProfile_OutboundIPs struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` PublicIPs []ResourceReference `json:"publicIPs,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs populates our ManagedClusterLoadBalancerProfile_OutboundIPs from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicIPs + if source.PublicIPs != nil { + publicIPList := make([]ResourceReference, len(source.PublicIPs)) + for publicIPIndex, publicIPItem := range source.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP ResourceReference + err := publicIP.AssignProperties_From_ResourceReference(&publicIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + iPs.PublicIPs = publicIPList + } else { + iPs.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + iPs.PropertyBag = propertyBag + } else { + iPs.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs); ok { + err := augmentedIPs.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPs from our ManagedClusterLoadBalancerProfile_OutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(iPs.PropertyBag) + + // PublicIPs + if iPs.PublicIPs != nil { + publicIPList := make([]v20231001s.ResourceReference, len(iPs.PublicIPs)) + for publicIPIndex, publicIPItem := range iPs.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP v20231001s.ResourceReference + err := publicIPItem.AssignProperties_To_ResourceReference(&publicIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + destination.PublicIPs = publicIPList + } else { + destination.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs); ok { + err := augmentedIPs.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS type ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` PublicIPs []ResourceReference_STATUS `json:"publicIPs,omitempty"` } +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PublicIPs + if source.PublicIPs != nil { + publicIPList := make([]ResourceReference_STATUS, len(source.PublicIPs)) + for publicIPIndex, publicIPItem := range source.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP ResourceReference_STATUS + err := publicIP.AssignProperties_From_ResourceReference_STATUS(&publicIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + iPs.PublicIPs = publicIPList + } else { + iPs.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + iPs.PropertyBag = propertyBag + } else { + iPs.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS); ok { + err := augmentedIPs.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS from our ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(iPs.PropertyBag) + + // PublicIPs + if iPs.PublicIPs != nil { + publicIPList := make([]v20231001s.ResourceReference_STATUS, len(iPs.PublicIPs)) + for publicIPIndex, publicIPItem := range iPs.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP v20231001s.ResourceReference_STATUS + err := publicIPItem.AssignProperties_To_ResourceReference_STATUS(&publicIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + destination.PublicIPs = publicIPList + } else { + destination.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS interface (if implemented) to customize the conversion + var iPsAsAny any = iPs + if augmentedIPs, ok := iPsAsAny.(augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS); ok { + err := augmentedIPs.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterManagedOutboundIPProfile // Profile of the managed outbound IP resources of the managed cluster. type ManagedClusterManagedOutboundIPProfile struct { @@ -1277,6 +12966,62 @@ type ManagedClusterManagedOutboundIPProfile struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterManagedOutboundIPProfile populates our ManagedClusterManagedOutboundIPProfile from the provided source ManagedClusterManagedOutboundIPProfile +func (profile *ManagedClusterManagedOutboundIPProfile) AssignProperties_From_ManagedClusterManagedOutboundIPProfile(source *v20231001s.ManagedClusterManagedOutboundIPProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterManagedOutboundIPProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterManagedOutboundIPProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterManagedOutboundIPProfile populates the provided destination ManagedClusterManagedOutboundIPProfile from our ManagedClusterManagedOutboundIPProfile +func (profile *ManagedClusterManagedOutboundIPProfile) AssignProperties_To_ManagedClusterManagedOutboundIPProfile(destination *v20231001s.ManagedClusterManagedOutboundIPProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterManagedOutboundIPProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterManagedOutboundIPProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterManagedOutboundIPProfile_STATUS // Profile of the managed outbound IP resources of the managed cluster. type ManagedClusterManagedOutboundIPProfile_STATUS struct { @@ -1284,12 +13029,142 @@ type ManagedClusterManagedOutboundIPProfile_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS populates our ManagedClusterManagedOutboundIPProfile_STATUS from the provided source ManagedClusterManagedOutboundIPProfile_STATUS +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(source *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS populates the provided destination ManagedClusterManagedOutboundIPProfile_STATUS from our ManagedClusterManagedOutboundIPProfile_STATUS +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(destination *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterPodIdentity_ProvisioningInfo_STATUS type ManagedClusterPodIdentity_ProvisioningInfo_STATUS struct { Error *ManagedClusterPodIdentityProvisioningError_STATUS `json:"error,omitempty"` PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS populates our ManagedClusterPodIdentity_ProvisioningInfo_STATUS from the provided source ManagedClusterPodIdentity_ProvisioningInfo_STATUS +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(source *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Error + if source.Error != nil { + var error ManagedClusterPodIdentityProvisioningError_STATUS + err := error.AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(source.Error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS() to populate field Error") + } + info.Error = &error + } else { + info.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + info.PropertyBag = propertyBag + } else { + info.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS interface (if implemented) to customize the conversion + var infoAsAny any = info + if augmentedInfo, ok := infoAsAny.(augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS); ok { + err := augmentedInfo.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS populates the provided destination ManagedClusterPodIdentity_ProvisioningInfo_STATUS from our ManagedClusterPodIdentity_ProvisioningInfo_STATUS +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(destination *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(info.PropertyBag) + + // Error + if info.Error != nil { + var error v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS + err := info.Error.AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(&error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS() to populate field Error") + } + destination.Error = &error + } else { + destination.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS interface (if implemented) to customize the conversion + var infoAsAny any = info + if augmentedInfo, ok := infoAsAny.(augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS); ok { + err := augmentedInfo.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterSecurityProfileDefenderSecurityMonitoring // Microsoft Defender settings for the security profile threat detection. type ManagedClusterSecurityProfileDefenderSecurityMonitoring struct { @@ -1297,6 +13172,72 @@ type ManagedClusterSecurityProfileDefenderSecurityMonitoring struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(source *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + monitoring.Enabled = &enabled + } else { + monitoring.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + monitoring.PropertyBag = propertyBag + } else { + monitoring.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring interface (if implemented) to customize the conversion + var monitoringAsAny any = monitoring + if augmentedMonitoring, ok := monitoringAsAny.(augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring); ok { + err := augmentedMonitoring.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring populates the provided destination ManagedClusterSecurityProfileDefenderSecurityMonitoring from our ManagedClusterSecurityProfileDefenderSecurityMonitoring +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(destination *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(monitoring.PropertyBag) + + // Enabled + if monitoring.Enabled != nil { + enabled := *monitoring.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring interface (if implemented) to customize the conversion + var monitoringAsAny any = monitoring + if augmentedMonitoring, ok := monitoringAsAny.(augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring); ok { + err := augmentedMonitoring.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS // Microsoft Defender settings for the security profile threat detection. type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS struct { @@ -1304,6 +13245,72 @@ type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + monitoring.Enabled = &enabled + } else { + monitoring.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + monitoring.PropertyBag = propertyBag + } else { + monitoring.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS interface (if implemented) to customize the conversion + var monitoringAsAny any = monitoring + if augmentedMonitoring, ok := monitoringAsAny.(augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS); ok { + err := augmentedMonitoring.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates the provided destination ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS from our ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(destination *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(monitoring.PropertyBag) + + // Enabled + if monitoring.Enabled != nil { + enabled := *monitoring.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS interface (if implemented) to customize the conversion + var monitoringAsAny any = monitoring + if augmentedMonitoring, ok := monitoringAsAny.(augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS); ok { + err := augmentedMonitoring.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ResourceReference // A reference to an Azure resource. type ResourceReference struct { @@ -1313,6 +13320,72 @@ type ResourceReference struct { Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` } +// AssignProperties_From_ResourceReference populates our ResourceReference from the provided source ResourceReference +func (reference *ResourceReference) AssignProperties_From_ResourceReference(source *v20231001s.ResourceReference) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Reference + if source.Reference != nil { + referenceTemp := source.Reference.Copy() + reference.Reference = &referenceTemp + } else { + reference.Reference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + reference.PropertyBag = propertyBag + } else { + reference.PropertyBag = nil + } + + // Invoke the augmentConversionForResourceReference interface (if implemented) to customize the conversion + var referenceAsAny any = reference + if augmentedReference, ok := referenceAsAny.(augmentConversionForResourceReference); ok { + err := augmentedReference.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ResourceReference populates the provided destination ResourceReference from our ResourceReference +func (reference *ResourceReference) AssignProperties_To_ResourceReference(destination *v20231001s.ResourceReference) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(reference.PropertyBag) + + // Reference + if reference.Reference != nil { + referenceTemp := reference.Reference.Copy() + destination.Reference = &referenceTemp + } else { + destination.Reference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForResourceReference interface (if implemented) to customize the conversion + var referenceAsAny any = reference + if augmentedReference, ok := referenceAsAny.(augmentConversionForResourceReference); ok { + err := augmentedReference.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.ResourceReference_STATUS // A reference to an Azure resource. type ResourceReference_STATUS struct { @@ -1320,6 +13393,147 @@ type ResourceReference_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ResourceReference_STATUS populates our ResourceReference_STATUS from the provided source ResourceReference_STATUS +func (reference *ResourceReference_STATUS) AssignProperties_From_ResourceReference_STATUS(source *v20231001s.ResourceReference_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Id + reference.Id = genruntime.ClonePointerToString(source.Id) + + // Update the property bag + if len(propertyBag) > 0 { + reference.PropertyBag = propertyBag + } else { + reference.PropertyBag = nil + } + + // Invoke the augmentConversionForResourceReference_STATUS interface (if implemented) to customize the conversion + var referenceAsAny any = reference + if augmentedReference, ok := referenceAsAny.(augmentConversionForResourceReference_STATUS); ok { + err := augmentedReference.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ResourceReference_STATUS populates the provided destination ResourceReference_STATUS from our ResourceReference_STATUS +func (reference *ResourceReference_STATUS) AssignProperties_To_ResourceReference_STATUS(destination *v20231001s.ResourceReference_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(reference.PropertyBag) + + // Id + destination.Id = genruntime.ClonePointerToString(reference.Id) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForResourceReference_STATUS interface (if implemented) to customize the conversion + var referenceAsAny any = reference + if augmentedReference, ok := referenceAsAny.(augmentConversionForResourceReference_STATUS); ok { + err := augmentedReference.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForContainerServiceSshPublicKey interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceSshPublicKey) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceSshPublicKey) error +} + +type augmentConversionForContainerServiceSshPublicKey_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ContainerServiceSshPublicKey_STATUS) error + AssignPropertiesTo(dst *v20231001s.ContainerServiceSshPublicKey_STATUS) error +} + +type augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error +} + +type augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error +} + +type augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error +} + +type augmentConversionForManagedClusterManagedOutboundIPProfile interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterManagedOutboundIPProfile) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterManagedOutboundIPProfile) error +} + +type augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error +} + +type augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error +} + +type augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error +} + +type augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error +} + +type augmentConversionForResourceReference interface { + AssignPropertiesFrom(src *v20231001s.ResourceReference) error + AssignPropertiesTo(dst *v20231001s.ResourceReference) error +} + +type augmentConversionForResourceReference_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ResourceReference_STATUS) error + AssignPropertiesTo(dst *v20231001s.ResourceReference_STATUS) error +} + // Storage version of v1api20230201.ManagedClusterPodIdentityProvisioningError_STATUS // An error response from the pod identity provisioning. type ManagedClusterPodIdentityProvisioningError_STATUS struct { @@ -1327,6 +13541,85 @@ type ManagedClusterPodIdentityProvisioningError_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS populates our ManagedClusterPodIdentityProvisioningError_STATUS from the provided source ManagedClusterPodIdentityProvisioningError_STATUS +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(source *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Error + if source.Error != nil { + var errorLocal ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := errorLocal.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(source.Error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS() to populate field Error") + } + error.Error = &errorLocal + } else { + error.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + error.PropertyBag = propertyBag + } else { + error.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS interface (if implemented) to customize the conversion + var errorAsAny any = error + if augmentedError, ok := errorAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS); ok { + err := augmentedError.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS populates the provided destination ManagedClusterPodIdentityProvisioningError_STATUS from our ManagedClusterPodIdentityProvisioningError_STATUS +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(destination *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(error.PropertyBag) + + // Error + if error.Error != nil { + var errorLocal v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := error.Error.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&errorLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS() to populate field Error") + } + destination.Error = &errorLocal + } else { + destination.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS interface (if implemented) to customize the conversion + var errorAsAny any = error + if augmentedError, ok := errorAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS); ok { + err := augmentedError.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error +} + // Storage version of v1api20230201.ManagedClusterPodIdentityProvisioningErrorBody_STATUS // An error response from the pod identity provisioning. type ManagedClusterPodIdentityProvisioningErrorBody_STATUS struct { @@ -1337,6 +13630,115 @@ type ManagedClusterPodIdentityProvisioningErrorBody_STATUS struct { Target *string `json:"target,omitempty"` } +// AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS populates our ManagedClusterPodIdentityProvisioningErrorBody_STATUS from the provided source ManagedClusterPodIdentityProvisioningErrorBody_STATUS +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(source *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Code + body.Code = genruntime.ClonePointerToString(source.Code) + + // Details + if source.Details != nil { + detailList := make([]ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(source.Details)) + for detailIndex, detailItem := range source.Details { + // Shadow the loop variable to avoid aliasing + detailItem := detailItem + var detail ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := detail.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&detailItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled() to populate field Details") + } + detailList[detailIndex] = detail + } + body.Details = detailList + } else { + body.Details = nil + } + + // Message + body.Message = genruntime.ClonePointerToString(source.Message) + + // Target + body.Target = genruntime.ClonePointerToString(source.Target) + + // Update the property bag + if len(propertyBag) > 0 { + body.PropertyBag = propertyBag + } else { + body.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS interface (if implemented) to customize the conversion + var bodyAsAny any = body + if augmentedBody, ok := bodyAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS); ok { + err := augmentedBody.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS populates the provided destination ManagedClusterPodIdentityProvisioningErrorBody_STATUS from our ManagedClusterPodIdentityProvisioningErrorBody_STATUS +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(destination *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(body.PropertyBag) + + // Code + destination.Code = genruntime.ClonePointerToString(body.Code) + + // Details + if body.Details != nil { + detailList := make([]v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(body.Details)) + for detailIndex, detailItem := range body.Details { + // Shadow the loop variable to avoid aliasing + detailItem := detailItem + var detail v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := detailItem.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&detail) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled() to populate field Details") + } + detailList[detailIndex] = detail + } + destination.Details = detailList + } else { + destination.Details = nil + } + + // Message + destination.Message = genruntime.ClonePointerToString(body.Message) + + // Target + destination.Target = genruntime.ClonePointerToString(body.Target) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS interface (if implemented) to customize the conversion + var bodyAsAny any = body + if augmentedBody, ok := bodyAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS); ok { + err := augmentedBody.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error +} + // Storage version of v1api20230201.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled struct { Code *string `json:"code,omitempty"` @@ -1345,6 +13747,79 @@ type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled struct { Target *string `json:"target,omitempty"` } +// AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled populates our ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled from the provided source ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(source *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Code + unrolled.Code = genruntime.ClonePointerToString(source.Code) + + // Message + unrolled.Message = genruntime.ClonePointerToString(source.Message) + + // Target + unrolled.Target = genruntime.ClonePointerToString(source.Target) + + // Update the property bag + if len(propertyBag) > 0 { + unrolled.PropertyBag = propertyBag + } else { + unrolled.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled interface (if implemented) to customize the conversion + var unrolledAsAny any = unrolled + if augmentedUnrolled, ok := unrolledAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled); ok { + err := augmentedUnrolled.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled populates the provided destination ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled from our ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(destination *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(unrolled.PropertyBag) + + // Code + destination.Code = genruntime.ClonePointerToString(unrolled.Code) + + // Message + destination.Message = genruntime.ClonePointerToString(unrolled.Message) + + // Target + destination.Target = genruntime.ClonePointerToString(unrolled.Target) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled interface (if implemented) to customize the conversion + var unrolledAsAny any = unrolled + if augmentedUnrolled, ok := unrolledAsAny.(augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled); ok { + err := augmentedUnrolled.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error + AssignPropertiesTo(dst *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error +} + func init() { SchemeBuilder.Register(&ManagedCluster{}, &ManagedClusterList{}) } diff --git a/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen_test.go index 87282f2154e..a63ffb38bd1 100644 --- a/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20230201/storage/managed_cluster_types_gen_test.go @@ -5,6 +5,7 @@ package storage import ( "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -17,6 +18,91 @@ import ( "testing" ) +func Test_ManagedCluster_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster to hub returns original", + prop.ForAll(RunResourceConversionTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForManagedCluster tests if a specific instance of ManagedCluster round trips to the hub storage version and back losslessly +func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20231001s.ManagedCluster + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual ManagedCluster + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedCluster_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster to ManagedCluster via AssignProperties_To_ManagedCluster & AssignProperties_From_ManagedCluster returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster tests if a specific instance of ManagedCluster can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster(subject ManagedCluster) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster + err := copied.AssignProperties_To_ManagedCluster(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster + err = actual.AssignProperties_From_ManagedCluster(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedCluster_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -78,6 +164,48 @@ func AddRelatedPropertyGeneratorsForManagedCluster(gens map[string]gopter.Gen) { gens["Status"] = ManagedCluster_STATUSGenerator() } +func Test_ManagedCluster_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster_Spec to ManagedCluster_Spec via AssignProperties_To_ManagedCluster_Spec & AssignProperties_From_ManagedCluster_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster_Spec, ManagedCluster_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster_Spec tests if a specific instance of ManagedCluster_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster_Spec(subject ManagedCluster_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster_Spec + err := copied.AssignProperties_To_ManagedCluster_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster_Spec + err = actual.AssignProperties_From_ManagedCluster_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedCluster_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -186,6 +314,48 @@ func AddRelatedPropertyGeneratorsForManagedCluster_Spec(gens map[string]gopter.G gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileGenerator()) } +func Test_ManagedCluster_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster_STATUS to ManagedCluster_STATUS via AssignProperties_To_ManagedCluster_STATUS & AssignProperties_From_ManagedCluster_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster_STATUS, ManagedCluster_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster_STATUS tests if a specific instance of ManagedCluster_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster_STATUS(subject ManagedCluster_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster_STATUS + err := copied.AssignProperties_To_ManagedCluster_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster_STATUS + err = actual.AssignProperties_From_ManagedCluster_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedCluster_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -303,6 +473,48 @@ func AddRelatedPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator()) } +func Test_ContainerServiceLinuxProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceLinuxProfile to ContainerServiceLinuxProfile via AssignProperties_To_ContainerServiceLinuxProfile & AssignProperties_From_ContainerServiceLinuxProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceLinuxProfile, ContainerServiceLinuxProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceLinuxProfile tests if a specific instance of ContainerServiceLinuxProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceLinuxProfile(subject ContainerServiceLinuxProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceLinuxProfile + err := copied.AssignProperties_To_ContainerServiceLinuxProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceLinuxProfile + err = actual.AssignProperties_From_ContainerServiceLinuxProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceLinuxProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -378,6 +590,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile(gens map[string gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfigurationGenerator()) } +func Test_ContainerServiceLinuxProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceLinuxProfile_STATUS to ContainerServiceLinuxProfile_STATUS via AssignProperties_To_ContainerServiceLinuxProfile_STATUS & AssignProperties_From_ContainerServiceLinuxProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS, ContainerServiceLinuxProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS tests if a specific instance of ContainerServiceLinuxProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS(subject ContainerServiceLinuxProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceLinuxProfile_STATUS + err := copied.AssignProperties_To_ContainerServiceLinuxProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceLinuxProfile_STATUS + err = actual.AssignProperties_From_ContainerServiceLinuxProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceLinuxProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -453,6 +707,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(gens map gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfiguration_STATUSGenerator()) } +func Test_ContainerServiceNetworkProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceNetworkProfile to ContainerServiceNetworkProfile via AssignProperties_To_ContainerServiceNetworkProfile & AssignProperties_From_ContainerServiceNetworkProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceNetworkProfile, ContainerServiceNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceNetworkProfile tests if a specific instance of ContainerServiceNetworkProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceNetworkProfile(subject ContainerServiceNetworkProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceNetworkProfile + err := copied.AssignProperties_To_ContainerServiceNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceNetworkProfile + err = actual.AssignProperties_From_ContainerServiceNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -542,6 +838,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile(gens map[stri gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfileGenerator()) } +func Test_ContainerServiceNetworkProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceNetworkProfile_STATUS to ContainerServiceNetworkProfile_STATUS via AssignProperties_To_ContainerServiceNetworkProfile_STATUS & AssignProperties_From_ContainerServiceNetworkProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS, ContainerServiceNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS tests if a specific instance of ContainerServiceNetworkProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS(subject ContainerServiceNetworkProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceNetworkProfile_STATUS + err := copied.AssignProperties_To_ContainerServiceNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceNetworkProfile_STATUS + err = actual.AssignProperties_From_ContainerServiceNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -631,6 +969,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(gens m gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfile_STATUSGenerator()) } +func Test_ExtendedLocation_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ExtendedLocation to ExtendedLocation via AssignProperties_To_ExtendedLocation & AssignProperties_From_ExtendedLocation returns original", + prop.ForAll(RunPropertyAssignmentTestForExtendedLocation, ExtendedLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForExtendedLocation tests if a specific instance of ExtendedLocation can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForExtendedLocation(subject ExtendedLocation) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ExtendedLocation + err := copied.AssignProperties_To_ExtendedLocation(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ExtendedLocation + err = actual.AssignProperties_From_ExtendedLocation(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ExtendedLocation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -692,29 +1072,71 @@ func AddIndependentPropertyGeneratorsForExtendedLocation(gens map[string]gopter. gens["Type"] = gen.PtrOf(gen.AlphaString()) } -func Test_ExtendedLocation_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ExtendedLocation_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 80 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ExtendedLocation_STATUS via JSON returns original", - prop.ForAll(RunJSONSerializationTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) - properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) + "Round trip from ExtendedLocation_STATUS to ExtendedLocation_STATUS via AssignProperties_To_ExtendedLocation_STATUS & AssignProperties_From_ExtendedLocation_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) } -// RunJSONSerializationTestForExtendedLocation_STATUS runs a test to see if a specific instance of ExtendedLocation_STATUS round trips to JSON and back losslessly -func RunJSONSerializationTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { - // Serialize to JSON - bin, err := json.Marshal(subject) +// RunPropertyAssignmentTestForExtendedLocation_STATUS tests if a specific instance of ExtendedLocation_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ExtendedLocation_STATUS + err := copied.AssignProperties_To_ExtendedLocation_STATUS(&other) if err != nil { return err.Error() } - // Deserialize back into memory + // Use AssignPropertiesFrom() to convert back to our original type var actual ExtendedLocation_STATUS - err = json.Unmarshal(bin, &actual) + err = actual.AssignProperties_From_ExtendedLocation_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ExtendedLocation_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation_STATUS runs a test to see if a specific instance of ExtendedLocation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation_STATUS + err = json.Unmarshal(bin, &actual) if err != nil { return err.Error() } @@ -754,6 +1176,48 @@ func AddIndependentPropertyGeneratorsForExtendedLocation_STATUS(gens map[string] gens["Type"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAADProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAADProfile to ManagedClusterAADProfile via AssignProperties_To_ManagedClusterAADProfile & AssignProperties_From_ManagedClusterAADProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAADProfile, ManagedClusterAADProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAADProfile tests if a specific instance of ManagedClusterAADProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAADProfile(subject ManagedClusterAADProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAADProfile + err := copied.AssignProperties_To_ManagedClusterAADProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAADProfile + err = actual.AssignProperties_From_ManagedClusterAADProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAADProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -821,6 +1285,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAADProfile(gens map[string gens["TenantID"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAADProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAADProfile_STATUS to ManagedClusterAADProfile_STATUS via AssignProperties_To_ManagedClusterAADProfile_STATUS & AssignProperties_From_ManagedClusterAADProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS, ManagedClusterAADProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS tests if a specific instance of ManagedClusterAADProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS(subject ManagedClusterAADProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAADProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAADProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAADProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAADProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAADProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -888,6 +1394,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS(gens map gens["TenantID"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAddonProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAddonProfile to ManagedClusterAddonProfile via AssignProperties_To_ManagedClusterAddonProfile & AssignProperties_From_ManagedClusterAddonProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAddonProfile, ManagedClusterAddonProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAddonProfile tests if a specific instance of ManagedClusterAddonProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAddonProfile(subject ManagedClusterAddonProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAddonProfile + err := copied.AssignProperties_To_ManagedClusterAddonProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAddonProfile + err = actual.AssignProperties_From_ManagedClusterAddonProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAddonProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -950,6 +1498,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile(gens map[stri gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterAddonProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAddonProfile_STATUS to ManagedClusterAddonProfile_STATUS via AssignProperties_To_ManagedClusterAddonProfile_STATUS & AssignProperties_From_ManagedClusterAddonProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS, ManagedClusterAddonProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS tests if a specific instance of ManagedClusterAddonProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS(subject ManagedClusterAddonProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAddonProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAddonProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAddonProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAddonProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAddonProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1026,6 +1616,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS(gens map[s gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUSGenerator()) } +func Test_ManagedClusterAgentPoolProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAgentPoolProfile to ManagedClusterAgentPoolProfile via AssignProperties_To_ManagedClusterAgentPoolProfile & AssignProperties_From_ManagedClusterAgentPoolProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAgentPoolProfile, ManagedClusterAgentPoolProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAgentPoolProfile tests if a specific instance of ManagedClusterAgentPoolProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAgentPoolProfile(subject ManagedClusterAgentPoolProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAgentPoolProfile + err := copied.AssignProperties_To_ManagedClusterAgentPoolProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAgentPoolProfile + err = actual.AssignProperties_From_ManagedClusterAgentPoolProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAgentPoolProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1133,6 +1765,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile(gens map[stri gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) } +func Test_ManagedClusterAgentPoolProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAgentPoolProfile_STATUS to ManagedClusterAgentPoolProfile_STATUS via AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS & AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS, ManagedClusterAgentPoolProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS tests if a specific instance of ManagedClusterAgentPoolProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS(subject ManagedClusterAgentPoolProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAgentPoolProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAgentPoolProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAgentPoolProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1248,6 +1922,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(gens m gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) } +func Test_ManagedClusterAPIServerAccessProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAPIServerAccessProfile to ManagedClusterAPIServerAccessProfile via AssignProperties_To_ManagedClusterAPIServerAccessProfile & AssignProperties_From_ManagedClusterAPIServerAccessProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile, ManagedClusterAPIServerAccessProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile tests if a specific instance of ManagedClusterAPIServerAccessProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile(subject ManagedClusterAPIServerAccessProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAPIServerAccessProfile + err := copied.AssignProperties_To_ManagedClusterAPIServerAccessProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAPIServerAccessProfile + err = actual.AssignProperties_From_ManagedClusterAPIServerAccessProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAPIServerAccessProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1313,6 +2029,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile(gen gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAPIServerAccessProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAPIServerAccessProfile_STATUS to ManagedClusterAPIServerAccessProfile_STATUS via AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS & AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS, ManagedClusterAPIServerAccessProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS tests if a specific instance of ManagedClusterAPIServerAccessProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS(subject ManagedClusterAPIServerAccessProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAPIServerAccessProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAPIServerAccessProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAPIServerAccessProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1378,10 +2136,52 @@ func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STA gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) } -func Test_ManagedClusterAutoUpgradeProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ManagedClusterAutoUpgradeProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAutoUpgradeProfile to ManagedClusterAutoUpgradeProfile via AssignProperties_To_ManagedClusterAutoUpgradeProfile & AssignProperties_From_ManagedClusterAutoUpgradeProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile, ManagedClusterAutoUpgradeProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile tests if a specific instance of ManagedClusterAutoUpgradeProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile(subject ManagedClusterAutoUpgradeProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAutoUpgradeProfile + err := copied.AssignProperties_To_ManagedClusterAutoUpgradeProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAutoUpgradeProfile + err = actual.AssignProperties_From_ManagedClusterAutoUpgradeProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAutoUpgradeProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 parameters.MaxSize = 3 properties := gopter.NewProperties(parameters) properties.Property( @@ -1439,6 +2239,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile(gens ma gens["UpgradeChannel"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAutoUpgradeProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAutoUpgradeProfile_STATUS to ManagedClusterAutoUpgradeProfile_STATUS via AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS & AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS, ManagedClusterAutoUpgradeProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS tests if a specific instance of ManagedClusterAutoUpgradeProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS(subject ManagedClusterAutoUpgradeProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAutoUpgradeProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAutoUpgradeProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAutoUpgradeProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1500,6 +2342,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS( gens["UpgradeChannel"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAzureMonitorProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfile to ManagedClusterAzureMonitorProfile via AssignProperties_To_ManagedClusterAzureMonitorProfile & AssignProperties_From_ManagedClusterAzureMonitorProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile, ManagedClusterAzureMonitorProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile tests if a specific instance of ManagedClusterAzureMonitorProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile(subject ManagedClusterAzureMonitorProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfile + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfile + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1561,6 +2445,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile(gens map[s gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetricsGenerator()) } +func Test_ManagedClusterAzureMonitorProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfile_STATUS to ManagedClusterAzureMonitorProfile_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS, ManagedClusterAzureMonitorProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS(subject ManagedClusterAzureMonitorProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1622,6 +2548,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS(gen gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator()) } +func Test_ManagedClusterHTTPProxyConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterHTTPProxyConfig to ManagedClusterHTTPProxyConfig via AssignProperties_To_ManagedClusterHTTPProxyConfig & AssignProperties_From_ManagedClusterHTTPProxyConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig, ManagedClusterHTTPProxyConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig tests if a specific instance of ManagedClusterHTTPProxyConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig(subject ManagedClusterHTTPProxyConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterHTTPProxyConfig + err := copied.AssignProperties_To_ManagedClusterHTTPProxyConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterHTTPProxyConfig + err = actual.AssignProperties_From_ManagedClusterHTTPProxyConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterHTTPProxyConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1686,6 +2654,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig(gens map[s gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterHTTPProxyConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterHTTPProxyConfig_STATUS to ManagedClusterHTTPProxyConfig_STATUS via AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS & AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS, ManagedClusterHTTPProxyConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS tests if a specific instance of ManagedClusterHTTPProxyConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS(subject ManagedClusterHTTPProxyConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterHTTPProxyConfig_STATUS + err := copied.AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterHTTPProxyConfig_STATUS + err = actual.AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterHTTPProxyConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1750,6 +2760,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS(gen gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity to ManagedClusterIdentity via AssignProperties_To_ManagedClusterIdentity & AssignProperties_From_ManagedClusterIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity, ManagedClusterIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity tests if a specific instance of ManagedClusterIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity(subject ManagedClusterIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity + err := copied.AssignProperties_To_ManagedClusterIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity + err = actual.AssignProperties_From_ManagedClusterIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1825,6 +2877,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterIdentity(gens map[string]gopte gens["UserAssignedIdentities"] = gen.SliceOf(UserAssignedIdentityDetailsGenerator()) } +func Test_ManagedClusterIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity_STATUS to ManagedClusterIdentity_STATUS via AssignProperties_To_ManagedClusterIdentity_STATUS & AssignProperties_From_ManagedClusterIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity_STATUS, ManagedClusterIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity_STATUS tests if a specific instance of ManagedClusterIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity_STATUS(subject ManagedClusterIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1902,6 +2996,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS(gens map[strin gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator()) } +func Test_ManagedClusterOIDCIssuerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOIDCIssuerProfile to ManagedClusterOIDCIssuerProfile via AssignProperties_To_ManagedClusterOIDCIssuerProfile & AssignProperties_From_ManagedClusterOIDCIssuerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile, ManagedClusterOIDCIssuerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile tests if a specific instance of ManagedClusterOIDCIssuerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile(subject ManagedClusterOIDCIssuerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOIDCIssuerProfile + err := copied.AssignProperties_To_ManagedClusterOIDCIssuerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOIDCIssuerProfile + err = actual.AssignProperties_From_ManagedClusterOIDCIssuerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterOIDCIssuerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1963,22 +3099,64 @@ func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile(gens map gens["Enabled"] = gen.PtrOf(gen.Bool()) } -func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 80 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ManagedClusterOIDCIssuerProfile_STATUS via JSON returns original", - prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) - properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) + "Round trip from ManagedClusterOIDCIssuerProfile_STATUS to ManagedClusterOIDCIssuerProfile_STATUS via AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS & AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) } -// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS round trips to JSON and back losslessly -func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { - // Serialize to JSON - bin, err := json.Marshal(subject) +// RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS tests if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOIDCIssuerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOIDCIssuerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) if err != nil { return err.Error() } @@ -2025,6 +3203,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS(g gens["IssuerURL"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterOperatorSpec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOperatorSpec to ManagedClusterOperatorSpec via AssignProperties_To_ManagedClusterOperatorSpec & AssignProperties_From_ManagedClusterOperatorSpec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorSpec, ManagedClusterOperatorSpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOperatorSpec tests if a specific instance of ManagedClusterOperatorSpec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorSpec(subject ManagedClusterOperatorSpec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorSpec + err := copied.AssignProperties_To_ManagedClusterOperatorSpec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorSpec + err = actual.AssignProperties_From_ManagedClusterOperatorSpec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterOperatorSpec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2087,6 +3307,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]g gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator()) } +func Test_ManagedClusterPodIdentityProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProfile to ManagedClusterPodIdentityProfile via AssignProperties_To_ManagedClusterPodIdentityProfile & AssignProperties_From_ManagedClusterPodIdentityProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProfile, ManagedClusterPodIdentityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProfile tests if a specific instance of ManagedClusterPodIdentityProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProfile(subject ManagedClusterPodIdentityProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProfile + err := copied.AssignProperties_To_ManagedClusterPodIdentityProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProfile + err = actual.AssignProperties_From_ManagedClusterPodIdentityProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2164,6 +3426,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile(gens map[st gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityExceptionGenerator()) } +func Test_ManagedClusterPodIdentityProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProfile_STATUS to ManagedClusterPodIdentityProfile_STATUS via AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS & AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS, ManagedClusterPodIdentityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS tests if a specific instance of ManagedClusterPodIdentityProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS(subject ManagedClusterPodIdentityProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2241,6 +3545,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(gens gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityException_STATUSGenerator()) } +func Test_ManagedClusterProperties_AutoScalerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterProperties_AutoScalerProfile to ManagedClusterProperties_AutoScalerProfile via AssignProperties_To_ManagedClusterProperties_AutoScalerProfile & AssignProperties_From_ManagedClusterProperties_AutoScalerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile, ManagedClusterProperties_AutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile tests if a specific instance of ManagedClusterProperties_AutoScalerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile(subject ManagedClusterProperties_AutoScalerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterProperties_AutoScalerProfile + err := copied.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterProperties_AutoScalerProfile + err = actual.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterProperties_AutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2318,6 +3664,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfi gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterProperties_AutoScalerProfile_STATUS to ManagedClusterProperties_AutoScalerProfile_STATUS via AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS & AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS, ManagedClusterProperties_AutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS tests if a specific instance of ManagedClusterProperties_AutoScalerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS(subject ManagedClusterProperties_AutoScalerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterProperties_AutoScalerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2395,6 +3783,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfi gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterSecurityProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfile to ManagedClusterSecurityProfile via AssignProperties_To_ManagedClusterSecurityProfile & AssignProperties_From_ManagedClusterSecurityProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfile, ManagedClusterSecurityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfile tests if a specific instance of ManagedClusterSecurityProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfile(subject ManagedClusterSecurityProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfile + err := copied.AssignProperties_To_ManagedClusterSecurityProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfile + err = actual.AssignProperties_From_ManagedClusterSecurityProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2459,6 +3889,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile(gens map[strin gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentityGenerator()) } +func Test_ManagedClusterSecurityProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfile_STATUS to ManagedClusterSecurityProfile_STATUS via AssignProperties_To_ManagedClusterSecurityProfile_STATUS & AssignProperties_From_ManagedClusterSecurityProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS, ManagedClusterSecurityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS tests if a specific instance of ManagedClusterSecurityProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS(subject ManagedClusterSecurityProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2523,6 +3995,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS(gens ma gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator()) } +func Test_ManagedClusterServicePrincipalProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterServicePrincipalProfile to ManagedClusterServicePrincipalProfile via AssignProperties_To_ManagedClusterServicePrincipalProfile & AssignProperties_From_ManagedClusterServicePrincipalProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile, ManagedClusterServicePrincipalProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile tests if a specific instance of ManagedClusterServicePrincipalProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile(subject ManagedClusterServicePrincipalProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterServicePrincipalProfile + err := copied.AssignProperties_To_ManagedClusterServicePrincipalProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterServicePrincipalProfile + err = actual.AssignProperties_From_ManagedClusterServicePrincipalProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterServicePrincipalProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2584,14 +4098,56 @@ func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile(ge gens["ClientId"] = gen.PtrOf(gen.AlphaString()) } -func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 80 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ManagedClusterServicePrincipalProfile_STATUS via JSON returns original", + "Round trip from ManagedClusterServicePrincipalProfile_STATUS to ManagedClusterServicePrincipalProfile_STATUS via AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS & AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS, ManagedClusterServicePrincipalProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS tests if a specific instance of ManagedClusterServicePrincipalProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS(subject ManagedClusterServicePrincipalProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterServicePrincipalProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterServicePrincipalProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile_STATUS via JSON returns original", prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS, ManagedClusterServicePrincipalProfile_STATUSGenerator())) properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) } @@ -2645,6 +4201,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_ST gens["ClientId"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterSKU_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSKU to ManagedClusterSKU via AssignProperties_To_ManagedClusterSKU & AssignProperties_From_ManagedClusterSKU returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSKU, ManagedClusterSKUGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSKU tests if a specific instance of ManagedClusterSKU can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSKU(subject ManagedClusterSKU) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSKU + err := copied.AssignProperties_To_ManagedClusterSKU(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSKU + err = actual.AssignProperties_From_ManagedClusterSKU(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSKU_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2706,6 +4304,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSKU(gens map[string]gopter gens["Tier"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterSKU_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSKU_STATUS to ManagedClusterSKU_STATUS via AssignProperties_To_ManagedClusterSKU_STATUS & AssignProperties_From_ManagedClusterSKU_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSKU_STATUS, ManagedClusterSKU_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSKU_STATUS tests if a specific instance of ManagedClusterSKU_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSKU_STATUS(subject ManagedClusterSKU_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSKU_STATUS + err := copied.AssignProperties_To_ManagedClusterSKU_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSKU_STATUS + err = actual.AssignProperties_From_ManagedClusterSKU_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSKU_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2768,6 +4408,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS(gens map[string gens["Tier"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterStorageProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfile to ManagedClusterStorageProfile via AssignProperties_To_ManagedClusterStorageProfile & AssignProperties_From_ManagedClusterStorageProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfile, ManagedClusterStorageProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfile tests if a specific instance of ManagedClusterStorageProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfile(subject ManagedClusterStorageProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfile + err := copied.AssignProperties_To_ManagedClusterStorageProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfile + err = actual.AssignProperties_From_ManagedClusterStorageProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2832,6 +4514,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile(gens map[string gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotControllerGenerator()) } +func Test_ManagedClusterStorageProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfile_STATUS to ManagedClusterStorageProfile_STATUS via AssignProperties_To_ManagedClusterStorageProfile_STATUS & AssignProperties_From_ManagedClusterStorageProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS, ManagedClusterStorageProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS tests if a specific instance of ManagedClusterStorageProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS(subject ManagedClusterStorageProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2896,6 +4620,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS(gens map gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotController_STATUSGenerator()) } +func Test_ManagedClusterWindowsProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWindowsProfile to ManagedClusterWindowsProfile via AssignProperties_To_ManagedClusterWindowsProfile & AssignProperties_From_ManagedClusterWindowsProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWindowsProfile, ManagedClusterWindowsProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWindowsProfile tests if a specific instance of ManagedClusterWindowsProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWindowsProfile(subject ManagedClusterWindowsProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWindowsProfile + err := copied.AssignProperties_To_ManagedClusterWindowsProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWindowsProfile + err = actual.AssignProperties_From_ManagedClusterWindowsProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWindowsProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -2974,6 +4740,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile(gens map[string gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfileGenerator()) } +func Test_ManagedClusterWindowsProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWindowsProfile_STATUS to ManagedClusterWindowsProfile_STATUS via AssignProperties_To_ManagedClusterWindowsProfile_STATUS & AssignProperties_From_ManagedClusterWindowsProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS, ManagedClusterWindowsProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS tests if a specific instance of ManagedClusterWindowsProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS(subject ManagedClusterWindowsProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWindowsProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterWindowsProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWindowsProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterWindowsProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWindowsProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3052,6 +4860,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(gens map gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfile_STATUSGenerator()) } +func Test_ManagedClusterWorkloadAutoScalerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfile to ManagedClusterWorkloadAutoScalerProfile via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile, ManagedClusterWorkloadAutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile tests if a specific instance of ManagedClusterWorkloadAutoScalerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile(subject ManagedClusterWorkloadAutoScalerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfile + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfile + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3113,6 +4963,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile(gens gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKedaGenerator()) } +func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfile_STATUS to ManagedClusterWorkloadAutoScalerProfile_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS, ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS(subject ManagedClusterWorkloadAutoScalerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3174,21 +5066,63 @@ func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STAT gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator()) } -func Test_PowerState_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_PowerState_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 80 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of PowerState_STATUS via JSON returns original", - prop.ForAll(RunJSONSerializationTestForPowerState_STATUS, PowerState_STATUSGenerator())) - properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) + "Round trip from PowerState_STATUS to PowerState_STATUS via AssignProperties_To_PowerState_STATUS & AssignProperties_From_PowerState_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPowerState_STATUS, PowerState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) } -// RunJSONSerializationTestForPowerState_STATUS runs a test to see if a specific instance of PowerState_STATUS round trips to JSON and back losslessly -func RunJSONSerializationTestForPowerState_STATUS(subject PowerState_STATUS) string { - // Serialize to JSON +// RunPropertyAssignmentTestForPowerState_STATUS tests if a specific instance of PowerState_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPowerState_STATUS(subject PowerState_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PowerState_STATUS + err := copied.AssignProperties_To_PowerState_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PowerState_STATUS + err = actual.AssignProperties_From_PowerState_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PowerState_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState_STATUS, PowerState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState_STATUS runs a test to see if a specific instance of PowerState_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState_STATUS(subject PowerState_STATUS) string { + // Serialize to JSON bin, err := json.Marshal(subject) if err != nil { return err.Error() @@ -3234,6 +5168,48 @@ func AddIndependentPropertyGeneratorsForPowerState_STATUS(gens map[string]gopter gens["Code"] = gen.PtrOf(gen.AlphaString()) } +func Test_PrivateLinkResource_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateLinkResource to PrivateLinkResource via AssignProperties_To_PrivateLinkResource & AssignProperties_From_PrivateLinkResource returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateLinkResource, PrivateLinkResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateLinkResource tests if a specific instance of PrivateLinkResource can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrivateLinkResource(subject PrivateLinkResource) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PrivateLinkResource + err := copied.AssignProperties_To_PrivateLinkResource(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateLinkResource + err = actual.AssignProperties_From_PrivateLinkResource(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_PrivateLinkResource_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3298,6 +5274,48 @@ func AddIndependentPropertyGeneratorsForPrivateLinkResource(gens map[string]gopt gens["Type"] = gen.PtrOf(gen.AlphaString()) } +func Test_PrivateLinkResource_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateLinkResource_STATUS to PrivateLinkResource_STATUS via AssignProperties_To_PrivateLinkResource_STATUS & AssignProperties_From_PrivateLinkResource_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateLinkResource_STATUS, PrivateLinkResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateLinkResource_STATUS tests if a specific instance of PrivateLinkResource_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrivateLinkResource_STATUS(subject PrivateLinkResource_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PrivateLinkResource_STATUS + err := copied.AssignProperties_To_PrivateLinkResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateLinkResource_STATUS + err = actual.AssignProperties_From_PrivateLinkResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_PrivateLinkResource_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3364,6 +5382,48 @@ func AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(gens map[stri gens["Type"] = gen.PtrOf(gen.AlphaString()) } +func Test_SystemData_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SystemData_STATUS to SystemData_STATUS via AssignProperties_To_SystemData_STATUS & AssignProperties_From_SystemData_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSystemData_STATUS tests if a specific instance of SystemData_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SystemData_STATUS + err := copied.AssignProperties_To_SystemData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SystemData_STATUS + err = actual.AssignProperties_From_SystemData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_SystemData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3429,6 +5489,48 @@ func AddIndependentPropertyGeneratorsForSystemData_STATUS(gens map[string]gopter gens["LastModifiedByType"] = gen.PtrOf(gen.AlphaString()) } +func Test_UserAssignedIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentity to UserAssignedIdentity via AssignProperties_To_UserAssignedIdentity & AssignProperties_From_UserAssignedIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentity, UserAssignedIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentity tests if a specific instance of UserAssignedIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentity(subject UserAssignedIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentity + err := copied.AssignProperties_To_UserAssignedIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentity + err = actual.AssignProperties_From_UserAssignedIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_UserAssignedIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3491,6 +5593,48 @@ func AddIndependentPropertyGeneratorsForUserAssignedIdentity(gens map[string]gop gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) } +func Test_UserAssignedIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentity_STATUS to UserAssignedIdentity_STATUS via AssignProperties_To_UserAssignedIdentity_STATUS & AssignProperties_From_UserAssignedIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentity_STATUS, UserAssignedIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentity_STATUS tests if a specific instance of UserAssignedIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentity_STATUS(subject UserAssignedIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentity_STATUS + err := copied.AssignProperties_To_UserAssignedIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentity_STATUS + err = actual.AssignProperties_From_UserAssignedIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_UserAssignedIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3554,6 +5698,48 @@ func AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS(gens map[str gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) } +func Test_AzureKeyVaultKms_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AzureKeyVaultKms to AzureKeyVaultKms via AssignProperties_To_AzureKeyVaultKms & AssignProperties_From_AzureKeyVaultKms returns original", + prop.ForAll(RunPropertyAssignmentTestForAzureKeyVaultKms, AzureKeyVaultKmsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAzureKeyVaultKms tests if a specific instance of AzureKeyVaultKms can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAzureKeyVaultKms(subject AzureKeyVaultKms) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AzureKeyVaultKms + err := copied.AssignProperties_To_AzureKeyVaultKms(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AzureKeyVaultKms + err = actual.AssignProperties_From_AzureKeyVaultKms(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AzureKeyVaultKms_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3616,6 +5802,48 @@ func AddIndependentPropertyGeneratorsForAzureKeyVaultKms(gens map[string]gopter. gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.AlphaString()) } +func Test_AzureKeyVaultKms_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AzureKeyVaultKms_STATUS to AzureKeyVaultKms_STATUS via AssignProperties_To_AzureKeyVaultKms_STATUS & AssignProperties_From_AzureKeyVaultKms_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS, AzureKeyVaultKms_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS tests if a specific instance of AzureKeyVaultKms_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS(subject AzureKeyVaultKms_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AzureKeyVaultKms_STATUS + err := copied.AssignProperties_To_AzureKeyVaultKms_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AzureKeyVaultKms_STATUS + err = actual.AssignProperties_From_AzureKeyVaultKms_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AzureKeyVaultKms_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3680,6 +5908,48 @@ func AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS(gens map[string] gens["KeyVaultResourceId"] = gen.PtrOf(gen.AlphaString()) } +func Test_ContainerServiceSshConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshConfiguration to ContainerServiceSshConfiguration via AssignProperties_To_ContainerServiceSshConfiguration & AssignProperties_From_ContainerServiceSshConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshConfiguration, ContainerServiceSshConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshConfiguration tests if a specific instance of ContainerServiceSshConfiguration can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshConfiguration(subject ContainerServiceSshConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshConfiguration + err := copied.AssignProperties_To_ContainerServiceSshConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshConfiguration + err = actual.AssignProperties_From_ContainerServiceSshConfiguration(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceSshConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3741,14 +6011,56 @@ func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration(gens map[st gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKeyGenerator()) } -func Test_ContainerServiceSshConfiguration_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ContainerServiceSshConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 80 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ContainerServiceSshConfiguration_STATUS via JSON returns original", + "Round trip from ContainerServiceSshConfiguration_STATUS to ContainerServiceSshConfiguration_STATUS via AssignProperties_To_ContainerServiceSshConfiguration_STATUS & AssignProperties_From_ContainerServiceSshConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS, ContainerServiceSshConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS tests if a specific instance of ContainerServiceSshConfiguration_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS(subject ContainerServiceSshConfiguration_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshConfiguration_STATUS + err := copied.AssignProperties_To_ContainerServiceSshConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshConfiguration_STATUS + err = actual.AssignProperties_From_ContainerServiceSshConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceSshConfiguration_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration_STATUS via JSON returns original", prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS, ContainerServiceSshConfiguration_STATUSGenerator())) properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) } @@ -3802,6 +6114,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(gens gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_STATUSGenerator()) } +func Test_ManagedClusterAzureMonitorProfileMetrics_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileMetrics to ManagedClusterAzureMonitorProfileMetrics via AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics & AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics, ManagedClusterAzureMonitorProfileMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics tests if a specific instance of ManagedClusterAzureMonitorProfileMetrics can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics(subject ManagedClusterAzureMonitorProfileMetrics) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileMetrics + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileMetrics + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfileMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3877,6 +6231,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(gen gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator()) } +func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileMetrics_STATUS to ManagedClusterAzureMonitorProfileMetrics_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS, ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfileMetrics_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS(subject ManagedClusterAzureMonitorProfileMetrics_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileMetrics_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -3952,6 +6348,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STA gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator()) } +func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity_UserAssignedIdentities_STATUS to ManagedClusterIdentity_UserAssignedIdentities_STATUS via AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS & AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS, ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS tests if a specific instance of ManagedClusterIdentity_UserAssignedIdentities_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS(subject ManagedClusterIdentity_UserAssignedIdentities_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := copied.AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity_UserAssignedIdentities_STATUS + err = actual.AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4014,6 +6452,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdent gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterLoadBalancerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile to ManagedClusterLoadBalancerProfile via AssignProperties_To_ManagedClusterLoadBalancerProfile & AssignProperties_From_ManagedClusterLoadBalancerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile, ManagedClusterLoadBalancerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile tests if a specific instance of ManagedClusterLoadBalancerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile(subject ManagedClusterLoadBalancerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4094,6 +6574,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile(gens map[s gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPsGenerator()) } +func Test_ManagedClusterLoadBalancerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_STATUS to ManagedClusterLoadBalancerProfile_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS, ManagedClusterLoadBalancerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS(subject ManagedClusterLoadBalancerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4174,6 +6696,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(gen gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator()) } +func Test_ManagedClusterNATGatewayProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterNATGatewayProfile to ManagedClusterNATGatewayProfile via AssignProperties_To_ManagedClusterNATGatewayProfile & AssignProperties_From_ManagedClusterNATGatewayProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterNATGatewayProfile, ManagedClusterNATGatewayProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterNATGatewayProfile tests if a specific instance of ManagedClusterNATGatewayProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterNATGatewayProfile(subject ManagedClusterNATGatewayProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterNATGatewayProfile + err := copied.AssignProperties_To_ManagedClusterNATGatewayProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterNATGatewayProfile + err = actual.AssignProperties_From_ManagedClusterNATGatewayProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterNATGatewayProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4250,6 +6814,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile(gens map[str gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfileGenerator()) } +func Test_ManagedClusterNATGatewayProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterNATGatewayProfile_STATUS to ManagedClusterNATGatewayProfile_STATUS via AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS & AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS, ManagedClusterNATGatewayProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS tests if a specific instance of ManagedClusterNATGatewayProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS(subject ManagedClusterNATGatewayProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterNATGatewayProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterNATGatewayProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterNATGatewayProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4326,6 +6932,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator()) } +func Test_ManagedClusterOperatorConfigMaps_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOperatorConfigMaps to ManagedClusterOperatorConfigMaps via AssignProperties_To_ManagedClusterOperatorConfigMaps & AssignProperties_From_ManagedClusterOperatorConfigMaps returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps tests if a specific instance of ManagedClusterOperatorConfigMaps can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorConfigMaps + err := copied.AssignProperties_To_ManagedClusterOperatorConfigMaps(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorConfigMaps + err = actual.AssignProperties_From_ManagedClusterOperatorConfigMaps(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4381,21 +7029,63 @@ func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen { return managedClusterOperatorConfigMapsGenerator } -func Test_ManagedClusterOperatorSecrets_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ManagedClusterOperatorSecrets_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 100 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ManagedClusterOperatorSecrets via JSON returns original", - prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) - properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) + "Round trip from ManagedClusterOperatorSecrets to ManagedClusterOperatorSecrets via AssignProperties_To_ManagedClusterOperatorSecrets & AssignProperties_From_ManagedClusterOperatorSecrets returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) } -// RunJSONSerializationTestForManagedClusterOperatorSecrets runs a test to see if a specific instance of ManagedClusterOperatorSecrets round trips to JSON and back losslessly -func RunJSONSerializationTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { - // Serialize to JSON +// RunPropertyAssignmentTestForManagedClusterOperatorSecrets tests if a specific instance of ManagedClusterOperatorSecrets can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorSecrets + err := copied.AssignProperties_To_ManagedClusterOperatorSecrets(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorSecrets + err = actual.AssignProperties_From_ManagedClusterOperatorSecrets(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOperatorSecrets_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorSecrets via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorSecrets runs a test to see if a specific instance of ManagedClusterOperatorSecrets round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { + // Serialize to JSON bin, err := json.Marshal(subject) if err != nil { return err.Error() @@ -4436,6 +7126,48 @@ func ManagedClusterOperatorSecretsGenerator() gopter.Gen { return managedClusterOperatorSecretsGenerator } +func Test_ManagedClusterPodIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity to ManagedClusterPodIdentity via AssignProperties_To_ManagedClusterPodIdentity & AssignProperties_From_ManagedClusterPodIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity, ManagedClusterPodIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity tests if a specific instance of ManagedClusterPodIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity(subject ManagedClusterPodIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity + err := copied.AssignProperties_To_ManagedClusterPodIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity + err = actual.AssignProperties_From_ManagedClusterPodIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4513,6 +7245,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity(gens map[string]go gens["Identity"] = gen.PtrOf(UserAssignedIdentityGenerator()) } +func Test_ManagedClusterPodIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity_STATUS to ManagedClusterPodIdentity_STATUS via AssignProperties_To_ManagedClusterPodIdentity_STATUS & AssignProperties_From_ManagedClusterPodIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS, ManagedClusterPodIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS tests if a specific instance of ManagedClusterPodIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS(subject ManagedClusterPodIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4592,6 +7366,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS(gens map[st gens["ProvisioningInfo"] = gen.PtrOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator()) } +func Test_ManagedClusterPodIdentityException_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityException to ManagedClusterPodIdentityException via AssignProperties_To_ManagedClusterPodIdentityException & AssignProperties_From_ManagedClusterPodIdentityException returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityException, ManagedClusterPodIdentityExceptionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityException tests if a specific instance of ManagedClusterPodIdentityException can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityException(subject ManagedClusterPodIdentityException) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityException + err := copied.AssignProperties_To_ManagedClusterPodIdentityException(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityException + err = actual.AssignProperties_From_ManagedClusterPodIdentityException(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityException_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4655,6 +7471,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException(gens gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) } +func Test_ManagedClusterPodIdentityException_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityException_STATUS to ManagedClusterPodIdentityException_STATUS via AssignProperties_To_ManagedClusterPodIdentityException_STATUS & AssignProperties_From_ManagedClusterPodIdentityException_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS, ManagedClusterPodIdentityException_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS tests if a specific instance of ManagedClusterPodIdentityException_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS(subject ManagedClusterPodIdentityException_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityException_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityException_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityException_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityException_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityException_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4718,6 +7576,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATU gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) } +func Test_ManagedClusterSecurityProfileDefender_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefender to ManagedClusterSecurityProfileDefender via AssignProperties_To_ManagedClusterSecurityProfileDefender & AssignProperties_From_ManagedClusterSecurityProfileDefender returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender, ManagedClusterSecurityProfileDefenderGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender tests if a specific instance of ManagedClusterSecurityProfileDefender can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender(subject ManagedClusterSecurityProfileDefender) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefender + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefender(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefender + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefender(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileDefender_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4779,6 +7679,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender(gens m gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator()) } +func Test_ManagedClusterSecurityProfileDefender_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefender_STATUS to ManagedClusterSecurityProfileDefender_STATUS via AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS & AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS, ManagedClusterSecurityProfileDefender_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS tests if a specific instance of ManagedClusterSecurityProfileDefender_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS(subject ManagedClusterSecurityProfileDefender_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefender_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefender_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileDefender_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4854,6 +7796,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator()) } +func Test_ManagedClusterSecurityProfileImageCleaner_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileImageCleaner to ManagedClusterSecurityProfileImageCleaner via AssignProperties_To_ManagedClusterSecurityProfileImageCleaner & AssignProperties_From_ManagedClusterSecurityProfileImageCleaner returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner, ManagedClusterSecurityProfileImageCleanerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner tests if a specific instance of ManagedClusterSecurityProfileImageCleaner can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner(subject ManagedClusterSecurityProfileImageCleaner) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileImageCleaner + err := copied.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileImageCleaner + err = actual.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileImageCleaner_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4916,6 +7900,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleane gens["IntervalHours"] = gen.PtrOf(gen.Int()) } +func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileImageCleaner_STATUS to ManagedClusterSecurityProfileImageCleaner_STATUS via AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS & AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS, ManagedClusterSecurityProfileImageCleaner_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS tests if a specific instance of ManagedClusterSecurityProfileImageCleaner_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS(subject ManagedClusterSecurityProfileImageCleaner_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileImageCleaner_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -4978,14 +8004,56 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleane gens["IntervalHours"] = gen.PtrOf(gen.Int()) } -func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { +func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() - parameters.MinSuccessfulTests = 100 - parameters.MaxSize = 3 + parameters.MaxSize = 10 properties := gopter.NewProperties(parameters) properties.Property( - "Round trip of ManagedClusterSecurityProfileWorkloadIdentity via JSON returns original", + "Round trip from ManagedClusterSecurityProfileWorkloadIdentity to ManagedClusterSecurityProfileWorkloadIdentity via AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity & AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity, ManagedClusterSecurityProfileWorkloadIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity tests if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity(subject ManagedClusterSecurityProfileWorkloadIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileWorkloadIdentity + err := copied.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileWorkloadIdentity + err = actual.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity via JSON returns original", prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity, ManagedClusterSecurityProfileWorkloadIdentityGenerator())) properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) } @@ -5039,6 +8107,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIde gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileWorkloadIdentity_STATUS to ManagedClusterSecurityProfileWorkloadIdentity_STATUS via AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS & AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS, ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS tests if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS(subject ManagedClusterSecurityProfileWorkloadIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5100,6 +8210,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIde gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileBlobCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileBlobCSIDriver to ManagedClusterStorageProfileBlobCSIDriver via AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver & AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver, ManagedClusterStorageProfileBlobCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver tests if a specific instance of ManagedClusterStorageProfileBlobCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver(subject ManagedClusterStorageProfileBlobCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileBlobCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileBlobCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileBlobCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5161,6 +8313,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileBlobCSIDriver_STATUS to ManagedClusterStorageProfileBlobCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS, ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS(subject ManagedClusterStorageProfileBlobCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileBlobCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5222,6 +8416,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileDiskCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileDiskCSIDriver to ManagedClusterStorageProfileDiskCSIDriver via AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver & AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver, ManagedClusterStorageProfileDiskCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver tests if a specific instance of ManagedClusterStorageProfileDiskCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver(subject ManagedClusterStorageProfileDiskCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileDiskCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileDiskCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileDiskCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5283,6 +8519,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileDiskCSIDriver_STATUS to ManagedClusterStorageProfileDiskCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS, ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS(subject ManagedClusterStorageProfileDiskCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileDiskCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5344,6 +8622,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileFileCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileFileCSIDriver to ManagedClusterStorageProfileFileCSIDriver via AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver & AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver, ManagedClusterStorageProfileFileCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver tests if a specific instance of ManagedClusterStorageProfileFileCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver(subject ManagedClusterStorageProfileFileCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileFileCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileFileCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileFileCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5405,6 +8725,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileFileCSIDriver_STATUS to ManagedClusterStorageProfileFileCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS, ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileFileCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS(subject ManagedClusterStorageProfileFileCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileFileCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5466,6 +8828,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDrive gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileSnapshotController_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileSnapshotController to ManagedClusterStorageProfileSnapshotController via AssignProperties_To_ManagedClusterStorageProfileSnapshotController & AssignProperties_From_ManagedClusterStorageProfileSnapshotController returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController, ManagedClusterStorageProfileSnapshotControllerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController tests if a specific instance of ManagedClusterStorageProfileSnapshotController can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController(subject ManagedClusterStorageProfileSnapshotController) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileSnapshotController + err := copied.AssignProperties_To_ManagedClusterStorageProfileSnapshotController(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileSnapshotController + err = actual.AssignProperties_From_ManagedClusterStorageProfileSnapshotController(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileSnapshotController_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5527,6 +8931,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotCont gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterStorageProfileSnapshotController_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileSnapshotController_STATUS to ManagedClusterStorageProfileSnapshotController_STATUS via AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS & AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS, ManagedClusterStorageProfileSnapshotController_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS tests if a specific instance of ManagedClusterStorageProfileSnapshotController_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS(subject ManagedClusterStorageProfileSnapshotController_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileSnapshotController_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterStorageProfileSnapshotController_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5588,6 +9034,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotCont gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileKeda to ManagedClusterWorkloadAutoScalerProfileKeda via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda, ManagedClusterWorkloadAutoScalerProfileKedaGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda(subject ManagedClusterWorkloadAutoScalerProfileKeda) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileKeda + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfileKeda_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5649,6 +9137,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileK gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileKeda_STATUS to ManagedClusterWorkloadAutoScalerProfileKeda_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS, ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(subject ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5710,6 +9240,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileK gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_UserAssignedIdentityDetails_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentityDetails to UserAssignedIdentityDetails via AssignProperties_To_UserAssignedIdentityDetails & AssignProperties_From_UserAssignedIdentityDetails returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentityDetails tests if a specific instance of UserAssignedIdentityDetails can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentityDetails + err := copied.AssignProperties_To_UserAssignedIdentityDetails(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentityDetails + err = actual.AssignProperties_From_UserAssignedIdentityDetails(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_UserAssignedIdentityDetails_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5765,6 +9337,48 @@ func UserAssignedIdentityDetailsGenerator() gopter.Gen { return userAssignedIdentityDetailsGenerator } +func Test_WindowsGmsaProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from WindowsGmsaProfile to WindowsGmsaProfile via AssignProperties_To_WindowsGmsaProfile & AssignProperties_From_WindowsGmsaProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForWindowsGmsaProfile, WindowsGmsaProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForWindowsGmsaProfile tests if a specific instance of WindowsGmsaProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForWindowsGmsaProfile(subject WindowsGmsaProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.WindowsGmsaProfile + err := copied.AssignProperties_To_WindowsGmsaProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual WindowsGmsaProfile + err = actual.AssignProperties_From_WindowsGmsaProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_WindowsGmsaProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5827,6 +9441,48 @@ func AddIndependentPropertyGeneratorsForWindowsGmsaProfile(gens map[string]gopte gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) } +func Test_WindowsGmsaProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from WindowsGmsaProfile_STATUS to WindowsGmsaProfile_STATUS via AssignProperties_To_WindowsGmsaProfile_STATUS & AssignProperties_From_WindowsGmsaProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS, WindowsGmsaProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS tests if a specific instance of WindowsGmsaProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS(subject WindowsGmsaProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.WindowsGmsaProfile_STATUS + err := copied.AssignProperties_To_WindowsGmsaProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual WindowsGmsaProfile_STATUS + err = actual.AssignProperties_From_WindowsGmsaProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_WindowsGmsaProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5890,6 +9546,48 @@ func AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS(gens map[strin gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) } +func Test_ContainerServiceSshPublicKey_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshPublicKey to ContainerServiceSshPublicKey via AssignProperties_To_ContainerServiceSshPublicKey & AssignProperties_From_ContainerServiceSshPublicKey returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshPublicKey, ContainerServiceSshPublicKeyGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshPublicKey tests if a specific instance of ContainerServiceSshPublicKey can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshPublicKey(subject ContainerServiceSshPublicKey) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshPublicKey + err := copied.AssignProperties_To_ContainerServiceSshPublicKey(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshPublicKey + err = actual.AssignProperties_From_ContainerServiceSshPublicKey(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ContainerServiceSshPublicKey_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -5943,12 +9641,54 @@ func ContainerServiceSshPublicKeyGenerator() gopter.Gen { AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(generators) containerServiceSshPublicKeyGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey{}), generators) - return containerServiceSshPublicKeyGenerator -} + return containerServiceSshPublicKeyGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshPublicKey_STATUS to ContainerServiceSshPublicKey_STATUS via AssignProperties_To_ContainerServiceSshPublicKey_STATUS & AssignProperties_From_ContainerServiceSshPublicKey_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS, ContainerServiceSshPublicKey_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS tests if a specific instance of ContainerServiceSshPublicKey_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS(subject ContainerServiceSshPublicKey_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshPublicKey_STATUS + err := copied.AssignProperties_To_ContainerServiceSshPublicKey_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshPublicKey_STATUS + err = actual.AssignProperties_From_ContainerServiceSshPublicKey_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } -// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey is a factory method for creating gopter generators -func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(gens map[string]gopter.Gen) { - gens["KeyData"] = gen.PtrOf(gen.AlphaString()) + return "" } func Test_ContainerServiceSshPublicKey_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { @@ -6012,6 +9752,48 @@ func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(gens gens["KeyData"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileKubeStateMetrics to ManagedClusterAzureMonitorProfileKubeStateMetrics via AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics & AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics, ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics tests if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics(subject ManagedClusterAzureMonitorProfileKubeStateMetrics) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6074,6 +9856,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeSta gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS to ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS, ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6136,6 +9960,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeSta gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_ManagedOutboundIPs to ManagedClusterLoadBalancerProfile_ManagedOutboundIPs via AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs & AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs, ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs tests if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6198,6 +10064,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_Manage gens["CountIPv6"] = gen.PtrOf(gen.Int()) } +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS to ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6260,6 +10168,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_Manage gens["CountIPv6"] = gen.PtrOf(gen.Int()) } +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPPrefixes to ManagedClusterLoadBalancerProfile_OutboundIPPrefixes via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes, ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6321,6 +10271,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIP gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReferenceGenerator()) } +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS to ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6382,6 +10374,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIP gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReference_STATUSGenerator()) } +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPs to ManagedClusterLoadBalancerProfile_OutboundIPs via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs, ManagedClusterLoadBalancerProfile_OutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs(subject ManagedClusterLoadBalancerProfile_OutboundIPs) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPs + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6443,6 +10477,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIP gens["PublicIPs"] = gen.SliceOf(ResourceReferenceGenerator()) } +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS to ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6496,12 +10572,54 @@ func ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator() gopter.Gen AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(generators) managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS{}), generators) - return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator -} + return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterManagedOutboundIPProfile to ManagedClusterManagedOutboundIPProfile via AssignProperties_To_ManagedClusterManagedOutboundIPProfile & AssignProperties_From_ManagedClusterManagedOutboundIPProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile, ManagedClusterManagedOutboundIPProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile tests if a specific instance of ManagedClusterManagedOutboundIPProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile(subject ManagedClusterManagedOutboundIPProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterManagedOutboundIPProfile + err := copied.AssignProperties_To_ManagedClusterManagedOutboundIPProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterManagedOutboundIPProfile + err = actual.AssignProperties_From_ManagedClusterManagedOutboundIPProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } -// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS is a factory method for creating gopter generators -func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(gens map[string]gopter.Gen) { - gens["PublicIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) + return "" } func Test_ManagedClusterManagedOutboundIPProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { @@ -6565,6 +10683,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile(g gens["Count"] = gen.PtrOf(gen.Int()) } +func Test_ManagedClusterManagedOutboundIPProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterManagedOutboundIPProfile_STATUS to ManagedClusterManagedOutboundIPProfile_STATUS via AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS & AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS, ManagedClusterManagedOutboundIPProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS tests if a specific instance of ManagedClusterManagedOutboundIPProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS(subject ManagedClusterManagedOutboundIPProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterManagedOutboundIPProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterManagedOutboundIPProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6626,6 +10786,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_S gens["Count"] = gen.PtrOf(gen.Int()) } +func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity_ProvisioningInfo_STATUS to ManagedClusterPodIdentity_ProvisioningInfo_STATUS via AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS & AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS, ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS tests if a specific instance of ManagedClusterPodIdentity_ProvisioningInfo_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS(subject ManagedClusterPodIdentity_ProvisioningInfo_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6687,6 +10889,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_S gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningError_STATUSGenerator()) } +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefenderSecurityMonitoring to ManagedClusterSecurityProfileDefenderSecurityMonitoring via AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring & AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring, ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring tests if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6748,6 +10992,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSec gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS to ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS via AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS & AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS, ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS tests if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6809,6 +11095,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSec gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ResourceReference_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ResourceReference to ResourceReference via AssignProperties_To_ResourceReference & AssignProperties_From_ResourceReference returns original", + prop.ForAll(RunPropertyAssignmentTestForResourceReference, ResourceReferenceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForResourceReference tests if a specific instance of ResourceReference can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForResourceReference(subject ResourceReference) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ResourceReference + err := copied.AssignProperties_To_ResourceReference(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ResourceReference + err = actual.AssignProperties_From_ResourceReference(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ResourceReference_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6863,6 +11191,48 @@ func ResourceReferenceGenerator() gopter.Gen { return resourceReferenceGenerator } +func Test_ResourceReference_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ResourceReference_STATUS to ResourceReference_STATUS via AssignProperties_To_ResourceReference_STATUS & AssignProperties_From_ResourceReference_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForResourceReference_STATUS, ResourceReference_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForResourceReference_STATUS tests if a specific instance of ResourceReference_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForResourceReference_STATUS(subject ResourceReference_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ResourceReference_STATUS + err := copied.AssignProperties_To_ResourceReference_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ResourceReference_STATUS + err = actual.AssignProperties_From_ResourceReference_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ResourceReference_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6924,6 +11294,48 @@ func AddIndependentPropertyGeneratorsForResourceReference_STATUS(gens map[string gens["Id"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterPodIdentityProvisioningError_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningError_STATUS to ManagedClusterPodIdentityProvisioningError_STATUS via AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS & AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS, ManagedClusterPodIdentityProvisioningError_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS tests if a specific instance of ManagedClusterPodIdentityProvisioningError_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS(subject ManagedClusterPodIdentityProvisioningError_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningError_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityProvisioningError_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6985,6 +11397,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_S gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator()) } +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningErrorBody_STATUS to ManagedClusterPodIdentityProvisioningErrorBody_STATUS via AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS & AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS, ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS tests if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -7062,6 +11516,48 @@ func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBo gens["Details"] = gen.SliceOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator()) } +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled to ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled via AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled & AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled tests if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() diff --git a/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen.go index 6ae26d2d696..f603abb43cd 100644 --- a/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen.go +++ b/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen.go @@ -4,19 +4,18 @@ package storage import ( + "fmt" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" "github.com/pkg/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" ) -// +kubebuilder:rbac:groups=containerservice.azure.com,resources=managedclustersagentpools,verbs=get;list;watch;create;update;patch;delete -// +kubebuilder:rbac:groups=containerservice.azure.com,resources={managedclustersagentpools/status,managedclustersagentpools/finalizers},verbs=get;update;patch - // +kubebuilder:object:root=true // +kubebuilder:subresource:status -// +kubebuilder:storageversion // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" // +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" @@ -44,6 +43,28 @@ func (pool *ManagedClustersAgentPool) SetConditions(conditions conditions.Condit pool.Status.Conditions = conditions } +var _ conversion.Convertible = &ManagedClustersAgentPool{} + +// ConvertFrom populates our ManagedClustersAgentPool from the provided hub ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20231001s.ManagedClustersAgentPool) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedClustersAgentPool but received %T instead", hub) + } + + return pool.AssignProperties_From_ManagedClustersAgentPool(source) +} + +// ConvertTo populates the provided hub ManagedClustersAgentPool from our ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20231001s.ManagedClustersAgentPool) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedClustersAgentPool but received %T instead", hub) + } + + return pool.AssignProperties_To_ManagedClustersAgentPool(destination) +} + var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} // AzureName returns the Azure name of the resource @@ -115,8 +136,75 @@ func (pool *ManagedClustersAgentPool) SetStatus(status genruntime.ConvertibleSta return nil } -// Hub marks that this ManagedClustersAgentPool is the hub type for conversion -func (pool *ManagedClustersAgentPool) Hub() {} +// AssignProperties_From_ManagedClustersAgentPool populates our ManagedClustersAgentPool from the provided source ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) AssignProperties_From_ManagedClustersAgentPool(source *v20231001s.ManagedClustersAgentPool) error { + + // ObjectMeta + pool.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec ManagedClusters_AgentPool_Spec + err := spec.AssignProperties_From_ManagedClusters_AgentPool_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_AgentPool_Spec() to populate field Spec") + } + pool.Spec = spec + + // Status + var status ManagedClusters_AgentPool_STATUS + err = status.AssignProperties_From_ManagedClusters_AgentPool_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_AgentPool_STATUS() to populate field Status") + } + pool.Status = status + + // Invoke the augmentConversionForManagedClustersAgentPool interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClustersAgentPool); ok { + err := augmentedPool.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClustersAgentPool populates the provided destination ManagedClustersAgentPool from our ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) AssignProperties_To_ManagedClustersAgentPool(destination *v20231001s.ManagedClustersAgentPool) error { + + // ObjectMeta + destination.ObjectMeta = *pool.ObjectMeta.DeepCopy() + + // Spec + var spec v20231001s.ManagedClusters_AgentPool_Spec + err := pool.Spec.AssignProperties_To_ManagedClusters_AgentPool_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_AgentPool_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20231001s.ManagedClusters_AgentPool_STATUS + err = pool.Status.AssignProperties_To_ManagedClusters_AgentPool_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_AgentPool_STATUS() to populate field Status") + } + destination.Status = status + + // Invoke the augmentConversionForManagedClustersAgentPool interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClustersAgentPool); ok { + err := augmentedPool.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} // OriginalGVK returns a GroupValueKind for the original API version used to create the resource func (pool *ManagedClustersAgentPool) OriginalGVK() *schema.GroupVersionKind { @@ -138,6 +226,11 @@ type ManagedClustersAgentPoolList struct { Items []ManagedClustersAgentPool `json:"items"` } +type augmentConversionForManagedClustersAgentPool interface { + AssignPropertiesFrom(src *v20231001s.ManagedClustersAgentPool) error + AssignPropertiesTo(dst *v20231001s.ManagedClustersAgentPool) error +} + // Storage version of v1api20230201.ManagedClusters_AgentPool_Spec type ManagedClusters_AgentPool_Spec struct { AvailabilityZones []string `json:"availabilityZones,omitempty"` @@ -213,20 +306,596 @@ var _ genruntime.ConvertibleSpec = &ManagedClusters_AgentPool_Spec{} // ConvertSpecFrom populates our ManagedClusters_AgentPool_Spec from the provided source func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { - if source == pool { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + src, ok := source.(*v20231001s.ManagedClusters_AgentPool_Spec) + if ok { + // Populate our instance from source + return pool.AssignProperties_From_ManagedClusters_AgentPool_Spec(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedClusters_AgentPool_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") } - return source.ConvertSpecTo(pool) + // Update our instance from src + err = pool.AssignProperties_From_ManagedClusters_AgentPool_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil } // ConvertSpecTo populates the provided destination from our ManagedClusters_AgentPool_Spec func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { - if destination == pool { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + dst, ok := destination.(*v20231001s.ManagedClusters_AgentPool_Spec) + if ok { + // Populate destination from our instance + return pool.AssignProperties_To_ManagedClusters_AgentPool_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedClusters_AgentPool_Spec{} + err := pool.AssignProperties_To_ManagedClusters_AgentPool_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } + + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil +} + +// AssignProperties_From_ManagedClusters_AgentPool_Spec populates our ManagedClusters_AgentPool_Spec from the provided source ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) AssignProperties_From_ManagedClusters_AgentPool_Spec(source *v20231001s.ManagedClusters_AgentPool_Spec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AvailabilityZones + pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // AzureName + pool.AzureName = source.AzureName + + // CapacityReservationGroupReference + if source.CapacityReservationGroupReference != nil { + propertyBag.Add("CapacityReservationGroupReference", *source.CapacityReservationGroupReference) + } else { + propertyBag.Remove("CapacityReservationGroupReference") + } + + // Count + pool.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.AssignProperties_From_CreationData(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData() to populate field CreationData") + } + pool.CreationData = &creationDatum + } else { + pool.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } else { + pool.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + pool.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + pool.EnableFIPS = &enableFIPS + } else { + pool.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } else { + pool.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } else { + pool.EnableUltraSSD = nil + } + + // GpuInstanceProfile + pool.GpuInstanceProfile = genruntime.ClonePointerToString(source.GpuInstanceProfile) + + // HostGroupReference + if source.HostGroupReference != nil { + hostGroupReference := source.HostGroupReference.Copy() + pool.HostGroupReference = &hostGroupReference + } else { + pool.HostGroupReference = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.AssignProperties_From_KubeletConfig(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig() to populate field KubeletConfig") + } + pool.KubeletConfig = &kubeletConfig + } else { + pool.KubeletConfig = nil + } + + // KubeletDiskType + pool.KubeletDiskType = genruntime.ClonePointerToString(source.KubeletDiskType) + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig() to populate field LinuxOSConfig") + } + pool.LinuxOSConfig = &linuxOSConfig + } else { + pool.LinuxOSConfig = nil + } + + // MaxCount + pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + pool.Mode = genruntime.ClonePointerToString(source.Mode) + + // NetworkProfile + if source.NetworkProfile != nil { + propertyBag.Add("NetworkProfile", *source.NetworkProfile) + } else { + propertyBag.Remove("NetworkProfile") + } + + // NodeLabels + pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixReference + if source.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := source.NodePublicIPPrefixReference.Copy() + pool.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + pool.NodePublicIPPrefixReference = nil + } + + // NodeTaints + pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OriginalVersion + pool.OriginalVersion = source.OriginalVersion + + // OsDiskSizeGB + pool.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + pool.OsDiskType = genruntime.ClonePointerToString(source.OsDiskType) + + // OsSKU + pool.OsSKU = genruntime.ClonePointerToString(source.OsSKU) + + // OsType + pool.OsType = genruntime.ClonePointerToString(source.OsType) + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + pool.Owner = &owner + } else { + pool.Owner = nil + } + + // PodSubnetReference + if source.PodSubnetReference != nil { + podSubnetReference := source.PodSubnetReference.Copy() + pool.PodSubnetReference = &podSubnetReference + } else { + pool.PodSubnetReference = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.AssignProperties_From_PowerState(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState() to populate field PowerState") + } + pool.PowerState = &powerState + } else { + pool.PowerState = nil + } + + // ProximityPlacementGroupReference + if source.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := source.ProximityPlacementGroupReference.Copy() + pool.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + pool.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + pool.ScaleDownMode = genruntime.ClonePointerToString(source.ScaleDownMode) + + // ScaleSetEvictionPolicy + pool.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(source.ScaleSetEvictionPolicy) + + // ScaleSetPriority + pool.ScaleSetPriority = genruntime.ClonePointerToString(source.ScaleSetPriority) + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } else { + pool.SpotMaxPrice = nil + } + + // Tags + pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + pool.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + pool.UpgradeSettings = &upgradeSetting + } else { + pool.UpgradeSettings = nil + } + + // VmSize + pool.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetReference + if source.VnetSubnetReference != nil { + vnetSubnetReference := source.VnetSubnetReference.Copy() + pool.VnetSubnetReference = &vnetSubnetReference + } else { + pool.VnetSubnetReference = nil + } + + // WorkloadRuntime + pool.WorkloadRuntime = genruntime.ClonePointerToString(source.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + pool.PropertyBag = propertyBag + } else { + pool.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusters_AgentPool_Spec interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClusters_AgentPool_Spec); ok { + err := augmentedPool.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusters_AgentPool_Spec populates the provided destination ManagedClusters_AgentPool_Spec from our ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) AssignProperties_To_ManagedClusters_AgentPool_Spec(destination *v20231001s.ManagedClusters_AgentPool_Spec) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(pool.PropertyBag) + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(pool.AvailabilityZones) + + // AzureName + destination.AzureName = pool.AzureName + + // CapacityReservationGroupReference + if propertyBag.Contains("CapacityReservationGroupReference") { + var capacityReservationGroupReference genruntime.ResourceReference + err := propertyBag.Pull("CapacityReservationGroupReference", &capacityReservationGroupReference) + if err != nil { + return errors.Wrap(err, "pulling 'CapacityReservationGroupReference' from propertyBag") + } + + destination.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + destination.CapacityReservationGroupReference = nil + } + + // Count + destination.Count = genruntime.ClonePointerToInt(pool.Count) + + // CreationData + if pool.CreationData != nil { + var creationDatum v20231001s.CreationData + err := pool.CreationData.AssignProperties_To_CreationData(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // EnableAutoScaling + if pool.EnableAutoScaling != nil { + enableAutoScaling := *pool.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if pool.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *pool.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if pool.EnableFIPS != nil { + enableFIPS := *pool.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if pool.EnableNodePublicIP != nil { + enableNodePublicIP := *pool.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if pool.EnableUltraSSD != nil { + enableUltraSSD := *pool.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + destination.GpuInstanceProfile = genruntime.ClonePointerToString(pool.GpuInstanceProfile) + + // HostGroupReference + if pool.HostGroupReference != nil { + hostGroupReference := pool.HostGroupReference.Copy() + destination.HostGroupReference = &hostGroupReference + } else { + destination.HostGroupReference = nil + } + + // KubeletConfig + if pool.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig + err := pool.KubeletConfig.AssignProperties_To_KubeletConfig(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + destination.KubeletDiskType = genruntime.ClonePointerToString(pool.KubeletDiskType) + + // LinuxOSConfig + if pool.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig + err := pool.LinuxOSConfig.AssignProperties_To_LinuxOSConfig(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(pool.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(pool.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(pool.MinCount) + + // Mode + destination.Mode = genruntime.ClonePointerToString(pool.Mode) + + // NetworkProfile + if propertyBag.Contains("NetworkProfile") { + var networkProfile v20231001s.AgentPoolNetworkProfile + err := propertyBag.Pull("NetworkProfile", &networkProfile) + if err != nil { + return errors.Wrap(err, "pulling 'NetworkProfile' from propertyBag") + } + + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(pool.NodeLabels) + + // NodePublicIPPrefixReference + if pool.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := pool.NodePublicIPPrefixReference.Copy() + destination.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + destination.NodePublicIPPrefixReference = nil + } + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(pool.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(pool.OrchestratorVersion) + + // OriginalVersion + destination.OriginalVersion = pool.OriginalVersion + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(pool.OsDiskSizeGB) + + // OsDiskType + destination.OsDiskType = genruntime.ClonePointerToString(pool.OsDiskType) + + // OsSKU + destination.OsSKU = genruntime.ClonePointerToString(pool.OsSKU) + + // OsType + destination.OsType = genruntime.ClonePointerToString(pool.OsType) + + // Owner + if pool.Owner != nil { + owner := pool.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // PodSubnetReference + if pool.PodSubnetReference != nil { + podSubnetReference := pool.PodSubnetReference.Copy() + destination.PodSubnetReference = &podSubnetReference + } else { + destination.PodSubnetReference = nil + } + + // PowerState + if pool.PowerState != nil { + var powerState v20231001s.PowerState + err := pool.PowerState.AssignProperties_To_PowerState(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProximityPlacementGroupReference + if pool.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := pool.ProximityPlacementGroupReference.Copy() + destination.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + destination.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + destination.ScaleDownMode = genruntime.ClonePointerToString(pool.ScaleDownMode) + + // ScaleSetEvictionPolicy + destination.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(pool.ScaleSetEvictionPolicy) + + // ScaleSetPriority + destination.ScaleSetPriority = genruntime.ClonePointerToString(pool.ScaleSetPriority) + + // SpotMaxPrice + if pool.SpotMaxPrice != nil { + spotMaxPrice := *pool.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(pool.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(pool.Type) + + // UpgradeSettings + if pool.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings + err := pool.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(pool.VmSize) + + // VnetSubnetReference + if pool.VnetSubnetReference != nil { + vnetSubnetReference := pool.VnetSubnetReference.Copy() + destination.VnetSubnetReference = &vnetSubnetReference + } else { + destination.VnetSubnetReference = nil + } + + // WorkloadRuntime + destination.WorkloadRuntime = genruntime.ClonePointerToString(pool.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusters_AgentPool_Spec interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClusters_AgentPool_Spec); ok { + err := augmentedPool.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } } - return destination.ConvertSpecFrom(pool) + // No error + return nil } // Storage version of v1api20230201.ManagedClusters_AgentPool_STATUS @@ -283,78 +952,1038 @@ var _ genruntime.ConvertibleStatus = &ManagedClusters_AgentPool_STATUS{} // ConvertStatusFrom populates our ManagedClusters_AgentPool_STATUS from the provided source func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { - if source == pool { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + src, ok := source.(*v20231001s.ManagedClusters_AgentPool_STATUS) + if ok { + // Populate our instance from source + return pool.AssignProperties_From_ManagedClusters_AgentPool_STATUS(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedClusters_AgentPool_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") } - return source.ConvertStatusTo(pool) + // Update our instance from src + err = pool.AssignProperties_From_ManagedClusters_AgentPool_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil } // ConvertStatusTo populates the provided destination from our ManagedClusters_AgentPool_STATUS func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { - if destination == pool { - return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + dst, ok := destination.(*v20231001s.ManagedClusters_AgentPool_STATUS) + if ok { + // Populate destination from our instance + return pool.AssignProperties_To_ManagedClusters_AgentPool_STATUS(dst) } - return destination.ConvertStatusFrom(pool) -} + // Convert to an intermediate form + dst = &v20231001s.ManagedClusters_AgentPool_STATUS{} + err := pool.AssignProperties_To_ManagedClusters_AgentPool_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } -// Storage version of v1api20230201.AgentPoolUpgradeSettings -// Settings for upgrading an agentpool -type AgentPoolUpgradeSettings struct { - MaxSurge *string `json:"maxSurge,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` -} + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } -// Storage version of v1api20230201.AgentPoolUpgradeSettings_STATUS -// Settings for upgrading an agentpool -type AgentPoolUpgradeSettings_STATUS struct { - MaxSurge *string `json:"maxSurge,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + return nil } -// Storage version of v1api20230201.CreationData -// Data used when creating a target resource from a source resource. -type CreationData struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +// AssignProperties_From_ManagedClusters_AgentPool_STATUS populates our ManagedClusters_AgentPool_STATUS from the provided source ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) AssignProperties_From_ManagedClusters_AgentPool_STATUS(source *v20231001s.ManagedClusters_AgentPool_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // SourceResourceReference: This is the ARM ID of the source object to be used to create the target object. - SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"` -} + // AvailabilityZones + pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) -// Storage version of v1api20230201.CreationData_STATUS -// Data used when creating a target resource from a source resource. -type CreationData_STATUS struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - SourceResourceId *string `json:"sourceResourceId,omitempty"` -} + // CapacityReservationGroupID + if source.CapacityReservationGroupID != nil { + propertyBag.Add("CapacityReservationGroupID", *source.CapacityReservationGroupID) + } else { + propertyBag.Remove("CapacityReservationGroupID") + } -// Storage version of v1api20230201.KubeletConfig -// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. -type KubeletConfig struct { - AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` - ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` - ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` - CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` - CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` - CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` - FailSwapOn *bool `json:"failSwapOn,omitempty"` - ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` - ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` - PodMaxPids *int `json:"podMaxPids,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` -} + // Conditions + pool.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) -// Storage version of v1api20230201.KubeletConfig_STATUS -// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. -type KubeletConfig_STATUS struct { - AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` - ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` - ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` - CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` - CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` - CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + // Count + pool.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData_STATUS + err := creationDatum.AssignProperties_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData_STATUS() to populate field CreationData") + } + pool.CreationData = &creationDatum + } else { + pool.CreationData = nil + } + + // CurrentOrchestratorVersion + pool.CurrentOrchestratorVersion = genruntime.ClonePointerToString(source.CurrentOrchestratorVersion) + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } else { + pool.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + pool.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + pool.EnableFIPS = &enableFIPS + } else { + pool.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } else { + pool.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } else { + pool.EnableUltraSSD = nil + } + + // GpuInstanceProfile + pool.GpuInstanceProfile = genruntime.ClonePointerToString(source.GpuInstanceProfile) + + // HostGroupID + pool.HostGroupID = genruntime.ClonePointerToString(source.HostGroupID) + + // Id + pool.Id = genruntime.ClonePointerToString(source.Id) + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig_STATUS + err := kubeletConfig.AssignProperties_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + pool.KubeletConfig = &kubeletConfig + } else { + pool.KubeletConfig = nil + } + + // KubeletDiskType + pool.KubeletDiskType = genruntime.ClonePointerToString(source.KubeletDiskType) + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig_STATUS + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + pool.LinuxOSConfig = &linuxOSConfig + } else { + pool.LinuxOSConfig = nil + } + + // MaxCount + pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + pool.Mode = genruntime.ClonePointerToString(source.Mode) + + // Name + pool.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + propertyBag.Add("NetworkProfile", *source.NetworkProfile) + } else { + propertyBag.Remove("NetworkProfile") + } + + // NodeImageVersion + pool.NodeImageVersion = genruntime.ClonePointerToString(source.NodeImageVersion) + + // NodeLabels + pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixID + pool.NodePublicIPPrefixID = genruntime.ClonePointerToString(source.NodePublicIPPrefixID) + + // NodeTaints + pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + pool.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + pool.OsDiskType = genruntime.ClonePointerToString(source.OsDiskType) + + // OsSKU + pool.OsSKU = genruntime.ClonePointerToString(source.OsSKU) + + // OsType + pool.OsType = genruntime.ClonePointerToString(source.OsType) + + // PodSubnetID + pool.PodSubnetID = genruntime.ClonePointerToString(source.PodSubnetID) + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + pool.PowerState = &powerState + } else { + pool.PowerState = nil + } + + // PropertiesType + pool.PropertiesType = genruntime.ClonePointerToString(source.PropertiesType) + + // ProvisioningState + pool.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // ProximityPlacementGroupID + pool.ProximityPlacementGroupID = genruntime.ClonePointerToString(source.ProximityPlacementGroupID) + + // ScaleDownMode + pool.ScaleDownMode = genruntime.ClonePointerToString(source.ScaleDownMode) + + // ScaleSetEvictionPolicy + pool.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(source.ScaleSetEvictionPolicy) + + // ScaleSetPriority + pool.ScaleSetPriority = genruntime.ClonePointerToString(source.ScaleSetPriority) + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } else { + pool.SpotMaxPrice = nil + } + + // Tags + pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + pool.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + pool.UpgradeSettings = &upgradeSetting + } else { + pool.UpgradeSettings = nil + } + + // VmSize + pool.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetID + pool.VnetSubnetID = genruntime.ClonePointerToString(source.VnetSubnetID) + + // WorkloadRuntime + pool.WorkloadRuntime = genruntime.ClonePointerToString(source.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + pool.PropertyBag = propertyBag + } else { + pool.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusters_AgentPool_STATUS interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClusters_AgentPool_STATUS); ok { + err := augmentedPool.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusters_AgentPool_STATUS populates the provided destination ManagedClusters_AgentPool_STATUS from our ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) AssignProperties_To_ManagedClusters_AgentPool_STATUS(destination *v20231001s.ManagedClusters_AgentPool_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(pool.PropertyBag) + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(pool.AvailabilityZones) + + // CapacityReservationGroupID + if propertyBag.Contains("CapacityReservationGroupID") { + var capacityReservationGroupID string + err := propertyBag.Pull("CapacityReservationGroupID", &capacityReservationGroupID) + if err != nil { + return errors.Wrap(err, "pulling 'CapacityReservationGroupID' from propertyBag") + } + + destination.CapacityReservationGroupID = &capacityReservationGroupID + } else { + destination.CapacityReservationGroupID = nil + } + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(pool.Conditions) + + // Count + destination.Count = genruntime.ClonePointerToInt(pool.Count) + + // CreationData + if pool.CreationData != nil { + var creationDatum v20231001s.CreationData_STATUS + err := pool.CreationData.AssignProperties_To_CreationData_STATUS(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData_STATUS() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // CurrentOrchestratorVersion + destination.CurrentOrchestratorVersion = genruntime.ClonePointerToString(pool.CurrentOrchestratorVersion) + + // EnableAutoScaling + if pool.EnableAutoScaling != nil { + enableAutoScaling := *pool.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if pool.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *pool.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if pool.EnableFIPS != nil { + enableFIPS := *pool.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if pool.EnableNodePublicIP != nil { + enableNodePublicIP := *pool.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if pool.EnableUltraSSD != nil { + enableUltraSSD := *pool.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + destination.GpuInstanceProfile = genruntime.ClonePointerToString(pool.GpuInstanceProfile) + + // HostGroupID + destination.HostGroupID = genruntime.ClonePointerToString(pool.HostGroupID) + + // Id + destination.Id = genruntime.ClonePointerToString(pool.Id) + + // KubeletConfig + if pool.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig_STATUS + err := pool.KubeletConfig.AssignProperties_To_KubeletConfig_STATUS(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig_STATUS() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + destination.KubeletDiskType = genruntime.ClonePointerToString(pool.KubeletDiskType) + + // LinuxOSConfig + if pool.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig_STATUS + err := pool.LinuxOSConfig.AssignProperties_To_LinuxOSConfig_STATUS(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(pool.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(pool.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(pool.MinCount) + + // Mode + destination.Mode = genruntime.ClonePointerToString(pool.Mode) + + // Name + destination.Name = genruntime.ClonePointerToString(pool.Name) + + // NetworkProfile + if propertyBag.Contains("NetworkProfile") { + var networkProfile v20231001s.AgentPoolNetworkProfile_STATUS + err := propertyBag.Pull("NetworkProfile", &networkProfile) + if err != nil { + return errors.Wrap(err, "pulling 'NetworkProfile' from propertyBag") + } + + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeImageVersion + destination.NodeImageVersion = genruntime.ClonePointerToString(pool.NodeImageVersion) + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(pool.NodeLabels) + + // NodePublicIPPrefixID + destination.NodePublicIPPrefixID = genruntime.ClonePointerToString(pool.NodePublicIPPrefixID) + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(pool.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(pool.OrchestratorVersion) + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(pool.OsDiskSizeGB) + + // OsDiskType + destination.OsDiskType = genruntime.ClonePointerToString(pool.OsDiskType) + + // OsSKU + destination.OsSKU = genruntime.ClonePointerToString(pool.OsSKU) + + // OsType + destination.OsType = genruntime.ClonePointerToString(pool.OsType) + + // PodSubnetID + destination.PodSubnetID = genruntime.ClonePointerToString(pool.PodSubnetID) + + // PowerState + if pool.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := pool.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // PropertiesType + destination.PropertiesType = genruntime.ClonePointerToString(pool.PropertiesType) + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(pool.ProvisioningState) + + // ProximityPlacementGroupID + destination.ProximityPlacementGroupID = genruntime.ClonePointerToString(pool.ProximityPlacementGroupID) + + // ScaleDownMode + destination.ScaleDownMode = genruntime.ClonePointerToString(pool.ScaleDownMode) + + // ScaleSetEvictionPolicy + destination.ScaleSetEvictionPolicy = genruntime.ClonePointerToString(pool.ScaleSetEvictionPolicy) + + // ScaleSetPriority + destination.ScaleSetPriority = genruntime.ClonePointerToString(pool.ScaleSetPriority) + + // SpotMaxPrice + if pool.SpotMaxPrice != nil { + spotMaxPrice := *pool.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(pool.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(pool.Type) + + // UpgradeSettings + if pool.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings_STATUS + err := pool.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(pool.VmSize) + + // VnetSubnetID + destination.VnetSubnetID = genruntime.ClonePointerToString(pool.VnetSubnetID) + + // WorkloadRuntime + destination.WorkloadRuntime = genruntime.ClonePointerToString(pool.WorkloadRuntime) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForManagedClusters_AgentPool_STATUS interface (if implemented) to customize the conversion + var poolAsAny any = pool + if augmentedPool, ok := poolAsAny.(augmentConversionForManagedClusters_AgentPool_STATUS); ok { + err := augmentedPool.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.AgentPoolUpgradeSettings +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings struct { + MaxSurge *string `json:"maxSurge,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_AgentPoolUpgradeSettings populates our AgentPoolUpgradeSettings from the provided source AgentPoolUpgradeSettings +func (settings *AgentPoolUpgradeSettings) AssignProperties_From_AgentPoolUpgradeSettings(source *v20231001s.AgentPoolUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DrainTimeoutInMinutes + if source.DrainTimeoutInMinutes != nil { + propertyBag.Add("DrainTimeoutInMinutes", *source.DrainTimeoutInMinutes) + } else { + propertyBag.Remove("DrainTimeoutInMinutes") + } + + // MaxSurge + settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolUpgradeSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForAgentPoolUpgradeSettings); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolUpgradeSettings populates the provided destination AgentPoolUpgradeSettings from our AgentPoolUpgradeSettings +func (settings *AgentPoolUpgradeSettings) AssignProperties_To_AgentPoolUpgradeSettings(destination *v20231001s.AgentPoolUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // DrainTimeoutInMinutes + if propertyBag.Contains("DrainTimeoutInMinutes") { + var drainTimeoutInMinute int + err := propertyBag.Pull("DrainTimeoutInMinutes", &drainTimeoutInMinute) + if err != nil { + return errors.Wrap(err, "pulling 'DrainTimeoutInMinutes' from propertyBag") + } + + destination.DrainTimeoutInMinutes = &drainTimeoutInMinute + } else { + destination.DrainTimeoutInMinutes = nil + } + + // MaxSurge + destination.MaxSurge = genruntime.ClonePointerToString(settings.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolUpgradeSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForAgentPoolUpgradeSettings); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.AgentPoolUpgradeSettings_STATUS +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings_STATUS struct { + MaxSurge *string `json:"maxSurge,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_AgentPoolUpgradeSettings_STATUS populates our AgentPoolUpgradeSettings_STATUS from the provided source AgentPoolUpgradeSettings_STATUS +func (settings *AgentPoolUpgradeSettings_STATUS) AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source *v20231001s.AgentPoolUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DrainTimeoutInMinutes + if source.DrainTimeoutInMinutes != nil { + propertyBag.Add("DrainTimeoutInMinutes", *source.DrainTimeoutInMinutes) + } else { + propertyBag.Remove("DrainTimeoutInMinutes") + } + + // MaxSurge + settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolUpgradeSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForAgentPoolUpgradeSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolUpgradeSettings_STATUS populates the provided destination AgentPoolUpgradeSettings_STATUS from our AgentPoolUpgradeSettings_STATUS +func (settings *AgentPoolUpgradeSettings_STATUS) AssignProperties_To_AgentPoolUpgradeSettings_STATUS(destination *v20231001s.AgentPoolUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // DrainTimeoutInMinutes + if propertyBag.Contains("DrainTimeoutInMinutes") { + var drainTimeoutInMinute int + err := propertyBag.Pull("DrainTimeoutInMinutes", &drainTimeoutInMinute) + if err != nil { + return errors.Wrap(err, "pulling 'DrainTimeoutInMinutes' from propertyBag") + } + + destination.DrainTimeoutInMinutes = &drainTimeoutInMinute + } else { + destination.DrainTimeoutInMinutes = nil + } + + // MaxSurge + destination.MaxSurge = genruntime.ClonePointerToString(settings.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolUpgradeSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForAgentPoolUpgradeSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForManagedClusters_AgentPool_Spec interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusters_AgentPool_Spec) error + AssignPropertiesTo(dst *v20231001s.ManagedClusters_AgentPool_Spec) error +} + +type augmentConversionForManagedClusters_AgentPool_STATUS interface { + AssignPropertiesFrom(src *v20231001s.ManagedClusters_AgentPool_STATUS) error + AssignPropertiesTo(dst *v20231001s.ManagedClusters_AgentPool_STATUS) error +} + +// Storage version of v1api20230201.CreationData +// Data used when creating a target resource from a source resource. +type CreationData struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // SourceResourceReference: This is the ARM ID of the source object to be used to create the target object. + SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"` +} + +// AssignProperties_From_CreationData populates our CreationData from the provided source CreationData +func (data *CreationData) AssignProperties_From_CreationData(source *v20231001s.CreationData) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // SourceResourceReference + if source.SourceResourceReference != nil { + sourceResourceReference := source.SourceResourceReference.Copy() + data.SourceResourceReference = &sourceResourceReference + } else { + data.SourceResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + data.PropertyBag = propertyBag + } else { + data.PropertyBag = nil + } + + // Invoke the augmentConversionForCreationData interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForCreationData); ok { + err := augmentedData.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_CreationData populates the provided destination CreationData from our CreationData +func (data *CreationData) AssignProperties_To_CreationData(destination *v20231001s.CreationData) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(data.PropertyBag) + + // SourceResourceReference + if data.SourceResourceReference != nil { + sourceResourceReference := data.SourceResourceReference.Copy() + destination.SourceResourceReference = &sourceResourceReference + } else { + destination.SourceResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForCreationData interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForCreationData); ok { + err := augmentedData.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.CreationData_STATUS +// Data used when creating a target resource from a source resource. +type CreationData_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SourceResourceId *string `json:"sourceResourceId,omitempty"` +} + +// AssignProperties_From_CreationData_STATUS populates our CreationData_STATUS from the provided source CreationData_STATUS +func (data *CreationData_STATUS) AssignProperties_From_CreationData_STATUS(source *v20231001s.CreationData_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // SourceResourceId + data.SourceResourceId = genruntime.ClonePointerToString(source.SourceResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + data.PropertyBag = propertyBag + } else { + data.PropertyBag = nil + } + + // Invoke the augmentConversionForCreationData_STATUS interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForCreationData_STATUS); ok { + err := augmentedData.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_CreationData_STATUS populates the provided destination CreationData_STATUS from our CreationData_STATUS +func (data *CreationData_STATUS) AssignProperties_To_CreationData_STATUS(destination *v20231001s.CreationData_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(data.PropertyBag) + + // SourceResourceId + destination.SourceResourceId = genruntime.ClonePointerToString(data.SourceResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForCreationData_STATUS interface (if implemented) to customize the conversion + var dataAsAny any = data + if augmentedData, ok := dataAsAny.(augmentConversionForCreationData_STATUS); ok { + err := augmentedData.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.KubeletConfig +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig struct { + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + FailSwapOn *bool `json:"failSwapOn,omitempty"` + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + PodMaxPids *int `json:"podMaxPids,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +// AssignProperties_From_KubeletConfig populates our KubeletConfig from the provided source KubeletConfig +func (config *KubeletConfig) AssignProperties_From_KubeletConfig(source *v20231001s.KubeletConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowedUnsafeSysctls + config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + config.ContainerLogMaxFiles = genruntime.ClonePointerToInt(source.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if source.CpuCfsQuota != nil { + cpuCfsQuota := *source.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } else { + config.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) + + // FailSwapOn + if source.FailSwapOn != nil { + failSwapOn := *source.FailSwapOn + config.FailSwapOn = &failSwapOn + } else { + config.FailSwapOn = nil + } + + // ImageGcHighThreshold + config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) + + // ImageGcLowThreshold + config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) + + // PodMaxPids + config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) + + // TopologyManagerPolicy + config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForKubeletConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForKubeletConfig); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_KubeletConfig populates the provided destination KubeletConfig from our KubeletConfig +func (config *KubeletConfig) AssignProperties_To_KubeletConfig(destination *v20231001s.KubeletConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // AllowedUnsafeSysctls + destination.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(config.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + destination.ContainerLogMaxFiles = genruntime.ClonePointerToInt(config.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + destination.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(config.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if config.CpuCfsQuota != nil { + cpuCfsQuota := *config.CpuCfsQuota + destination.CpuCfsQuota = &cpuCfsQuota + } else { + destination.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + destination.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(config.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + destination.CpuManagerPolicy = genruntime.ClonePointerToString(config.CpuManagerPolicy) + + // FailSwapOn + if config.FailSwapOn != nil { + failSwapOn := *config.FailSwapOn + destination.FailSwapOn = &failSwapOn + } else { + destination.FailSwapOn = nil + } + + // ImageGcHighThreshold + destination.ImageGcHighThreshold = genruntime.ClonePointerToInt(config.ImageGcHighThreshold) + + // ImageGcLowThreshold + destination.ImageGcLowThreshold = genruntime.ClonePointerToInt(config.ImageGcLowThreshold) + + // PodMaxPids + destination.PodMaxPids = genruntime.ClonePointerToInt(config.PodMaxPids) + + // TopologyManagerPolicy + destination.TopologyManagerPolicy = genruntime.ClonePointerToString(config.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForKubeletConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForKubeletConfig); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230201.KubeletConfig_STATUS +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig_STATUS struct { + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` FailSwapOn *bool `json:"failSwapOn,omitempty"` ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` @@ -363,6 +1992,142 @@ type KubeletConfig_STATUS struct { TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` } +// AssignProperties_From_KubeletConfig_STATUS populates our KubeletConfig_STATUS from the provided source KubeletConfig_STATUS +func (config *KubeletConfig_STATUS) AssignProperties_From_KubeletConfig_STATUS(source *v20231001s.KubeletConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowedUnsafeSysctls + config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + config.ContainerLogMaxFiles = genruntime.ClonePointerToInt(source.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if source.CpuCfsQuota != nil { + cpuCfsQuota := *source.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } else { + config.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) + + // FailSwapOn + if source.FailSwapOn != nil { + failSwapOn := *source.FailSwapOn + config.FailSwapOn = &failSwapOn + } else { + config.FailSwapOn = nil + } + + // ImageGcHighThreshold + config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) + + // ImageGcLowThreshold + config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) + + // PodMaxPids + config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) + + // TopologyManagerPolicy + config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForKubeletConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForKubeletConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_KubeletConfig_STATUS populates the provided destination KubeletConfig_STATUS from our KubeletConfig_STATUS +func (config *KubeletConfig_STATUS) AssignProperties_To_KubeletConfig_STATUS(destination *v20231001s.KubeletConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // AllowedUnsafeSysctls + destination.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(config.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + destination.ContainerLogMaxFiles = genruntime.ClonePointerToInt(config.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + destination.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(config.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if config.CpuCfsQuota != nil { + cpuCfsQuota := *config.CpuCfsQuota + destination.CpuCfsQuota = &cpuCfsQuota + } else { + destination.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + destination.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(config.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + destination.CpuManagerPolicy = genruntime.ClonePointerToString(config.CpuManagerPolicy) + + // FailSwapOn + if config.FailSwapOn != nil { + failSwapOn := *config.FailSwapOn + destination.FailSwapOn = &failSwapOn + } else { + destination.FailSwapOn = nil + } + + // ImageGcHighThreshold + destination.ImageGcHighThreshold = genruntime.ClonePointerToInt(config.ImageGcHighThreshold) + + // ImageGcLowThreshold + destination.ImageGcLowThreshold = genruntime.ClonePointerToInt(config.ImageGcLowThreshold) + + // PodMaxPids + destination.PodMaxPids = genruntime.ClonePointerToInt(config.PodMaxPids) + + // TopologyManagerPolicy + destination.TopologyManagerPolicy = genruntime.ClonePointerToString(config.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForKubeletConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForKubeletConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.LinuxOSConfig // See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. type LinuxOSConfig struct { @@ -373,6 +2138,98 @@ type LinuxOSConfig struct { TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` } +// AssignProperties_From_LinuxOSConfig populates our LinuxOSConfig from the provided source LinuxOSConfig +func (config *LinuxOSConfig) AssignProperties_From_LinuxOSConfig(source *v20231001s.LinuxOSConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // SwapFileSizeMB + config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) + + // Sysctls + if source.Sysctls != nil { + var sysctl SysctlConfig + err := sysctl.AssignProperties_From_SysctlConfig(source.Sysctls) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SysctlConfig() to populate field Sysctls") + } + config.Sysctls = &sysctl + } else { + config.Sysctls = nil + } + + // TransparentHugePageDefrag + config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForLinuxOSConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForLinuxOSConfig); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_LinuxOSConfig populates the provided destination LinuxOSConfig from our LinuxOSConfig +func (config *LinuxOSConfig) AssignProperties_To_LinuxOSConfig(destination *v20231001s.LinuxOSConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // SwapFileSizeMB + destination.SwapFileSizeMB = genruntime.ClonePointerToInt(config.SwapFileSizeMB) + + // Sysctls + if config.Sysctls != nil { + var sysctl v20231001s.SysctlConfig + err := config.Sysctls.AssignProperties_To_SysctlConfig(&sysctl) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SysctlConfig() to populate field Sysctls") + } + destination.Sysctls = &sysctl + } else { + destination.Sysctls = nil + } + + // TransparentHugePageDefrag + destination.TransparentHugePageDefrag = genruntime.ClonePointerToString(config.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + destination.TransparentHugePageEnabled = genruntime.ClonePointerToString(config.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForLinuxOSConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForLinuxOSConfig); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.LinuxOSConfig_STATUS // See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. type LinuxOSConfig_STATUS struct { @@ -383,6 +2240,98 @@ type LinuxOSConfig_STATUS struct { TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` } +// AssignProperties_From_LinuxOSConfig_STATUS populates our LinuxOSConfig_STATUS from the provided source LinuxOSConfig_STATUS +func (config *LinuxOSConfig_STATUS) AssignProperties_From_LinuxOSConfig_STATUS(source *v20231001s.LinuxOSConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // SwapFileSizeMB + config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) + + // Sysctls + if source.Sysctls != nil { + var sysctl SysctlConfig_STATUS + err := sysctl.AssignProperties_From_SysctlConfig_STATUS(source.Sysctls) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SysctlConfig_STATUS() to populate field Sysctls") + } + config.Sysctls = &sysctl + } else { + config.Sysctls = nil + } + + // TransparentHugePageDefrag + config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForLinuxOSConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForLinuxOSConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_LinuxOSConfig_STATUS populates the provided destination LinuxOSConfig_STATUS from our LinuxOSConfig_STATUS +func (config *LinuxOSConfig_STATUS) AssignProperties_To_LinuxOSConfig_STATUS(destination *v20231001s.LinuxOSConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // SwapFileSizeMB + destination.SwapFileSizeMB = genruntime.ClonePointerToInt(config.SwapFileSizeMB) + + // Sysctls + if config.Sysctls != nil { + var sysctl v20231001s.SysctlConfig_STATUS + err := config.Sysctls.AssignProperties_To_SysctlConfig_STATUS(&sysctl) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SysctlConfig_STATUS() to populate field Sysctls") + } + destination.Sysctls = &sysctl + } else { + destination.Sysctls = nil + } + + // TransparentHugePageDefrag + destination.TransparentHugePageDefrag = genruntime.ClonePointerToString(config.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + destination.TransparentHugePageEnabled = genruntime.ClonePointerToString(config.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForLinuxOSConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForLinuxOSConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.PowerState // Describes the Power State of the cluster type PowerState struct { @@ -390,6 +2339,107 @@ type PowerState struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_PowerState populates our PowerState from the provided source PowerState +func (state *PowerState) AssignProperties_From_PowerState(source *v20231001s.PowerState) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Code + state.Code = genruntime.ClonePointerToString(source.Code) + + // Update the property bag + if len(propertyBag) > 0 { + state.PropertyBag = propertyBag + } else { + state.PropertyBag = nil + } + + // Invoke the augmentConversionForPowerState interface (if implemented) to customize the conversion + var stateAsAny any = state + if augmentedState, ok := stateAsAny.(augmentConversionForPowerState); ok { + err := augmentedState.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PowerState populates the provided destination PowerState from our PowerState +func (state *PowerState) AssignProperties_To_PowerState(destination *v20231001s.PowerState) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(state.PropertyBag) + + // Code + destination.Code = genruntime.ClonePointerToString(state.Code) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPowerState interface (if implemented) to customize the conversion + var stateAsAny any = state + if augmentedState, ok := stateAsAny.(augmentConversionForPowerState); ok { + err := augmentedState.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForAgentPoolUpgradeSettings interface { + AssignPropertiesFrom(src *v20231001s.AgentPoolUpgradeSettings) error + AssignPropertiesTo(dst *v20231001s.AgentPoolUpgradeSettings) error +} + +type augmentConversionForAgentPoolUpgradeSettings_STATUS interface { + AssignPropertiesFrom(src *v20231001s.AgentPoolUpgradeSettings_STATUS) error + AssignPropertiesTo(dst *v20231001s.AgentPoolUpgradeSettings_STATUS) error +} + +type augmentConversionForCreationData interface { + AssignPropertiesFrom(src *v20231001s.CreationData) error + AssignPropertiesTo(dst *v20231001s.CreationData) error +} + +type augmentConversionForCreationData_STATUS interface { + AssignPropertiesFrom(src *v20231001s.CreationData_STATUS) error + AssignPropertiesTo(dst *v20231001s.CreationData_STATUS) error +} + +type augmentConversionForKubeletConfig interface { + AssignPropertiesFrom(src *v20231001s.KubeletConfig) error + AssignPropertiesTo(dst *v20231001s.KubeletConfig) error +} + +type augmentConversionForKubeletConfig_STATUS interface { + AssignPropertiesFrom(src *v20231001s.KubeletConfig_STATUS) error + AssignPropertiesTo(dst *v20231001s.KubeletConfig_STATUS) error +} + +type augmentConversionForLinuxOSConfig interface { + AssignPropertiesFrom(src *v20231001s.LinuxOSConfig) error + AssignPropertiesTo(dst *v20231001s.LinuxOSConfig) error +} + +type augmentConversionForLinuxOSConfig_STATUS interface { + AssignPropertiesFrom(src *v20231001s.LinuxOSConfig_STATUS) error + AssignPropertiesTo(dst *v20231001s.LinuxOSConfig_STATUS) error +} + +type augmentConversionForPowerState interface { + AssignPropertiesFrom(src *v20231001s.PowerState) error + AssignPropertiesTo(dst *v20231001s.PowerState) error +} + // Storage version of v1api20230201.SysctlConfig // Sysctl settings for Linux agent nodes. type SysctlConfig struct { @@ -424,6 +2474,234 @@ type SysctlConfig struct { VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` } +// AssignProperties_From_SysctlConfig populates our SysctlConfig from the provided source SysctlConfig +func (config *SysctlConfig) AssignProperties_From_SysctlConfig(source *v20231001s.SysctlConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // FsAioMaxNr + config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) + + // FsFileMax + config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) + + // FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) + + // FsNrOpen + config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) + + // KernelThreadsMax + config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) + + // NetCoreRmemDefault + config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) + + // NetCoreRmemMax + config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) + + // NetCoreSomaxconn + config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) + + // NetCoreWmemDefault + config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) + + // NetCoreWmemMax + config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if source.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + config.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(source.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) + + // VmSwappiness + config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) + + // VmVfsCachePressure + config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForSysctlConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForSysctlConfig); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_SysctlConfig populates the provided destination SysctlConfig from our SysctlConfig +func (config *SysctlConfig) AssignProperties_To_SysctlConfig(destination *v20231001s.SysctlConfig) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // FsAioMaxNr + destination.FsAioMaxNr = genruntime.ClonePointerToInt(config.FsAioMaxNr) + + // FsFileMax + destination.FsFileMax = genruntime.ClonePointerToInt(config.FsFileMax) + + // FsInotifyMaxUserWatches + destination.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(config.FsInotifyMaxUserWatches) + + // FsNrOpen + destination.FsNrOpen = genruntime.ClonePointerToInt(config.FsNrOpen) + + // KernelThreadsMax + destination.KernelThreadsMax = genruntime.ClonePointerToInt(config.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + destination.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(config.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + destination.NetCoreOptmemMax = genruntime.ClonePointerToInt(config.NetCoreOptmemMax) + + // NetCoreRmemDefault + destination.NetCoreRmemDefault = genruntime.ClonePointerToInt(config.NetCoreRmemDefault) + + // NetCoreRmemMax + destination.NetCoreRmemMax = genruntime.ClonePointerToInt(config.NetCoreRmemMax) + + // NetCoreSomaxconn + destination.NetCoreSomaxconn = genruntime.ClonePointerToInt(config.NetCoreSomaxconn) + + // NetCoreWmemDefault + destination.NetCoreWmemDefault = genruntime.ClonePointerToInt(config.NetCoreWmemDefault) + + // NetCoreWmemMax + destination.NetCoreWmemMax = genruntime.ClonePointerToInt(config.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + destination.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(config.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + destination.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + destination.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + destination.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + destination.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(config.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + destination.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + destination.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + destination.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + destination.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if config.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *config.NetIpv4TcpTwReuse + destination.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + destination.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + destination.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(config.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + destination.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + destination.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + destination.VmMaxMapCount = genruntime.ClonePointerToInt(config.VmMaxMapCount) + + // VmSwappiness + destination.VmSwappiness = genruntime.ClonePointerToInt(config.VmSwappiness) + + // VmVfsCachePressure + destination.VmVfsCachePressure = genruntime.ClonePointerToInt(config.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForSysctlConfig interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForSysctlConfig); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230201.SysctlConfig_STATUS // Sysctl settings for Linux agent nodes. type SysctlConfig_STATUS struct { @@ -458,6 +2736,244 @@ type SysctlConfig_STATUS struct { VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` } +// AssignProperties_From_SysctlConfig_STATUS populates our SysctlConfig_STATUS from the provided source SysctlConfig_STATUS +func (config *SysctlConfig_STATUS) AssignProperties_From_SysctlConfig_STATUS(source *v20231001s.SysctlConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // FsAioMaxNr + config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) + + // FsFileMax + config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) + + // FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) + + // FsNrOpen + config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) + + // KernelThreadsMax + config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) + + // NetCoreRmemDefault + config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) + + // NetCoreRmemMax + config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) + + // NetCoreSomaxconn + config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) + + // NetCoreWmemDefault + config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) + + // NetCoreWmemMax + config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if source.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + config.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(source.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) + + // VmSwappiness + config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) + + // VmVfsCachePressure + config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + config.PropertyBag = propertyBag + } else { + config.PropertyBag = nil + } + + // Invoke the augmentConversionForSysctlConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForSysctlConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_SysctlConfig_STATUS populates the provided destination SysctlConfig_STATUS from our SysctlConfig_STATUS +func (config *SysctlConfig_STATUS) AssignProperties_To_SysctlConfig_STATUS(destination *v20231001s.SysctlConfig_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(config.PropertyBag) + + // FsAioMaxNr + destination.FsAioMaxNr = genruntime.ClonePointerToInt(config.FsAioMaxNr) + + // FsFileMax + destination.FsFileMax = genruntime.ClonePointerToInt(config.FsFileMax) + + // FsInotifyMaxUserWatches + destination.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(config.FsInotifyMaxUserWatches) + + // FsNrOpen + destination.FsNrOpen = genruntime.ClonePointerToInt(config.FsNrOpen) + + // KernelThreadsMax + destination.KernelThreadsMax = genruntime.ClonePointerToInt(config.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + destination.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(config.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + destination.NetCoreOptmemMax = genruntime.ClonePointerToInt(config.NetCoreOptmemMax) + + // NetCoreRmemDefault + destination.NetCoreRmemDefault = genruntime.ClonePointerToInt(config.NetCoreRmemDefault) + + // NetCoreRmemMax + destination.NetCoreRmemMax = genruntime.ClonePointerToInt(config.NetCoreRmemMax) + + // NetCoreSomaxconn + destination.NetCoreSomaxconn = genruntime.ClonePointerToInt(config.NetCoreSomaxconn) + + // NetCoreWmemDefault + destination.NetCoreWmemDefault = genruntime.ClonePointerToInt(config.NetCoreWmemDefault) + + // NetCoreWmemMax + destination.NetCoreWmemMax = genruntime.ClonePointerToInt(config.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + destination.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(config.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + destination.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + destination.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + destination.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + destination.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(config.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + destination.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + destination.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + destination.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + destination.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if config.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *config.NetIpv4TcpTwReuse + destination.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + destination.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + destination.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(config.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + destination.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + destination.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + destination.VmMaxMapCount = genruntime.ClonePointerToInt(config.VmMaxMapCount) + + // VmSwappiness + destination.VmSwappiness = genruntime.ClonePointerToInt(config.VmSwappiness) + + // VmVfsCachePressure + destination.VmVfsCachePressure = genruntime.ClonePointerToInt(config.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForSysctlConfig_STATUS interface (if implemented) to customize the conversion + var configAsAny any = config + if augmentedConfig, ok := configAsAny.(augmentConversionForSysctlConfig_STATUS); ok { + err := augmentedConfig.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +type augmentConversionForSysctlConfig interface { + AssignPropertiesFrom(src *v20231001s.SysctlConfig) error + AssignPropertiesTo(dst *v20231001s.SysctlConfig) error +} + +type augmentConversionForSysctlConfig_STATUS interface { + AssignPropertiesFrom(src *v20231001s.SysctlConfig_STATUS) error + AssignPropertiesTo(dst *v20231001s.SysctlConfig_STATUS) error +} + func init() { SchemeBuilder.Register(&ManagedClustersAgentPool{}, &ManagedClustersAgentPoolList{}) } diff --git a/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen_test.go index 0ce418555fb..bd46247eed6 100644 --- a/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20230201/storage/managed_clusters_agent_pool_types_gen_test.go @@ -5,6 +5,7 @@ package storage import ( "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -17,6 +18,91 @@ import ( "testing" ) +func Test_ManagedClustersAgentPool_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClustersAgentPool to hub returns original", + prop.ForAll(RunResourceConversionTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForManagedClustersAgentPool tests if a specific instance of ManagedClustersAgentPool round trips to the hub storage version and back losslessly +func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20231001s.ManagedClustersAgentPool + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual ManagedClustersAgentPool + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClustersAgentPool_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClustersAgentPool to ManagedClustersAgentPool via AssignProperties_To_ManagedClustersAgentPool & AssignProperties_From_ManagedClustersAgentPool returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClustersAgentPool tests if a specific instance of ManagedClustersAgentPool can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClustersAgentPool + err := copied.AssignProperties_To_ManagedClustersAgentPool(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClustersAgentPool + err = actual.AssignProperties_From_ManagedClustersAgentPool(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClustersAgentPool_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -79,6 +165,48 @@ func AddRelatedPropertyGeneratorsForManagedClustersAgentPool(gens map[string]gop gens["Status"] = ManagedClusters_AgentPool_STATUSGenerator() } +func Test_ManagedClusters_AgentPool_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusters_AgentPool_Spec to ManagedClusters_AgentPool_Spec via AssignProperties_To_ManagedClusters_AgentPool_Spec & AssignProperties_From_ManagedClusters_AgentPool_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec, ManagedClusters_AgentPool_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec tests if a specific instance of ManagedClusters_AgentPool_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec(subject ManagedClusters_AgentPool_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusters_AgentPool_Spec + err := copied.AssignProperties_To_ManagedClusters_AgentPool_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusters_AgentPool_Spec + err = actual.AssignProperties_From_ManagedClusters_AgentPool_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusters_AgentPool_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -187,6 +315,48 @@ func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec(gens map[stri gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) } +func Test_ManagedClusters_AgentPool_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusters_AgentPool_STATUS to ManagedClusters_AgentPool_STATUS via AssignProperties_To_ManagedClusters_AgentPool_STATUS & AssignProperties_From_ManagedClusters_AgentPool_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS, ManagedClusters_AgentPool_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS tests if a specific instance of ManagedClusters_AgentPool_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS(subject ManagedClusters_AgentPool_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusters_AgentPool_STATUS + err := copied.AssignProperties_To_ManagedClusters_AgentPool_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusters_AgentPool_STATUS + err = actual.AssignProperties_From_ManagedClusters_AgentPool_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusters_AgentPool_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -304,6 +474,48 @@ func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[st gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) } +func Test_AgentPoolUpgradeSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolUpgradeSettings to AgentPoolUpgradeSettings via AssignProperties_To_AgentPoolUpgradeSettings & AssignProperties_From_AgentPoolUpgradeSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolUpgradeSettings, AgentPoolUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolUpgradeSettings tests if a specific instance of AgentPoolUpgradeSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolUpgradeSettings(subject AgentPoolUpgradeSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolUpgradeSettings + err := copied.AssignProperties_To_AgentPoolUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolUpgradeSettings + err = actual.AssignProperties_From_AgentPoolUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AgentPoolUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -365,6 +577,48 @@ func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings(gens map[string gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) } +func Test_AgentPoolUpgradeSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolUpgradeSettings_STATUS to AgentPoolUpgradeSettings_STATUS via AssignProperties_To_AgentPoolUpgradeSettings_STATUS & AssignProperties_From_AgentPoolUpgradeSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS, AgentPoolUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS tests if a specific instance of AgentPoolUpgradeSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS(subject AgentPoolUpgradeSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolUpgradeSettings_STATUS + err := copied.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolUpgradeSettings_STATUS + err = actual.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AgentPoolUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -426,6 +680,48 @@ func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS(gens map gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) } +func Test_CreationData_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CreationData to CreationData via AssignProperties_To_CreationData & AssignProperties_From_CreationData returns original", + prop.ForAll(RunPropertyAssignmentTestForCreationData, CreationDataGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCreationData tests if a specific instance of CreationData can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForCreationData(subject CreationData) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.CreationData + err := copied.AssignProperties_To_CreationData(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CreationData + err = actual.AssignProperties_From_CreationData(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_CreationData_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -480,6 +776,48 @@ func CreationDataGenerator() gopter.Gen { return creationDataGenerator } +func Test_CreationData_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CreationData_STATUS to CreationData_STATUS via AssignProperties_To_CreationData_STATUS & AssignProperties_From_CreationData_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForCreationData_STATUS, CreationData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCreationData_STATUS tests if a specific instance of CreationData_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForCreationData_STATUS(subject CreationData_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.CreationData_STATUS + err := copied.AssignProperties_To_CreationData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CreationData_STATUS + err = actual.AssignProperties_From_CreationData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_CreationData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -541,6 +879,48 @@ func AddIndependentPropertyGeneratorsForCreationData_STATUS(gens map[string]gopt gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString()) } +func Test_KubeletConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from KubeletConfig to KubeletConfig via AssignProperties_To_KubeletConfig & AssignProperties_From_KubeletConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForKubeletConfig, KubeletConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForKubeletConfig tests if a specific instance of KubeletConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForKubeletConfig(subject KubeletConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.KubeletConfig + err := copied.AssignProperties_To_KubeletConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual KubeletConfig + err = actual.AssignProperties_From_KubeletConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_KubeletConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -611,6 +991,48 @@ func AddIndependentPropertyGeneratorsForKubeletConfig(gens map[string]gopter.Gen gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) } +func Test_KubeletConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from KubeletConfig_STATUS to KubeletConfig_STATUS via AssignProperties_To_KubeletConfig_STATUS & AssignProperties_From_KubeletConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForKubeletConfig_STATUS, KubeletConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForKubeletConfig_STATUS tests if a specific instance of KubeletConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForKubeletConfig_STATUS(subject KubeletConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.KubeletConfig_STATUS + err := copied.AssignProperties_To_KubeletConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual KubeletConfig_STATUS + err = actual.AssignProperties_From_KubeletConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_KubeletConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -682,6 +1104,48 @@ func AddIndependentPropertyGeneratorsForKubeletConfig_STATUS(gens map[string]gop gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) } +func Test_LinuxOSConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from LinuxOSConfig to LinuxOSConfig via AssignProperties_To_LinuxOSConfig & AssignProperties_From_LinuxOSConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForLinuxOSConfig, LinuxOSConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForLinuxOSConfig tests if a specific instance of LinuxOSConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForLinuxOSConfig(subject LinuxOSConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.LinuxOSConfig + err := copied.AssignProperties_To_LinuxOSConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual LinuxOSConfig + err = actual.AssignProperties_From_LinuxOSConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_LinuxOSConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -758,6 +1222,48 @@ func AddRelatedPropertyGeneratorsForLinuxOSConfig(gens map[string]gopter.Gen) { gens["Sysctls"] = gen.PtrOf(SysctlConfigGenerator()) } +func Test_LinuxOSConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from LinuxOSConfig_STATUS to LinuxOSConfig_STATUS via AssignProperties_To_LinuxOSConfig_STATUS & AssignProperties_From_LinuxOSConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForLinuxOSConfig_STATUS, LinuxOSConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForLinuxOSConfig_STATUS tests if a specific instance of LinuxOSConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForLinuxOSConfig_STATUS(subject LinuxOSConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.LinuxOSConfig_STATUS + err := copied.AssignProperties_To_LinuxOSConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual LinuxOSConfig_STATUS + err = actual.AssignProperties_From_LinuxOSConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_LinuxOSConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -835,6 +1341,48 @@ func AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS(gens map[string]gopter. gens["Sysctls"] = gen.PtrOf(SysctlConfig_STATUSGenerator()) } +func Test_PowerState_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PowerState to PowerState via AssignProperties_To_PowerState & AssignProperties_From_PowerState returns original", + prop.ForAll(RunPropertyAssignmentTestForPowerState, PowerStateGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPowerState tests if a specific instance of PowerState can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPowerState(subject PowerState) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PowerState + err := copied.AssignProperties_To_PowerState(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PowerState + err = actual.AssignProperties_From_PowerState(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_PowerState_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -895,6 +1443,48 @@ func AddIndependentPropertyGeneratorsForPowerState(gens map[string]gopter.Gen) { gens["Code"] = gen.PtrOf(gen.AlphaString()) } +func Test_SysctlConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SysctlConfig to SysctlConfig via AssignProperties_To_SysctlConfig & AssignProperties_From_SysctlConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForSysctlConfig, SysctlConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSysctlConfig tests if a specific instance of SysctlConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSysctlConfig(subject SysctlConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SysctlConfig + err := copied.AssignProperties_To_SysctlConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SysctlConfig + err = actual.AssignProperties_From_SysctlConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_SysctlConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -982,6 +1572,48 @@ func AddIndependentPropertyGeneratorsForSysctlConfig(gens map[string]gopter.Gen) gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) } +func Test_SysctlConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SysctlConfig_STATUS to SysctlConfig_STATUS via AssignProperties_To_SysctlConfig_STATUS & AssignProperties_From_SysctlConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForSysctlConfig_STATUS, SysctlConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSysctlConfig_STATUS tests if a specific instance of SysctlConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSysctlConfig_STATUS(subject SysctlConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SysctlConfig_STATUS + err := copied.AssignProperties_To_SysctlConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SysctlConfig_STATUS + err = actual.AssignProperties_From_SysctlConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_SysctlConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() diff --git a/v2/api/containerservice/v1api20230201/storage/structure.txt b/v2/api/containerservice/v1api20230201/storage/structure.txt index 2717c9efb91..15bec57ea67 100644 --- a/v2/api/containerservice/v1api20230201/storage/structure.txt +++ b/v2/api/containerservice/v1api20230201/storage/structure.txt @@ -706,199 +706,319 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/st │ │ ├── Enabled: *bool │ │ └── PropertyBag: genruntime.PropertyBag │ └── PropertyBag: genruntime.PropertyBag -└── ManagedClustersAgentPool: Resource - ├── Owner: github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201.ManagedCluster - ├── Spec: Object (42 properties) - │ ├── AvailabilityZones: string[] - │ ├── AzureName: string - │ ├── Count: *int - │ ├── CreationData: *Object (2 properties) - │ │ ├── PropertyBag: genruntime.PropertyBag - │ │ └── SourceResourceReference: *genruntime.ResourceReference - │ ├── EnableAutoScaling: *bool - │ ├── EnableEncryptionAtHost: *bool - │ ├── EnableFIPS: *bool - │ ├── EnableNodePublicIP: *bool - │ ├── EnableUltraSSD: *bool - │ ├── GpuInstanceProfile: *string - │ ├── HostGroupReference: *genruntime.ResourceReference - │ ├── KubeletConfig: *Object (12 properties) - │ │ ├── AllowedUnsafeSysctls: string[] - │ │ ├── ContainerLogMaxFiles: *int - │ │ ├── ContainerLogMaxSizeMB: *int - │ │ ├── CpuCfsQuota: *bool - │ │ ├── CpuCfsQuotaPeriod: *string - │ │ ├── CpuManagerPolicy: *string - │ │ ├── FailSwapOn: *bool - │ │ ├── ImageGcHighThreshold: *int - │ │ ├── ImageGcLowThreshold: *int - │ │ ├── PodMaxPids: *int - │ │ ├── PropertyBag: genruntime.PropertyBag - │ │ └── TopologyManagerPolicy: *string - │ ├── KubeletDiskType: *string - │ ├── LinuxOSConfig: *Object (5 properties) - │ │ ├── PropertyBag: genruntime.PropertyBag - │ │ ├── SwapFileSizeMB: *int - │ │ ├── Sysctls: *Object (29 properties) - │ │ │ ├── FsAioMaxNr: *int - │ │ │ ├── FsFileMax: *int - │ │ │ ├── FsInotifyMaxUserWatches: *int - │ │ │ ├── FsNrOpen: *int - │ │ │ ├── KernelThreadsMax: *int - │ │ │ ├── NetCoreNetdevMaxBacklog: *int - │ │ │ ├── NetCoreOptmemMax: *int - │ │ │ ├── NetCoreRmemDefault: *int - │ │ │ ├── NetCoreRmemMax: *int - │ │ │ ├── NetCoreSomaxconn: *int - │ │ │ ├── NetCoreWmemDefault: *int - │ │ │ ├── NetCoreWmemMax: *int - │ │ │ ├── NetIpv4IpLocalPortRange: *string - │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int - │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int - │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int - │ │ │ ├── NetIpv4TcpFinTimeout: *int - │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int - │ │ │ ├── NetIpv4TcpKeepaliveTime: *int - │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int - │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int - │ │ │ ├── NetIpv4TcpTwReuse: *bool - │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int - │ │ │ ├── NetNetfilterNfConntrackBuckets: *int - │ │ │ ├── NetNetfilterNfConntrackMax: *int - │ │ │ ├── PropertyBag: genruntime.PropertyBag - │ │ │ ├── VmMaxMapCount: *int - │ │ │ ├── VmSwappiness: *int - │ │ │ └── VmVfsCachePressure: *int - │ │ ├── TransparentHugePageDefrag: *string - │ │ └── TransparentHugePageEnabled: *string - │ ├── MaxCount: *int - │ ├── MaxPods: *int - │ ├── MinCount: *int - │ ├── Mode: *string - │ ├── NodeLabels: map[string]string - │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference - │ ├── NodeTaints: string[] - │ ├── OrchestratorVersion: *string - │ ├── OriginalVersion: string - │ ├── OsDiskSizeGB: *int - │ ├── OsDiskType: *string - │ ├── OsSKU: *string - │ ├── OsType: *string - │ ├── Owner: *genruntime.KnownResourceReference - │ ├── PodSubnetReference: *genruntime.ResourceReference - │ ├── PowerState: *Object (2 properties) - │ │ ├── Code: *string - │ │ └── PropertyBag: genruntime.PropertyBag - │ ├── PropertyBag: genruntime.PropertyBag - │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference - │ ├── ScaleDownMode: *string - │ ├── ScaleSetEvictionPolicy: *string - │ ├── ScaleSetPriority: *string - │ ├── SpotMaxPrice: *float64 - │ ├── Tags: map[string]string - │ ├── Type: *string - │ ├── UpgradeSettings: *Object (2 properties) - │ │ ├── MaxSurge: *string - │ │ └── PropertyBag: genruntime.PropertyBag - │ ├── VmSize: *string - │ ├── VnetSubnetReference: *genruntime.ResourceReference - │ └── WorkloadRuntime: *string - └── Status: Object (46 properties) - ├── AvailabilityZones: string[] - ├── Conditions: conditions.Condition[] - ├── Count: *int - ├── CreationData: *Object (2 properties) - │ ├── PropertyBag: genruntime.PropertyBag - │ └── SourceResourceId: *string - ├── CurrentOrchestratorVersion: *string - ├── EnableAutoScaling: *bool - ├── EnableEncryptionAtHost: *bool - ├── EnableFIPS: *bool - ├── EnableNodePublicIP: *bool - ├── EnableUltraSSD: *bool - ├── GpuInstanceProfile: *string - ├── HostGroupID: *string - ├── Id: *string - ├── KubeletConfig: *Object (12 properties) - │ ├── AllowedUnsafeSysctls: string[] - │ ├── ContainerLogMaxFiles: *int - │ ├── ContainerLogMaxSizeMB: *int - │ ├── CpuCfsQuota: *bool - │ ├── CpuCfsQuotaPeriod: *string - │ ├── CpuManagerPolicy: *string - │ ├── FailSwapOn: *bool - │ ├── ImageGcHighThreshold: *int - │ ├── ImageGcLowThreshold: *int - │ ├── PodMaxPids: *int - │ ├── PropertyBag: genruntime.PropertyBag - │ └── TopologyManagerPolicy: *string - ├── KubeletDiskType: *string - ├── LinuxOSConfig: *Object (5 properties) - │ ├── PropertyBag: genruntime.PropertyBag - │ ├── SwapFileSizeMB: *int - │ ├── Sysctls: *Object (29 properties) - │ │ ├── FsAioMaxNr: *int - │ │ ├── FsFileMax: *int - │ │ ├── FsInotifyMaxUserWatches: *int - │ │ ├── FsNrOpen: *int - │ │ ├── KernelThreadsMax: *int - │ │ ├── NetCoreNetdevMaxBacklog: *int - │ │ ├── NetCoreOptmemMax: *int - │ │ ├── NetCoreRmemDefault: *int - │ │ ├── NetCoreRmemMax: *int - │ │ ├── NetCoreSomaxconn: *int - │ │ ├── NetCoreWmemDefault: *int - │ │ ├── NetCoreWmemMax: *int - │ │ ├── NetIpv4IpLocalPortRange: *string - │ │ ├── NetIpv4NeighDefaultGcThresh1: *int - │ │ ├── NetIpv4NeighDefaultGcThresh2: *int - │ │ ├── NetIpv4NeighDefaultGcThresh3: *int - │ │ ├── NetIpv4TcpFinTimeout: *int - │ │ ├── NetIpv4TcpKeepaliveProbes: *int - │ │ ├── NetIpv4TcpKeepaliveTime: *int - │ │ ├── NetIpv4TcpMaxSynBacklog: *int - │ │ ├── NetIpv4TcpMaxTwBuckets: *int - │ │ ├── NetIpv4TcpTwReuse: *bool - │ │ ├── NetIpv4TcpkeepaliveIntvl: *int - │ │ ├── NetNetfilterNfConntrackBuckets: *int - │ │ ├── NetNetfilterNfConntrackMax: *int - │ │ ├── PropertyBag: genruntime.PropertyBag - │ │ ├── VmMaxMapCount: *int - │ │ ├── VmSwappiness: *int - │ │ └── VmVfsCachePressure: *int - │ ├── TransparentHugePageDefrag: *string - │ └── TransparentHugePageEnabled: *string - ├── MaxCount: *int - ├── MaxPods: *int - ├── MinCount: *int - ├── Mode: *string - ├── Name: *string - ├── NodeImageVersion: *string - ├── NodeLabels: map[string]string - ├── NodePublicIPPrefixID: *string - ├── NodeTaints: string[] - ├── OrchestratorVersion: *string - ├── OsDiskSizeGB: *int - ├── OsDiskType: *string - ├── OsSKU: *string - ├── OsType: *string - ├── PodSubnetID: *string - ├── PowerState: *Object (2 properties) - │ ├── Code: *string - │ └── PropertyBag: genruntime.PropertyBag - ├── PropertiesType: *string - ├── PropertyBag: genruntime.PropertyBag - ├── ProvisioningState: *string - ├── ProximityPlacementGroupID: *string - ├── ScaleDownMode: *string - ├── ScaleSetEvictionPolicy: *string - ├── ScaleSetPriority: *string - ├── SpotMaxPrice: *float64 - ├── Tags: map[string]string - ├── Type: *string - ├── UpgradeSettings: *Object (2 properties) - │ ├── MaxSurge: *string - │ └── PropertyBag: genruntime.PropertyBag - ├── VmSize: *string - ├── VnetSubnetID: *string - └── WorkloadRuntime: *string +├── ManagedClustersAgentPool: Resource +│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201.ManagedCluster +│ ├── Spec: Object (42 properties) +│ │ ├── AvailabilityZones: string[] +│ │ ├── AzureName: string +│ │ ├── Count: *int +│ │ ├── CreationData: *Object (2 properties) +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── SourceResourceReference: *genruntime.ResourceReference +│ │ ├── EnableAutoScaling: *bool +│ │ ├── EnableEncryptionAtHost: *bool +│ │ ├── EnableFIPS: *bool +│ │ ├── EnableNodePublicIP: *bool +│ │ ├── EnableUltraSSD: *bool +│ │ ├── GpuInstanceProfile: *string +│ │ ├── HostGroupReference: *genruntime.ResourceReference +│ │ ├── KubeletConfig: *Object (12 properties) +│ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ ├── CpuCfsQuota: *bool +│ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ ├── CpuManagerPolicy: *string +│ │ │ ├── FailSwapOn: *bool +│ │ │ ├── ImageGcHighThreshold: *int +│ │ │ ├── ImageGcLowThreshold: *int +│ │ │ ├── PodMaxPids: *int +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── TopologyManagerPolicy: *string +│ │ ├── KubeletDiskType: *string +│ │ ├── LinuxOSConfig: *Object (5 properties) +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── SwapFileSizeMB: *int +│ │ │ ├── Sysctls: *Object (29 properties) +│ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ ├── FsFileMax: *int +│ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ ├── FsNrOpen: *int +│ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ ├── VmSwappiness: *int +│ │ │ │ └── VmVfsCachePressure: *int +│ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ └── TransparentHugePageEnabled: *string +│ │ ├── MaxCount: *int +│ │ ├── MaxPods: *int +│ │ ├── MinCount: *int +│ │ ├── Mode: *string +│ │ ├── NodeLabels: map[string]string +│ │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference +│ │ ├── NodeTaints: string[] +│ │ ├── OrchestratorVersion: *string +│ │ ├── OriginalVersion: string +│ │ ├── OsDiskSizeGB: *int +│ │ ├── OsDiskType: *string +│ │ ├── OsSKU: *string +│ │ ├── OsType: *string +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── PodSubnetReference: *genruntime.ResourceReference +│ │ ├── PowerState: *Object (2 properties) +│ │ │ ├── Code: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference +│ │ ├── ScaleDownMode: *string +│ │ ├── ScaleSetEvictionPolicy: *string +│ │ ├── ScaleSetPriority: *string +│ │ ├── SpotMaxPrice: *float64 +│ │ ├── Tags: map[string]string +│ │ ├── Type: *string +│ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ ├── MaxSurge: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── VmSize: *string +│ │ ├── VnetSubnetReference: *genruntime.ResourceReference +│ │ └── WorkloadRuntime: *string +│ └── Status: Object (46 properties) +│ ├── AvailabilityZones: string[] +│ ├── Conditions: conditions.Condition[] +│ ├── Count: *int +│ ├── CreationData: *Object (2 properties) +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── SourceResourceId: *string +│ ├── CurrentOrchestratorVersion: *string +│ ├── EnableAutoScaling: *bool +│ ├── EnableEncryptionAtHost: *bool +│ ├── EnableFIPS: *bool +│ ├── EnableNodePublicIP: *bool +│ ├── EnableUltraSSD: *bool +│ ├── GpuInstanceProfile: *string +│ ├── HostGroupID: *string +│ ├── Id: *string +│ ├── KubeletConfig: *Object (12 properties) +│ │ ├── AllowedUnsafeSysctls: string[] +│ │ ├── ContainerLogMaxFiles: *int +│ │ ├── ContainerLogMaxSizeMB: *int +│ │ ├── CpuCfsQuota: *bool +│ │ ├── CpuCfsQuotaPeriod: *string +│ │ ├── CpuManagerPolicy: *string +│ │ ├── FailSwapOn: *bool +│ │ ├── ImageGcHighThreshold: *int +│ │ ├── ImageGcLowThreshold: *int +│ │ ├── PodMaxPids: *int +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── TopologyManagerPolicy: *string +│ ├── KubeletDiskType: *string +│ ├── LinuxOSConfig: *Object (5 properties) +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── SwapFileSizeMB: *int +│ │ ├── Sysctls: *Object (29 properties) +│ │ │ ├── FsAioMaxNr: *int +│ │ │ ├── FsFileMax: *int +│ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ ├── FsNrOpen: *int +│ │ │ ├── KernelThreadsMax: *int +│ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ ├── NetCoreOptmemMax: *int +│ │ │ ├── NetCoreRmemDefault: *int +│ │ │ ├── NetCoreRmemMax: *int +│ │ │ ├── NetCoreSomaxconn: *int +│ │ │ ├── NetCoreWmemDefault: *int +│ │ │ ├── NetCoreWmemMax: *int +│ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── VmMaxMapCount: *int +│ │ │ ├── VmSwappiness: *int +│ │ │ └── VmVfsCachePressure: *int +│ │ ├── TransparentHugePageDefrag: *string +│ │ └── TransparentHugePageEnabled: *string +│ ├── MaxCount: *int +│ ├── MaxPods: *int +│ ├── MinCount: *int +│ ├── Mode: *string +│ ├── Name: *string +│ ├── NodeImageVersion: *string +│ ├── NodeLabels: map[string]string +│ ├── NodePublicIPPrefixID: *string +│ ├── NodeTaints: string[] +│ ├── OrchestratorVersion: *string +│ ├── OsDiskSizeGB: *int +│ ├── OsDiskType: *string +│ ├── OsSKU: *string +│ ├── OsType: *string +│ ├── PodSubnetID: *string +│ ├── PowerState: *Object (2 properties) +│ │ ├── Code: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PropertiesType: *string +│ ├── PropertyBag: genruntime.PropertyBag +│ ├── ProvisioningState: *string +│ ├── ProximityPlacementGroupID: *string +│ ├── ScaleDownMode: *string +│ ├── ScaleSetEvictionPolicy: *string +│ ├── ScaleSetPriority: *string +│ ├── SpotMaxPrice: *float64 +│ ├── Tags: map[string]string +│ ├── Type: *string +│ ├── UpgradeSettings: *Object (2 properties) +│ │ ├── MaxSurge: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── VmSize: *string +│ ├── VnetSubnetID: *string +│ └── WorkloadRuntime: *string +├── augmentConversionForAgentPoolUpgradeSettings: Interface +├── augmentConversionForAgentPoolUpgradeSettings_STATUS: Interface +├── augmentConversionForAzureKeyVaultKms: Interface +├── augmentConversionForAzureKeyVaultKms_STATUS: Interface +├── augmentConversionForContainerServiceLinuxProfile: Interface +├── augmentConversionForContainerServiceLinuxProfile_STATUS: Interface +├── augmentConversionForContainerServiceNetworkProfile: Interface +├── augmentConversionForContainerServiceNetworkProfile_STATUS: Interface +├── augmentConversionForContainerServiceSshConfiguration: Interface +├── augmentConversionForContainerServiceSshConfiguration_STATUS: Interface +├── augmentConversionForContainerServiceSshPublicKey: Interface +├── augmentConversionForContainerServiceSshPublicKey_STATUS: Interface +├── augmentConversionForCreationData: Interface +├── augmentConversionForCreationData_STATUS: Interface +├── augmentConversionForExtendedLocation: Interface +├── augmentConversionForExtendedLocation_STATUS: Interface +├── augmentConversionForKubeletConfig: Interface +├── augmentConversionForKubeletConfig_STATUS: Interface +├── augmentConversionForLinuxOSConfig: Interface +├── augmentConversionForLinuxOSConfig_STATUS: Interface +├── augmentConversionForManagedCluster: Interface +├── augmentConversionForManagedClusterAADProfile: Interface +├── augmentConversionForManagedClusterAADProfile_STATUS: Interface +├── augmentConversionForManagedClusterAPIServerAccessProfile: Interface +├── augmentConversionForManagedClusterAPIServerAccessProfile_STATUS: Interface +├── augmentConversionForManagedClusterAddonProfile: Interface +├── augmentConversionForManagedClusterAddonProfile_STATUS: Interface +├── augmentConversionForManagedClusterAgentPoolProfile: Interface +├── augmentConversionForManagedClusterAgentPoolProfile_STATUS: Interface +├── augmentConversionForManagedClusterAutoUpgradeProfile: Interface +├── augmentConversionForManagedClusterAutoUpgradeProfile_STATUS: Interface +├── augmentConversionForManagedClusterAzureMonitorProfile: Interface +├── augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics: Interface +├── augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS: Interface +├── augmentConversionForManagedClusterAzureMonitorProfileMetrics: Interface +├── augmentConversionForManagedClusterAzureMonitorProfileMetrics_STATUS: Interface +├── augmentConversionForManagedClusterAzureMonitorProfile_STATUS: Interface +├── augmentConversionForManagedClusterHTTPProxyConfig: Interface +├── augmentConversionForManagedClusterHTTPProxyConfig_STATUS: Interface +├── augmentConversionForManagedClusterIdentity: Interface +├── augmentConversionForManagedClusterIdentity_STATUS: Interface +├── augmentConversionForManagedClusterIdentity_UserAssignedIdentities_STATUS: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS: Interface +├── augmentConversionForManagedClusterLoadBalancerProfile_STATUS: Interface +├── augmentConversionForManagedClusterManagedOutboundIPProfile: Interface +├── augmentConversionForManagedClusterManagedOutboundIPProfile_STATUS: Interface +├── augmentConversionForManagedClusterNATGatewayProfile: Interface +├── augmentConversionForManagedClusterNATGatewayProfile_STATUS: Interface +├── augmentConversionForManagedClusterOIDCIssuerProfile: Interface +├── augmentConversionForManagedClusterOIDCIssuerProfile_STATUS: Interface +├── augmentConversionForManagedClusterOperatorConfigMaps: Interface +├── augmentConversionForManagedClusterOperatorSecrets: Interface +├── augmentConversionForManagedClusterOperatorSpec: Interface +├── augmentConversionForManagedClusterPodIdentity: Interface +├── augmentConversionForManagedClusterPodIdentityException: Interface +├── augmentConversionForManagedClusterPodIdentityException_STATUS: Interface +├── augmentConversionForManagedClusterPodIdentityProfile: Interface +├── augmentConversionForManagedClusterPodIdentityProfile_STATUS: Interface +├── augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS: Interface +├── augmentConversionForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled: Interface +├── augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS: Interface +├── augmentConversionForManagedClusterPodIdentity_ProvisioningInfo_STATUS: Interface +├── augmentConversionForManagedClusterPodIdentity_STATUS: Interface +├── augmentConversionForManagedClusterProperties_AutoScalerProfile: Interface +├── augmentConversionForManagedClusterProperties_AutoScalerProfile_STATUS: Interface +├── augmentConversionForManagedClusterSKU: Interface +├── augmentConversionForManagedClusterSKU_STATUS: Interface +├── augmentConversionForManagedClusterSecurityProfile: Interface +├── augmentConversionForManagedClusterSecurityProfileDefender: Interface +├── augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring: Interface +├── augmentConversionForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS: Interface +├── augmentConversionForManagedClusterSecurityProfileDefender_STATUS: Interface +├── augmentConversionForManagedClusterSecurityProfileImageCleaner: Interface +├── augmentConversionForManagedClusterSecurityProfileImageCleaner_STATUS: Interface +├── augmentConversionForManagedClusterSecurityProfileWorkloadIdentity: Interface +├── augmentConversionForManagedClusterSecurityProfileWorkloadIdentity_STATUS: Interface +├── augmentConversionForManagedClusterSecurityProfile_STATUS: Interface +├── augmentConversionForManagedClusterServicePrincipalProfile: Interface +├── augmentConversionForManagedClusterServicePrincipalProfile_STATUS: Interface +├── augmentConversionForManagedClusterStorageProfile: Interface +├── augmentConversionForManagedClusterStorageProfileBlobCSIDriver: Interface +├── augmentConversionForManagedClusterStorageProfileBlobCSIDriver_STATUS: Interface +├── augmentConversionForManagedClusterStorageProfileDiskCSIDriver: Interface +├── augmentConversionForManagedClusterStorageProfileDiskCSIDriver_STATUS: Interface +├── augmentConversionForManagedClusterStorageProfileFileCSIDriver: Interface +├── augmentConversionForManagedClusterStorageProfileFileCSIDriver_STATUS: Interface +├── augmentConversionForManagedClusterStorageProfileSnapshotController: Interface +├── augmentConversionForManagedClusterStorageProfileSnapshotController_STATUS: Interface +├── augmentConversionForManagedClusterStorageProfile_STATUS: Interface +├── augmentConversionForManagedClusterWindowsProfile: Interface +├── augmentConversionForManagedClusterWindowsProfile_STATUS: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfile: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS: Interface +├── augmentConversionForManagedCluster_STATUS: Interface +├── augmentConversionForManagedCluster_Spec: Interface +├── augmentConversionForManagedClustersAgentPool: Interface +├── augmentConversionForManagedClusters_AgentPool_STATUS: Interface +├── augmentConversionForManagedClusters_AgentPool_Spec: Interface +├── augmentConversionForPowerState: Interface +├── augmentConversionForPowerState_STATUS: Interface +├── augmentConversionForPrivateLinkResource: Interface +├── augmentConversionForPrivateLinkResource_STATUS: Interface +├── augmentConversionForResourceReference: Interface +├── augmentConversionForResourceReference_STATUS: Interface +├── augmentConversionForSysctlConfig: Interface +├── augmentConversionForSysctlConfig_STATUS: Interface +├── augmentConversionForSystemData_STATUS: Interface +├── augmentConversionForUserAssignedIdentity: Interface +├── augmentConversionForUserAssignedIdentityDetails: Interface +├── augmentConversionForUserAssignedIdentity_STATUS: Interface +├── augmentConversionForWindowsGmsaProfile: Interface +└── augmentConversionForWindowsGmsaProfile_STATUS: Interface diff --git a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go index 160a22cfc79..a44fed0835a 100644 --- a/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20230202preview/managed_cluster_types_gen_test.go @@ -5,8 +5,8 @@ package v1api20230202preview import ( "encoding/json" - v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" v20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -37,7 +37,7 @@ func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedCluster + var hub v20231001s.ManagedCluster err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20230202preview/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/managed_clusters_agent_pool_types_gen_test.go index 67e4e61afcc..89926642766 100644 --- a/v2/api/containerservice/v1api20230202preview/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20230202preview/managed_clusters_agent_pool_types_gen_test.go @@ -5,8 +5,8 @@ package v1api20230202preview import ( "encoding/json" - v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" v20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -37,7 +37,7 @@ func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedCluster copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedClustersAgentPool + var hub v20231001s.ManagedClustersAgentPool err := copied.ConvertTo(&hub) if err != nil { return err.Error() diff --git a/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen.go index c10b184ad7b..3ab1f0c8fd2 100644 --- a/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen.go +++ b/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen.go @@ -5,8 +5,8 @@ package storage import ( "context" - "fmt" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20230201sc "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage/compat" "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" @@ -52,22 +52,36 @@ var _ conversion.Convertible = &ManagedCluster{} // ConvertFrom populates our ManagedCluster from the provided hub ManagedCluster func (cluster *ManagedCluster) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedCluster + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = cluster.AssignProperties_From_ManagedCluster(&source) + if err != nil { + return errors.Wrap(err, "converting from source to cluster") } - return cluster.AssignProperties_From_ManagedCluster(source) + return nil } // ConvertTo populates the provided hub ManagedCluster from our ManagedCluster func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedCluster) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedCluster but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedCluster + err := cluster.AssignProperties_To_ManagedCluster(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from cluster") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return cluster.AssignProperties_To_ManagedCluster(destination) + return nil } var _ genruntime.KubernetesExporter = &ManagedCluster{} @@ -2390,6 +2404,80 @@ type ClusterUpgradeSettings struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ClusterUpgradeSettings populates our ClusterUpgradeSettings from the provided source ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_From_ClusterUpgradeSettings(source *v20230201sc.ClusterUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // Invoke the augmentConversionForClusterUpgradeSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForClusterUpgradeSettings); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings populates the provided destination ClusterUpgradeSettings from our ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_To_ClusterUpgradeSettings(destination *v20230201sc.ClusterUpgradeSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20230201sc.UpgradeOverrideSettings + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForClusterUpgradeSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForClusterUpgradeSettings); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.ClusterUpgradeSettings_STATUS // Settings for upgrading a cluster. type ClusterUpgradeSettings_STATUS struct { @@ -2397,6 +2485,80 @@ type ClusterUpgradeSettings_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ClusterUpgradeSettings_STATUS populates our ClusterUpgradeSettings_STATUS from the provided source ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_From_ClusterUpgradeSettings_STATUS(source *v20230201sc.ClusterUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings_STATUS + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings_STATUS(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // Invoke the augmentConversionForClusterUpgradeSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForClusterUpgradeSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings_STATUS populates the provided destination ClusterUpgradeSettings_STATUS from our ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_To_ClusterUpgradeSettings_STATUS(destination *v20230201sc.ClusterUpgradeSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20230201sc.UpgradeOverrideSettings_STATUS + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings_STATUS(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForClusterUpgradeSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForClusterUpgradeSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.ContainerServiceLinuxProfile // Profile for Linux VMs in the container service cluster. type ContainerServiceLinuxProfile struct { @@ -8740,6 +8902,86 @@ type ServiceMeshProfile struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ServiceMeshProfile populates our ServiceMeshProfile from the provided source ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_From_ServiceMeshProfile(source *v20230201sc.ServiceMeshProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh + err := istio.AssignProperties_From_IstioServiceMesh(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForServiceMeshProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForServiceMeshProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile populates the provided destination ServiceMeshProfile from our ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_To_ServiceMeshProfile(destination *v20230201sc.ServiceMeshProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Istio + if profile.Istio != nil { + var istio v20230201sc.IstioServiceMesh + err := profile.Istio.AssignProperties_To_IstioServiceMesh(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForServiceMeshProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForServiceMeshProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.ServiceMeshProfile_STATUS // Service mesh profile for a managed cluster. type ServiceMeshProfile_STATUS struct { @@ -8748,6 +8990,86 @@ type ServiceMeshProfile_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_ServiceMeshProfile_STATUS populates our ServiceMeshProfile_STATUS from the provided source ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_From_ServiceMeshProfile_STATUS(source *v20230201sc.ServiceMeshProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh_STATUS + err := istio.AssignProperties_From_IstioServiceMesh_STATUS(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh_STATUS() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + profile.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForServiceMeshProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForServiceMeshProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile_STATUS populates the provided destination ServiceMeshProfile_STATUS from our ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_To_ServiceMeshProfile_STATUS(destination *v20230201sc.ServiceMeshProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // Istio + if profile.Istio != nil { + var istio v20230201sc.IstioServiceMesh_STATUS + err := profile.Istio.AssignProperties_To_IstioServiceMesh_STATUS(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh_STATUS() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(profile.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForServiceMeshProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForServiceMeshProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.SystemData_STATUS // Metadata pertaining to creation and last modification of the resource. type SystemData_STATUS struct { @@ -9012,6 +9334,16 @@ func (identity *UserAssignedIdentity_STATUS) AssignProperties_To_UserAssignedIde return nil } +type augmentConversionForClusterUpgradeSettings interface { + AssignPropertiesFrom(src *v20230201sc.ClusterUpgradeSettings) error + AssignPropertiesTo(dst *v20230201sc.ClusterUpgradeSettings) error +} + +type augmentConversionForClusterUpgradeSettings_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.ClusterUpgradeSettings_STATUS) error + AssignPropertiesTo(dst *v20230201sc.ClusterUpgradeSettings_STATUS) error +} + type augmentConversionForContainerServiceLinuxProfile interface { AssignPropertiesFrom(src *v20230201s.ContainerServiceLinuxProfile) error AssignPropertiesTo(dst *v20230201s.ContainerServiceLinuxProfile) error @@ -9242,6 +9574,16 @@ type augmentConversionForPrivateLinkResource_STATUS interface { AssignPropertiesTo(dst *v20230201s.PrivateLinkResource_STATUS) error } +type augmentConversionForServiceMeshProfile interface { + AssignPropertiesFrom(src *v20230201sc.ServiceMeshProfile) error + AssignPropertiesTo(dst *v20230201sc.ServiceMeshProfile) error +} + +type augmentConversionForServiceMeshProfile_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.ServiceMeshProfile_STATUS) error + AssignPropertiesTo(dst *v20230201sc.ServiceMeshProfile_STATUS) error +} + type augmentConversionForSystemData_STATUS interface { AssignPropertiesFrom(src *v20230201s.SystemData_STATUS) error AssignPropertiesTo(dst *v20230201s.SystemData_STATUS) error @@ -9667,44 +10009,192 @@ type IstioServiceMesh struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } -// Storage version of v1api20230202preview.IstioServiceMesh_STATUS -// Istio service mesh configuration. -type IstioServiceMesh_STATUS struct { - Components *IstioComponents_STATUS `json:"components,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` -} - -// Storage version of v1api20230202preview.ManagedClusterAzureMonitorProfileMetrics -// Metrics profile for the prometheus service addon -type ManagedClusterAzureMonitorProfileMetrics struct { - Enabled *bool `json:"enabled,omitempty"` - KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` -} - -// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics -func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source *v20230201s.ManagedClusterAzureMonitorProfileMetrics) error { +// AssignProperties_From_IstioServiceMesh populates our IstioServiceMesh from the provided source IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_From_IstioServiceMesh(source *v20230201sc.IstioServiceMesh) error { // Clone the existing property bag propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - metrics.Enabled = &enabled - } else { - metrics.Enabled = nil - } - - // KubeStateMetrics - if source.KubeStateMetrics != nil { - var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics - err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source.KubeStateMetrics) + // Components + if source.Components != nil { + var component IstioComponents + err := component.AssignProperties_From_IstioComponents(source.Components) if err != nil { - return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents() to populate field Components") } - metrics.KubeStateMetrics = &kubeStateMetric + mesh.Components = &component } else { - metrics.KubeStateMetrics = nil + mesh.Components = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + mesh.PropertyBag = propertyBag + } else { + mesh.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioServiceMesh interface (if implemented) to customize the conversion + var meshAsAny any = mesh + if augmentedMesh, ok := meshAsAny.(augmentConversionForIstioServiceMesh); ok { + err := augmentedMesh.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh populates the provided destination IstioServiceMesh from our IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_To_IstioServiceMesh(destination *v20230201sc.IstioServiceMesh) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(mesh.PropertyBag) + + // Components + if mesh.Components != nil { + var component v20230201sc.IstioComponents + err := mesh.Components.AssignProperties_To_IstioComponents(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioServiceMesh interface (if implemented) to customize the conversion + var meshAsAny any = mesh + if augmentedMesh, ok := meshAsAny.(augmentConversionForIstioServiceMesh); ok { + err := augmentedMesh.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.IstioServiceMesh_STATUS +// Istio service mesh configuration. +type IstioServiceMesh_STATUS struct { + Components *IstioComponents_STATUS `json:"components,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_IstioServiceMesh_STATUS populates our IstioServiceMesh_STATUS from the provided source IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_From_IstioServiceMesh_STATUS(source *v20230201sc.IstioServiceMesh_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Components + if source.Components != nil { + var component IstioComponents_STATUS + err := component.AssignProperties_From_IstioComponents_STATUS(source.Components) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents_STATUS() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + mesh.PropertyBag = propertyBag + } else { + mesh.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioServiceMesh_STATUS interface (if implemented) to customize the conversion + var meshAsAny any = mesh + if augmentedMesh, ok := meshAsAny.(augmentConversionForIstioServiceMesh_STATUS); ok { + err := augmentedMesh.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh_STATUS populates the provided destination IstioServiceMesh_STATUS from our IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_To_IstioServiceMesh_STATUS(destination *v20230201sc.IstioServiceMesh_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(mesh.PropertyBag) + + // Components + if mesh.Components != nil { + var component v20230201sc.IstioComponents_STATUS + err := mesh.Components.AssignProperties_To_IstioComponents_STATUS(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents_STATUS() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioServiceMesh_STATUS interface (if implemented) to customize the conversion + var meshAsAny any = mesh + if augmentedMesh, ok := meshAsAny.(augmentConversionForIstioServiceMesh_STATUS); ok { + err := augmentedMesh.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.ManagedClusterAzureMonitorProfileMetrics +// Metrics profile for the prometheus service addon +type ManagedClusterAzureMonitorProfileMetrics struct { + Enabled *bool `json:"enabled,omitempty"` + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics +func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source *v20230201s.ManagedClusterAzureMonitorProfileMetrics) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics + err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil } // Update the property bag @@ -12492,56 +12982,36 @@ type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler struct { UpdateMode *string `json:"updateMode,omitempty"` } -// Storage version of v1api20230202preview.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS -type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS struct { - ControlledValues *string `json:"controlledValues,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - UpdateMode *string `json:"updateMode,omitempty"` -} - -// Storage version of v1api20230202preview.UpgradeOverrideSettings -// Settings for overrides when upgrading a cluster. -type UpgradeOverrideSettings struct { - ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Until *string `json:"until,omitempty"` -} - -// Storage version of v1api20230202preview.UpgradeOverrideSettings_STATUS -// Settings for overrides when upgrading a cluster. -type UpgradeOverrideSettings_STATUS struct { - ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Until *string `json:"until,omitempty"` -} - -// Storage version of v1api20230202preview.UserAssignedIdentityDetails -// Information about the user assigned identity for the resource -type UserAssignedIdentityDetails struct { - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` -} - -// AssignProperties_From_UserAssignedIdentityDetails populates our UserAssignedIdentityDetails from the provided source UserAssignedIdentityDetails -func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedIdentityDetails(source *v20230201s.UserAssignedIdentityDetails) error { +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(source *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { // Clone the existing property bag propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // Reference - details.Reference = source.Reference.Copy() + // ControlledValues + autoscaler.ControlledValues = genruntime.ClonePointerToString(source.ControlledValues) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // UpdateMode + autoscaler.UpdateMode = genruntime.ClonePointerToString(source.UpdateMode) // Update the property bag if len(propertyBag) > 0 { - details.PropertyBag = propertyBag + autoscaler.PropertyBag = propertyBag } else { - details.PropertyBag = nil + autoscaler.PropertyBag = nil } - // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion - var detailsAsAny any = details - if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { - err := augmentedDetails.AssignPropertiesFrom(source) + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler interface (if implemented) to customize the conversion + var autoscalerAsAny any = autoscaler + if augmentedAutoscaler, ok := autoscalerAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler); ok { + err := augmentedAutoscaler.AssignPropertiesFrom(source) if err != nil { return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") } @@ -12551,13 +13021,24 @@ func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedId return nil } -// AssignProperties_To_UserAssignedIdentityDetails populates the provided destination UserAssignedIdentityDetails from our UserAssignedIdentityDetails -func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIdentityDetails(destination *v20230201s.UserAssignedIdentityDetails) error { +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(destination *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { // Clone the existing property bag - propertyBag := genruntime.NewPropertyBag(details.PropertyBag) + propertyBag := genruntime.NewPropertyBag(autoscaler.PropertyBag) - // Reference - destination.Reference = details.Reference.Copy() + // ControlledValues + destination.ControlledValues = genruntime.ClonePointerToString(autoscaler.ControlledValues) + + // Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UpdateMode + destination.UpdateMode = genruntime.ClonePointerToString(autoscaler.UpdateMode) // Update the property bag if len(propertyBag) > 0 { @@ -12566,10 +13047,10 @@ func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIden destination.PropertyBag = nil } - // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion - var detailsAsAny any = details - if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { - err := augmentedDetails.AssignPropertiesTo(destination) + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler interface (if implemented) to customize the conversion + var autoscalerAsAny any = autoscaler + if augmentedAutoscaler, ok := autoscalerAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler); ok { + err := augmentedAutoscaler.AssignPropertiesTo(destination) if err != nil { return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") } @@ -12579,45 +13060,44 @@ func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIden return nil } -// Storage version of v1api20230202preview.WindowsGmsaProfile -// Windows gMSA Profile in the managed cluster. -type WindowsGmsaProfile struct { - DnsServer *string `json:"dnsServer,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - RootDomainName *string `json:"rootDomainName,omitempty"` +// Storage version of v1api20230202preview.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS struct { + ControlledValues *string `json:"controlledValues,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpdateMode *string `json:"updateMode,omitempty"` } -// AssignProperties_From_WindowsGmsaProfile populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile -func (profile *WindowsGmsaProfile) AssignProperties_From_WindowsGmsaProfile(source *v20230201s.WindowsGmsaProfile) error { +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { // Clone the existing property bag propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // DnsServer - profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + // ControlledValues + autoscaler.ControlledValues = genruntime.ClonePointerToString(source.ControlledValues) // Enabled if source.Enabled != nil { enabled := *source.Enabled - profile.Enabled = &enabled + autoscaler.Enabled = &enabled } else { - profile.Enabled = nil + autoscaler.Enabled = nil } - // RootDomainName - profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + // UpdateMode + autoscaler.UpdateMode = genruntime.ClonePointerToString(source.UpdateMode) // Update the property bag if len(propertyBag) > 0 { - profile.PropertyBag = propertyBag + autoscaler.PropertyBag = propertyBag } else { - profile.PropertyBag = nil + autoscaler.PropertyBag = nil } - // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion - var profileAsAny any = profile - if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { - err := augmentedProfile.AssignPropertiesFrom(source) + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS interface (if implemented) to customize the conversion + var autoscalerAsAny any = autoscaler + if augmentedAutoscaler, ok := autoscalerAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS); ok { + err := augmentedAutoscaler.AssignPropertiesFrom(source) if err != nil { return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") } @@ -12627,24 +13107,24 @@ func (profile *WindowsGmsaProfile) AssignProperties_From_WindowsGmsaProfile(sour return nil } -// AssignProperties_To_WindowsGmsaProfile populates the provided destination WindowsGmsaProfile from our WindowsGmsaProfile -func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destination *v20230201s.WindowsGmsaProfile) error { +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(destination *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { // Clone the existing property bag - propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + propertyBag := genruntime.NewPropertyBag(autoscaler.PropertyBag) - // DnsServer - destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + // ControlledValues + destination.ControlledValues = genruntime.ClonePointerToString(autoscaler.ControlledValues) // Enabled - if profile.Enabled != nil { - enabled := *profile.Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled destination.Enabled = &enabled } else { destination.Enabled = nil } - // RootDomainName - destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + // UpdateMode + destination.UpdateMode = genruntime.ClonePointerToString(autoscaler.UpdateMode) // Update the property bag if len(propertyBag) > 0 { @@ -12653,10 +13133,10 @@ func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destin destination.PropertyBag = nil } - // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion - var profileAsAny any = profile - if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { - err := augmentedProfile.AssignPropertiesTo(destination) + // Invoke the augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS interface (if implemented) to customize the conversion + var autoscalerAsAny any = autoscaler + if augmentedAutoscaler, ok := autoscalerAsAny.(augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS); ok { + err := augmentedAutoscaler.AssignPropertiesTo(destination) if err != nil { return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") } @@ -12666,42 +13146,332 @@ func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destin return nil } -// Storage version of v1api20230202preview.WindowsGmsaProfile_STATUS -// Windows gMSA Profile in the managed cluster. -type WindowsGmsaProfile_STATUS struct { - DnsServer *string `json:"dnsServer,omitempty"` - Enabled *bool `json:"enabled,omitempty"` - PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` - RootDomainName *string `json:"rootDomainName,omitempty"` +// Storage version of v1api20230202preview.UpgradeOverrideSettings +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings struct { + ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` } -// AssignProperties_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile_STATUS from the provided source WindowsGmsaProfile_STATUS -func (profile *WindowsGmsaProfile_STATUS) AssignProperties_From_WindowsGmsaProfile_STATUS(source *v20230201s.WindowsGmsaProfile_STATUS) error { +// AssignProperties_From_UpgradeOverrideSettings populates our UpgradeOverrideSettings from the provided source UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_From_UpgradeOverrideSettings(source *v20230201sc.UpgradeOverrideSettings) error { // Clone the existing property bag propertyBag := genruntime.NewPropertyBag(source.PropertyBag) - // DnsServer - profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) - - // Enabled - if source.Enabled != nil { - enabled := *source.Enabled - profile.Enabled = &enabled - } else { - profile.Enabled = nil - } + // ControlPlaneOverrides + settings.ControlPlaneOverrides = genruntime.CloneSliceOfString(source.ControlPlaneOverrides) - // RootDomainName - profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) // Update the property bag if len(propertyBag) > 0 { - profile.PropertyBag = propertyBag + settings.PropertyBag = propertyBag } else { - profile.PropertyBag = nil + settings.PropertyBag = nil } - // Invoke the augmentConversionForWindowsGmsaProfile_STATUS interface (if implemented) to customize the conversion + // Invoke the augmentConversionForUpgradeOverrideSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForUpgradeOverrideSettings); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings populates the provided destination UpgradeOverrideSettings from our UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_To_UpgradeOverrideSettings(destination *v20230201sc.UpgradeOverrideSettings) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // ControlPlaneOverrides + destination.ControlPlaneOverrides = genruntime.CloneSliceOfString(settings.ControlPlaneOverrides) + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUpgradeOverrideSettings interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForUpgradeOverrideSettings); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.UpgradeOverrideSettings_STATUS +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_STATUS struct { + ControlPlaneOverrides []string `json:"controlPlaneOverrides,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` +} + +// AssignProperties_From_UpgradeOverrideSettings_STATUS populates our UpgradeOverrideSettings_STATUS from the provided source UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_From_UpgradeOverrideSettings_STATUS(source *v20230201sc.UpgradeOverrideSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // ControlPlaneOverrides + settings.ControlPlaneOverrides = genruntime.CloneSliceOfString(source.ControlPlaneOverrides) + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // Update the property bag + if len(propertyBag) > 0 { + settings.PropertyBag = propertyBag + } else { + settings.PropertyBag = nil + } + + // Invoke the augmentConversionForUpgradeOverrideSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForUpgradeOverrideSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings_STATUS populates the provided destination UpgradeOverrideSettings_STATUS from our UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_To_UpgradeOverrideSettings_STATUS(destination *v20230201sc.UpgradeOverrideSettings_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(settings.PropertyBag) + + // ControlPlaneOverrides + destination.ControlPlaneOverrides = genruntime.CloneSliceOfString(settings.ControlPlaneOverrides) + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUpgradeOverrideSettings_STATUS interface (if implemented) to customize the conversion + var settingsAsAny any = settings + if augmentedSettings, ok := settingsAsAny.(augmentConversionForUpgradeOverrideSettings_STATUS); ok { + err := augmentedSettings.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.UserAssignedIdentityDetails +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +} + +// AssignProperties_From_UserAssignedIdentityDetails populates our UserAssignedIdentityDetails from the provided source UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedIdentityDetails(source *v20230201s.UserAssignedIdentityDetails) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Reference + details.Reference = source.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + details.PropertyBag = propertyBag + } else { + details.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion + var detailsAsAny any = details + if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { + err := augmentedDetails.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentityDetails populates the provided destination UserAssignedIdentityDetails from our UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIdentityDetails(destination *v20230201s.UserAssignedIdentityDetails) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(details.PropertyBag) + + // Reference + destination.Reference = details.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForUserAssignedIdentityDetails interface (if implemented) to customize the conversion + var detailsAsAny any = details + if augmentedDetails, ok := detailsAsAny.(augmentConversionForUserAssignedIdentityDetails); ok { + err := augmentedDetails.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.WindowsGmsaProfile +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// AssignProperties_From_WindowsGmsaProfile populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_From_WindowsGmsaProfile(source *v20230201s.WindowsGmsaProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_WindowsGmsaProfile populates the provided destination WindowsGmsaProfile from our WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destination *v20230201s.WindowsGmsaProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // DnsServer + destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // RootDomainName + destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + +// Storage version of v1api20230202preview.WindowsGmsaProfile_STATUS +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_STATUS struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// AssignProperties_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile_STATUS from the provided source WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile_STATUS) AssignProperties_From_WindowsGmsaProfile_STATUS(source *v20230201s.WindowsGmsaProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForWindowsGmsaProfile_STATUS interface (if implemented) to customize the conversion var profileAsAny any = profile if augmentedProfile, ok := profileAsAny.(augmentConversionForWindowsGmsaProfile_STATUS); ok { err := augmentedProfile.AssignPropertiesFrom(source) @@ -12773,6 +13543,16 @@ type augmentConversionForContainerServiceSshConfiguration_STATUS interface { AssignPropertiesTo(dst *v20230201s.ContainerServiceSshConfiguration_STATUS) error } +type augmentConversionForIstioServiceMesh interface { + AssignPropertiesFrom(src *v20230201sc.IstioServiceMesh) error + AssignPropertiesTo(dst *v20230201sc.IstioServiceMesh) error +} + +type augmentConversionForIstioServiceMesh_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.IstioServiceMesh_STATUS) error + AssignPropertiesTo(dst *v20230201sc.IstioServiceMesh_STATUS) error +} + type augmentConversionForManagedClusterAzureMonitorProfileMetrics interface { AssignPropertiesFrom(src *v20230201s.ManagedClusterAzureMonitorProfileMetrics) error AssignPropertiesTo(dst *v20230201s.ManagedClusterAzureMonitorProfileMetrics) error @@ -12918,6 +13698,26 @@ type augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS inte AssignPropertiesTo(dst *v20230201s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error } +type augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler interface { + AssignPropertiesFrom(src *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error + AssignPropertiesTo(dst *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error +} + +type augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error + AssignPropertiesTo(dst *v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error +} + +type augmentConversionForUpgradeOverrideSettings interface { + AssignPropertiesFrom(src *v20230201sc.UpgradeOverrideSettings) error + AssignPropertiesTo(dst *v20230201sc.UpgradeOverrideSettings) error +} + +type augmentConversionForUpgradeOverrideSettings_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.UpgradeOverrideSettings_STATUS) error + AssignPropertiesTo(dst *v20230201sc.UpgradeOverrideSettings_STATUS) error +} + type augmentConversionForUserAssignedIdentityDetails interface { AssignPropertiesFrom(src *v20230201s.UserAssignedIdentityDetails) error AssignPropertiesTo(dst *v20230201s.UserAssignedIdentityDetails) error @@ -13084,6 +13884,92 @@ type IstioComponents struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_IstioComponents populates our IstioComponents from the provided source IstioComponents +func (components *IstioComponents) AssignProperties_From_IstioComponents(source *v20230201sc.IstioComponents) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway + err := ingressGateway.AssignProperties_From_IstioIngressGateway(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + components.PropertyBag = propertyBag + } else { + components.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioComponents interface (if implemented) to customize the conversion + var componentsAsAny any = components + if augmentedComponents, ok := componentsAsAny.(augmentConversionForIstioComponents); ok { + err := augmentedComponents.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents populates the provided destination IstioComponents from our IstioComponents +func (components *IstioComponents) AssignProperties_To_IstioComponents(destination *v20230201sc.IstioComponents) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(components.PropertyBag) + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20230201sc.IstioIngressGateway, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20230201sc.IstioIngressGateway + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioComponents interface (if implemented) to customize the conversion + var componentsAsAny any = components + if augmentedComponents, ok := componentsAsAny.(augmentConversionForIstioComponents); ok { + err := augmentedComponents.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.IstioComponents_STATUS // Istio components configuration. type IstioComponents_STATUS struct { @@ -13091,6 +13977,92 @@ type IstioComponents_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_IstioComponents_STATUS populates our IstioComponents_STATUS from the provided source IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_From_IstioComponents_STATUS(source *v20230201sc.IstioComponents_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway_STATUS, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway_STATUS + err := ingressGateway.AssignProperties_From_IstioIngressGateway_STATUS(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + components.PropertyBag = propertyBag + } else { + components.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioComponents_STATUS interface (if implemented) to customize the conversion + var componentsAsAny any = components + if augmentedComponents, ok := componentsAsAny.(augmentConversionForIstioComponents_STATUS); ok { + err := augmentedComponents.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents_STATUS populates the provided destination IstioComponents_STATUS from our IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_To_IstioComponents_STATUS(destination *v20230201sc.IstioComponents_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(components.PropertyBag) + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20230201sc.IstioIngressGateway_STATUS, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20230201sc.IstioIngressGateway_STATUS + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway_STATUS(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioComponents_STATUS interface (if implemented) to customize the conversion + var componentsAsAny any = components + if augmentedComponents, ok := componentsAsAny.(augmentConversionForIstioComponents_STATUS); ok { + err := augmentedComponents.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.ManagedClusterAzureMonitorProfileKubeStateMetrics // Kube State Metrics for prometheus addon profile for the container service cluster type ManagedClusterAzureMonitorProfileKubeStateMetrics struct { @@ -14237,6 +15209,16 @@ type augmentConversionForContainerServiceSshPublicKey_STATUS interface { AssignPropertiesTo(dst *v20230201s.ContainerServiceSshPublicKey_STATUS) error } +type augmentConversionForIstioComponents interface { + AssignPropertiesFrom(src *v20230201sc.IstioComponents) error + AssignPropertiesTo(dst *v20230201sc.IstioComponents) error +} + +type augmentConversionForIstioComponents_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.IstioComponents_STATUS) error + AssignPropertiesTo(dst *v20230201sc.IstioComponents_STATUS) error +} + type augmentConversionForManagedClusterAzureMonitorProfileKubeStateMetrics interface { AssignPropertiesFrom(src *v20230201s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error AssignPropertiesTo(dst *v20230201s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error @@ -14321,6 +15303,78 @@ type IstioIngressGateway struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_IstioIngressGateway populates our IstioIngressGateway from the provided source IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_From_IstioIngressGateway(source *v20230201sc.IstioIngressGateway) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + gateway.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + gateway.PropertyBag = propertyBag + } else { + gateway.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioIngressGateway interface (if implemented) to customize the conversion + var gatewayAsAny any = gateway + if augmentedGateway, ok := gatewayAsAny.(augmentConversionForIstioIngressGateway); ok { + err := augmentedGateway.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway populates the provided destination IstioIngressGateway from our IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_To_IstioIngressGateway(destination *v20230201sc.IstioIngressGateway) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(gateway.PropertyBag) + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(gateway.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioIngressGateway interface (if implemented) to customize the conversion + var gatewayAsAny any = gateway + if augmentedGateway, ok := gatewayAsAny.(augmentConversionForIstioIngressGateway); ok { + err := augmentedGateway.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.IstioIngressGateway_STATUS // Istio ingress gateway configuration. For now, we support up to one external ingress gateway named // `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. @@ -14330,6 +15384,78 @@ type IstioIngressGateway_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_IstioIngressGateway_STATUS populates our IstioIngressGateway_STATUS from the provided source IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_From_IstioIngressGateway_STATUS(source *v20230201sc.IstioIngressGateway_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + gateway.Mode = genruntime.ClonePointerToString(source.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + gateway.PropertyBag = propertyBag + } else { + gateway.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioIngressGateway_STATUS interface (if implemented) to customize the conversion + var gatewayAsAny any = gateway + if augmentedGateway, ok := gatewayAsAny.(augmentConversionForIstioIngressGateway_STATUS); ok { + err := augmentedGateway.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway_STATUS populates the provided destination IstioIngressGateway_STATUS from our IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_To_IstioIngressGateway_STATUS(destination *v20230201sc.IstioIngressGateway_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(gateway.PropertyBag) + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + destination.Mode = genruntime.ClonePointerToString(gateway.Mode) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIstioIngressGateway_STATUS interface (if implemented) to customize the conversion + var gatewayAsAny any = gateway + if augmentedGateway, ok := gatewayAsAny.(augmentConversionForIstioIngressGateway_STATUS); ok { + err := augmentedGateway.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.ManagedClusterPodIdentityProvisioningError_STATUS // An error response from the pod identity provisioning. type ManagedClusterPodIdentityProvisioningError_STATUS struct { @@ -14411,6 +15537,16 @@ func (error *ManagedClusterPodIdentityProvisioningError_STATUS) AssignProperties return nil } +type augmentConversionForIstioIngressGateway interface { + AssignPropertiesFrom(src *v20230201sc.IstioIngressGateway) error + AssignPropertiesTo(dst *v20230201sc.IstioIngressGateway) error +} + +type augmentConversionForIstioIngressGateway_STATUS interface { + AssignPropertiesFrom(src *v20230201sc.IstioIngressGateway_STATUS) error + AssignPropertiesTo(dst *v20230201sc.IstioIngressGateway_STATUS) error +} + type augmentConversionForManagedClusterPodIdentityProvisioningError_STATUS interface { AssignPropertiesFrom(src *v20230201s.ManagedClusterPodIdentityProvisioningError_STATUS) error AssignPropertiesTo(dst *v20230201s.ManagedClusterPodIdentityProvisioningError_STATUS) error diff --git a/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen_test.go index 7de927efd78..df6b60c016f 100644 --- a/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen_test.go +++ b/v2/api/containerservice/v1api20230202preview/storage/managed_cluster_types_gen_test.go @@ -6,6 +6,8 @@ package storage import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20230201sc "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage/compat" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +38,7 @@ func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedCluster + var hub v20231001s.ManagedCluster err := copied.ConvertTo(&hub) if err != nil { return err.Error() @@ -453,6 +455,48 @@ func AddRelatedPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator()) } +func Test_ClusterUpgradeSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings to ClusterUpgradeSettings via AssignProperties_To_ClusterUpgradeSettings & AssignProperties_From_ClusterUpgradeSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings tests if a specific instance of ClusterUpgradeSettings can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ClusterUpgradeSettings + err := copied.AssignProperties_To_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings + err = actual.AssignProperties_From_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ClusterUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -514,6 +558,48 @@ func AddRelatedPropertyGeneratorsForClusterUpgradeSettings(gens map[string]gopte gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettingsGenerator()) } +func Test_ClusterUpgradeSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings_STATUS to ClusterUpgradeSettings_STATUS via AssignProperties_To_ClusterUpgradeSettings_STATUS & AssignProperties_From_ClusterUpgradeSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS tests if a specific instance of ClusterUpgradeSettings_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ClusterUpgradeSettings_STATUS + err := copied.AssignProperties_To_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings_STATUS + err = actual.AssignProperties_From_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ClusterUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6104,6 +6190,48 @@ func AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(gens map[stri gens["Type"] = gen.PtrOf(gen.AlphaString()) } +func Test_ServiceMeshProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile to ServiceMeshProfile via AssignProperties_To_ServiceMeshProfile & AssignProperties_From_ServiceMeshProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile tests if a specific instance of ServiceMeshProfile can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ServiceMeshProfile + err := copied.AssignProperties_To_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile + err = actual.AssignProperties_From_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ServiceMeshProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -6178,6 +6306,48 @@ func AddRelatedPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Ge gens["Istio"] = gen.PtrOf(IstioServiceMeshGenerator()) } +func Test_ServiceMeshProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile_STATUS to ServiceMeshProfile_STATUS via AssignProperties_To_ServiceMeshProfile_STATUS & AssignProperties_From_ServiceMeshProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile_STATUS tests if a specific instance of ServiceMeshProfile_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ServiceMeshProfile_STATUS + err := copied.AssignProperties_To_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile_STATUS + err = actual.AssignProperties_From_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ServiceMeshProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -7137,6 +7307,48 @@ func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(gens gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_STATUSGenerator()) } +func Test_IstioServiceMesh_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh to IstioServiceMesh via AssignProperties_To_IstioServiceMesh & AssignProperties_From_IstioServiceMesh returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh tests if a specific instance of IstioServiceMesh can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioServiceMesh + err := copied.AssignProperties_To_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh + err = actual.AssignProperties_From_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioServiceMesh_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -7197,6 +7409,48 @@ func AddRelatedPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) gens["Components"] = gen.PtrOf(IstioComponentsGenerator()) } +func Test_IstioServiceMesh_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh_STATUS to IstioServiceMesh_STATUS via AssignProperties_To_IstioServiceMesh_STATUS & AssignProperties_From_IstioServiceMesh_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh_STATUS tests if a specific instance of IstioServiceMesh_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioServiceMesh_STATUS + err := copied.AssignProperties_To_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh_STATUS + err = actual.AssignProperties_From_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioServiceMesh_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -10647,6 +10901,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileK gens["Enabled"] = gen.PtrOf(gen.Bool()) } +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -10710,6 +11006,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileV gens["UpdateMode"] = gen.PtrOf(gen.AlphaString()) } +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -10773,6 +11111,48 @@ func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileV gens["UpdateMode"] = gen.PtrOf(gen.AlphaString()) } +func Test_UpgradeOverrideSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings to UpgradeOverrideSettings via AssignProperties_To_UpgradeOverrideSettings & AssignProperties_From_UpgradeOverrideSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings tests if a specific instance of UpgradeOverrideSettings can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.UpgradeOverrideSettings + err := copied.AssignProperties_To_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings + err = actual.AssignProperties_From_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_UpgradeOverrideSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -10835,6 +11215,48 @@ func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(gens map[string] gens["Until"] = gen.PtrOf(gen.AlphaString()) } +func Test_UpgradeOverrideSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings_STATUS to UpgradeOverrideSettings_STATUS via AssignProperties_To_UpgradeOverrideSettings_STATUS & AssignProperties_From_UpgradeOverrideSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS tests if a specific instance of UpgradeOverrideSettings_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.UpgradeOverrideSettings_STATUS + err := copied.AssignProperties_To_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings_STATUS + err = actual.AssignProperties_From_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_UpgradeOverrideSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -11537,6 +11959,48 @@ func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(gens gens["KeyData"] = gen.PtrOf(gen.AlphaString()) } +func Test_IstioComponents_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents to IstioComponents via AssignProperties_To_IstioComponents & AssignProperties_From_IstioComponents returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents tests if a specific instance of IstioComponents can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioComponents(subject IstioComponents) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioComponents + err := copied.AssignProperties_To_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents + err = actual.AssignProperties_From_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioComponents_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -11597,6 +12061,48 @@ func AddRelatedPropertyGeneratorsForIstioComponents(gens map[string]gopter.Gen) gens["IngressGateways"] = gen.SliceOf(IstioIngressGatewayGenerator()) } +func Test_IstioComponents_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents_STATUS to IstioComponents_STATUS via AssignProperties_To_IstioComponents_STATUS & AssignProperties_From_IstioComponents_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents_STATUS tests if a specific instance of IstioComponents_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioComponents_STATUS + err := copied.AssignProperties_To_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents_STATUS + err = actual.AssignProperties_From_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioComponents_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -13200,6 +13706,48 @@ func AddIndependentPropertyGeneratorsForResourceReference_STATUS(gens map[string gens["Id"] = gen.PtrOf(gen.AlphaString()) } +func Test_IstioIngressGateway_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway to IstioIngressGateway via AssignProperties_To_IstioIngressGateway & AssignProperties_From_IstioIngressGateway returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway tests if a specific instance of IstioIngressGateway can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioIngressGateway + err := copied.AssignProperties_To_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway + err = actual.AssignProperties_From_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioIngressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -13262,6 +13810,48 @@ func AddIndependentPropertyGeneratorsForIstioIngressGateway(gens map[string]gopt gens["Mode"] = gen.PtrOf(gen.AlphaString()) } +func Test_IstioIngressGateway_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway_STATUS to IstioIngressGateway_STATUS via AssignProperties_To_IstioIngressGateway_STATUS & AssignProperties_From_IstioIngressGateway_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway_STATUS tests if a specific instance of IstioIngressGateway_STATUS can be assigned to compat and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230201sc.IstioIngressGateway_STATUS + err := copied.AssignProperties_To_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway_STATUS + err = actual.AssignProperties_From_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IstioIngressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() diff --git a/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen.go index d8b69d538bd..6b3c707de6b 100644 --- a/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen.go +++ b/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen.go @@ -4,8 +4,8 @@ package storage import ( - "fmt" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/Azure/azure-service-operator/v2/pkg/genruntime" "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" "github.com/pkg/errors" @@ -47,22 +47,36 @@ var _ conversion.Convertible = &ManagedClustersAgentPool{} // ConvertFrom populates our ManagedClustersAgentPool from the provided hub ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertFrom(hub conversion.Hub) error { - source, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var source v20230201s.ManagedClustersAgentPool + + err := source.ConvertFrom(hub) + if err != nil { + return errors.Wrap(err, "converting from hub to source") + } + + err = pool.AssignProperties_From_ManagedClustersAgentPool(&source) + if err != nil { + return errors.Wrap(err, "converting from source to pool") } - return pool.AssignProperties_From_ManagedClustersAgentPool(source) + return nil } // ConvertTo populates the provided hub ManagedClustersAgentPool from our ManagedClustersAgentPool func (pool *ManagedClustersAgentPool) ConvertTo(hub conversion.Hub) error { - destination, ok := hub.(*v20230201s.ManagedClustersAgentPool) - if !ok { - return fmt.Errorf("expected containerservice/v1api20230201/storage/ManagedClustersAgentPool but received %T instead", hub) + // intermediate variable for conversion + var destination v20230201s.ManagedClustersAgentPool + err := pool.AssignProperties_To_ManagedClustersAgentPool(&destination) + if err != nil { + return errors.Wrap(err, "converting to destination from pool") + } + err = destination.ConvertTo(hub) + if err != nil { + return errors.Wrap(err, "converting from destination to hub") } - return pool.AssignProperties_To_ManagedClustersAgentPool(destination) + return nil } var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} @@ -1647,6 +1661,154 @@ type AgentPoolNetworkProfile struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_AgentPoolNetworkProfile populates our AgentPoolNetworkProfile from the provided source AgentPoolNetworkProfile +func (profile *AgentPoolNetworkProfile) AssignProperties_From_AgentPoolNetworkProfile(source *v20231001s.AgentPoolNetworkProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowedHostPorts + if source.AllowedHostPorts != nil { + allowedHostPortList := make([]PortRange, len(source.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range source.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort PortRange + err := allowedHostPort.AssignProperties_From_PortRange(&allowedHostPortItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PortRange() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + profile.AllowedHostPorts = allowedHostPortList + } else { + profile.AllowedHostPorts = nil + } + + // ApplicationSecurityGroupsReferences + if source.ApplicationSecurityGroupsReferences != nil { + applicationSecurityGroupsReferenceList := make([]genruntime.ResourceReference, len(source.ApplicationSecurityGroupsReferences)) + for applicationSecurityGroupsReferenceIndex, applicationSecurityGroupsReferenceItem := range source.ApplicationSecurityGroupsReferences { + // Shadow the loop variable to avoid aliasing + applicationSecurityGroupsReferenceItem := applicationSecurityGroupsReferenceItem + applicationSecurityGroupsReferenceList[applicationSecurityGroupsReferenceIndex] = applicationSecurityGroupsReferenceItem.Copy() + } + profile.ApplicationSecurityGroupsReferences = applicationSecurityGroupsReferenceList + } else { + profile.ApplicationSecurityGroupsReferences = nil + } + + // NodePublicIPTags + if source.NodePublicIPTags != nil { + nodePublicIPTagList := make([]IPTag, len(source.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range source.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag IPTag + err := nodePublicIPTag.AssignProperties_From_IPTag(&nodePublicIPTagItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IPTag() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + profile.NodePublicIPTags = nodePublicIPTagList + } else { + profile.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolNetworkProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForAgentPoolNetworkProfile); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolNetworkProfile populates the provided destination AgentPoolNetworkProfile from our AgentPoolNetworkProfile +func (profile *AgentPoolNetworkProfile) AssignProperties_To_AgentPoolNetworkProfile(destination *v20231001s.AgentPoolNetworkProfile) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllowedHostPorts + if profile.AllowedHostPorts != nil { + allowedHostPortList := make([]v20231001s.PortRange, len(profile.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range profile.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort v20231001s.PortRange + err := allowedHostPortItem.AssignProperties_To_PortRange(&allowedHostPort) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PortRange() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + destination.AllowedHostPorts = allowedHostPortList + } else { + destination.AllowedHostPorts = nil + } + + // ApplicationSecurityGroupsReferences + if profile.ApplicationSecurityGroupsReferences != nil { + applicationSecurityGroupsReferenceList := make([]genruntime.ResourceReference, len(profile.ApplicationSecurityGroupsReferences)) + for applicationSecurityGroupsReferenceIndex, applicationSecurityGroupsReferenceItem := range profile.ApplicationSecurityGroupsReferences { + // Shadow the loop variable to avoid aliasing + applicationSecurityGroupsReferenceItem := applicationSecurityGroupsReferenceItem + applicationSecurityGroupsReferenceList[applicationSecurityGroupsReferenceIndex] = applicationSecurityGroupsReferenceItem.Copy() + } + destination.ApplicationSecurityGroupsReferences = applicationSecurityGroupsReferenceList + } else { + destination.ApplicationSecurityGroupsReferences = nil + } + + // NodePublicIPTags + if profile.NodePublicIPTags != nil { + nodePublicIPTagList := make([]v20231001s.IPTag, len(profile.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range profile.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag v20231001s.IPTag + err := nodePublicIPTagItem.AssignProperties_To_IPTag(&nodePublicIPTag) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IPTag() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + destination.NodePublicIPTags = nodePublicIPTagList + } else { + destination.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolNetworkProfile interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForAgentPoolNetworkProfile); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.AgentPoolNetworkProfile_STATUS // Network settings of an agent pool. type AgentPoolNetworkProfile_STATUS struct { @@ -1656,6 +1818,134 @@ type AgentPoolNetworkProfile_STATUS struct { PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` } +// AssignProperties_From_AgentPoolNetworkProfile_STATUS populates our AgentPoolNetworkProfile_STATUS from the provided source AgentPoolNetworkProfile_STATUS +func (profile *AgentPoolNetworkProfile_STATUS) AssignProperties_From_AgentPoolNetworkProfile_STATUS(source *v20231001s.AgentPoolNetworkProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // AllowedHostPorts + if source.AllowedHostPorts != nil { + allowedHostPortList := make([]PortRange_STATUS, len(source.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range source.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort PortRange_STATUS + err := allowedHostPort.AssignProperties_From_PortRange_STATUS(&allowedHostPortItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PortRange_STATUS() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + profile.AllowedHostPorts = allowedHostPortList + } else { + profile.AllowedHostPorts = nil + } + + // ApplicationSecurityGroups + profile.ApplicationSecurityGroups = genruntime.CloneSliceOfString(source.ApplicationSecurityGroups) + + // NodePublicIPTags + if source.NodePublicIPTags != nil { + nodePublicIPTagList := make([]IPTag_STATUS, len(source.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range source.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag IPTag_STATUS + err := nodePublicIPTag.AssignProperties_From_IPTag_STATUS(&nodePublicIPTagItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IPTag_STATUS() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + profile.NodePublicIPTags = nodePublicIPTagList + } else { + profile.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + profile.PropertyBag = propertyBag + } else { + profile.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolNetworkProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForAgentPoolNetworkProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolNetworkProfile_STATUS populates the provided destination AgentPoolNetworkProfile_STATUS from our AgentPoolNetworkProfile_STATUS +func (profile *AgentPoolNetworkProfile_STATUS) AssignProperties_To_AgentPoolNetworkProfile_STATUS(destination *v20231001s.AgentPoolNetworkProfile_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(profile.PropertyBag) + + // AllowedHostPorts + if profile.AllowedHostPorts != nil { + allowedHostPortList := make([]v20231001s.PortRange_STATUS, len(profile.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range profile.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort v20231001s.PortRange_STATUS + err := allowedHostPortItem.AssignProperties_To_PortRange_STATUS(&allowedHostPort) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PortRange_STATUS() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + destination.AllowedHostPorts = allowedHostPortList + } else { + destination.AllowedHostPorts = nil + } + + // ApplicationSecurityGroups + destination.ApplicationSecurityGroups = genruntime.CloneSliceOfString(profile.ApplicationSecurityGroups) + + // NodePublicIPTags + if profile.NodePublicIPTags != nil { + nodePublicIPTagList := make([]v20231001s.IPTag_STATUS, len(profile.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range profile.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag v20231001s.IPTag_STATUS + err := nodePublicIPTagItem.AssignProperties_To_IPTag_STATUS(&nodePublicIPTag) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IPTag_STATUS() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + destination.NodePublicIPTags = nodePublicIPTagList + } else { + destination.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForAgentPoolNetworkProfile_STATUS interface (if implemented) to customize the conversion + var profileAsAny any = profile + if augmentedProfile, ok := profileAsAny.(augmentConversionForAgentPoolNetworkProfile_STATUS); ok { + err := augmentedProfile.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.AgentPoolUpgradeSettings // Settings for upgrading an agentpool type AgentPoolUpgradeSettings struct { @@ -2379,6 +2669,16 @@ func (state *PowerState) AssignProperties_To_PowerState(destination *v20230201s. return nil } +type augmentConversionForAgentPoolNetworkProfile interface { + AssignPropertiesFrom(src *v20231001s.AgentPoolNetworkProfile) error + AssignPropertiesTo(dst *v20231001s.AgentPoolNetworkProfile) error +} + +type augmentConversionForAgentPoolNetworkProfile_STATUS interface { + AssignPropertiesFrom(src *v20231001s.AgentPoolNetworkProfile_STATUS) error + AssignPropertiesTo(dst *v20231001s.AgentPoolNetworkProfile_STATUS) error +} + type augmentConversionForAgentPoolUpgradeSettings interface { AssignPropertiesFrom(src *v20230201s.AgentPoolUpgradeSettings) error AssignPropertiesTo(dst *v20230201s.AgentPoolUpgradeSettings) error @@ -2422,6 +2722,68 @@ type IPTag struct { Tag *string `json:"tag,omitempty"` } +// AssignProperties_From_IPTag populates our IPTag from the provided source IPTag +func (ipTag *IPTag) AssignProperties_From_IPTag(source *v20231001s.IPTag) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // IpTagType + ipTag.IpTagType = genruntime.ClonePointerToString(source.IpTagType) + + // Tag + ipTag.Tag = genruntime.ClonePointerToString(source.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + ipTag.PropertyBag = propertyBag + } else { + ipTag.PropertyBag = nil + } + + // Invoke the augmentConversionForIPTag interface (if implemented) to customize the conversion + var ipTagAsAny any = ipTag + if augmentedIpTag, ok := ipTagAsAny.(augmentConversionForIPTag); ok { + err := augmentedIpTag.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IPTag populates the provided destination IPTag from our IPTag +func (ipTag *IPTag) AssignProperties_To_IPTag(destination *v20231001s.IPTag) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(ipTag.PropertyBag) + + // IpTagType + destination.IpTagType = genruntime.ClonePointerToString(ipTag.IpTagType) + + // Tag + destination.Tag = genruntime.ClonePointerToString(ipTag.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIPTag interface (if implemented) to customize the conversion + var ipTagAsAny any = ipTag + if augmentedIpTag, ok := ipTagAsAny.(augmentConversionForIPTag); ok { + err := augmentedIpTag.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.IPTag_STATUS // Contains the IPTag associated with the object. type IPTag_STATUS struct { @@ -2430,6 +2792,68 @@ type IPTag_STATUS struct { Tag *string `json:"tag,omitempty"` } +// AssignProperties_From_IPTag_STATUS populates our IPTag_STATUS from the provided source IPTag_STATUS +func (ipTag *IPTag_STATUS) AssignProperties_From_IPTag_STATUS(source *v20231001s.IPTag_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // IpTagType + ipTag.IpTagType = genruntime.ClonePointerToString(source.IpTagType) + + // Tag + ipTag.Tag = genruntime.ClonePointerToString(source.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + ipTag.PropertyBag = propertyBag + } else { + ipTag.PropertyBag = nil + } + + // Invoke the augmentConversionForIPTag_STATUS interface (if implemented) to customize the conversion + var ipTagAsAny any = ipTag + if augmentedIpTag, ok := ipTagAsAny.(augmentConversionForIPTag_STATUS); ok { + err := augmentedIpTag.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_IPTag_STATUS populates the provided destination IPTag_STATUS from our IPTag_STATUS +func (ipTag *IPTag_STATUS) AssignProperties_To_IPTag_STATUS(destination *v20231001s.IPTag_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(ipTag.PropertyBag) + + // IpTagType + destination.IpTagType = genruntime.ClonePointerToString(ipTag.IpTagType) + + // Tag + destination.Tag = genruntime.ClonePointerToString(ipTag.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForIPTag_STATUS interface (if implemented) to customize the conversion + var ipTagAsAny any = ipTag + if augmentedIpTag, ok := ipTagAsAny.(augmentConversionForIPTag_STATUS); ok { + err := augmentedIpTag.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.PortRange // The port range. type PortRange struct { @@ -2439,6 +2863,74 @@ type PortRange struct { Protocol *string `json:"protocol,omitempty"` } +// AssignProperties_From_PortRange populates our PortRange from the provided source PortRange +func (portRange *PortRange) AssignProperties_From_PortRange(source *v20231001s.PortRange) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PortEnd + portRange.PortEnd = genruntime.ClonePointerToInt(source.PortEnd) + + // PortStart + portRange.PortStart = genruntime.ClonePointerToInt(source.PortStart) + + // Protocol + portRange.Protocol = genruntime.ClonePointerToString(source.Protocol) + + // Update the property bag + if len(propertyBag) > 0 { + portRange.PropertyBag = propertyBag + } else { + portRange.PropertyBag = nil + } + + // Invoke the augmentConversionForPortRange interface (if implemented) to customize the conversion + var portRangeAsAny any = portRange + if augmentedPortRange, ok := portRangeAsAny.(augmentConversionForPortRange); ok { + err := augmentedPortRange.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PortRange populates the provided destination PortRange from our PortRange +func (portRange *PortRange) AssignProperties_To_PortRange(destination *v20231001s.PortRange) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(portRange.PropertyBag) + + // PortEnd + destination.PortEnd = genruntime.ClonePointerToInt(portRange.PortEnd) + + // PortStart + destination.PortStart = genruntime.ClonePointerToInt(portRange.PortStart) + + // Protocol + destination.Protocol = genruntime.ClonePointerToString(portRange.Protocol) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPortRange interface (if implemented) to customize the conversion + var portRangeAsAny any = portRange + if augmentedPortRange, ok := portRangeAsAny.(augmentConversionForPortRange); ok { + err := augmentedPortRange.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.PortRange_STATUS // The port range. type PortRange_STATUS struct { @@ -2448,6 +2940,74 @@ type PortRange_STATUS struct { Protocol *string `json:"protocol,omitempty"` } +// AssignProperties_From_PortRange_STATUS populates our PortRange_STATUS from the provided source PortRange_STATUS +func (portRange *PortRange_STATUS) AssignProperties_From_PortRange_STATUS(source *v20231001s.PortRange_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(source.PropertyBag) + + // PortEnd + portRange.PortEnd = genruntime.ClonePointerToInt(source.PortEnd) + + // PortStart + portRange.PortStart = genruntime.ClonePointerToInt(source.PortStart) + + // Protocol + portRange.Protocol = genruntime.ClonePointerToString(source.Protocol) + + // Update the property bag + if len(propertyBag) > 0 { + portRange.PropertyBag = propertyBag + } else { + portRange.PropertyBag = nil + } + + // Invoke the augmentConversionForPortRange_STATUS interface (if implemented) to customize the conversion + var portRangeAsAny any = portRange + if augmentedPortRange, ok := portRangeAsAny.(augmentConversionForPortRange_STATUS); ok { + err := augmentedPortRange.AssignPropertiesFrom(source) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion") + } + } + + // No error + return nil +} + +// AssignProperties_To_PortRange_STATUS populates the provided destination PortRange_STATUS from our PortRange_STATUS +func (portRange *PortRange_STATUS) AssignProperties_To_PortRange_STATUS(destination *v20231001s.PortRange_STATUS) error { + // Clone the existing property bag + propertyBag := genruntime.NewPropertyBag(portRange.PropertyBag) + + // PortEnd + destination.PortEnd = genruntime.ClonePointerToInt(portRange.PortEnd) + + // PortStart + destination.PortStart = genruntime.ClonePointerToInt(portRange.PortStart) + + // Protocol + destination.Protocol = genruntime.ClonePointerToString(portRange.Protocol) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // Invoke the augmentConversionForPortRange_STATUS interface (if implemented) to customize the conversion + var portRangeAsAny any = portRange + if augmentedPortRange, ok := portRangeAsAny.(augmentConversionForPortRange_STATUS); ok { + err := augmentedPortRange.AssignPropertiesTo(destination) + if err != nil { + return errors.Wrap(err, "calling augmented AssignPropertiesTo() for conversion") + } + } + + // No error + return nil +} + // Storage version of v1api20230202preview.SysctlConfig // Sysctl settings for Linux agent nodes. type SysctlConfig struct { @@ -2972,6 +3532,26 @@ func (config *SysctlConfig_STATUS) AssignProperties_To_SysctlConfig_STATUS(desti return nil } +type augmentConversionForIPTag interface { + AssignPropertiesFrom(src *v20231001s.IPTag) error + AssignPropertiesTo(dst *v20231001s.IPTag) error +} + +type augmentConversionForIPTag_STATUS interface { + AssignPropertiesFrom(src *v20231001s.IPTag_STATUS) error + AssignPropertiesTo(dst *v20231001s.IPTag_STATUS) error +} + +type augmentConversionForPortRange interface { + AssignPropertiesFrom(src *v20231001s.PortRange) error + AssignPropertiesTo(dst *v20231001s.PortRange) error +} + +type augmentConversionForPortRange_STATUS interface { + AssignPropertiesFrom(src *v20231001s.PortRange_STATUS) error + AssignPropertiesTo(dst *v20231001s.PortRange_STATUS) error +} + type augmentConversionForSysctlConfig interface { AssignPropertiesFrom(src *v20230201s.SysctlConfig) error AssignPropertiesTo(dst *v20230201s.SysctlConfig) error diff --git a/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen_test.go index 630268251e8..dbde2e42f97 100644 --- a/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen_test.go +++ b/v2/api/containerservice/v1api20230202preview/storage/managed_clusters_agent_pool_types_gen_test.go @@ -6,6 +6,7 @@ package storage import ( "encoding/json" v20230201s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230201/storage" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/kr/pretty" @@ -36,7 +37,7 @@ func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedCluster copied := subject.DeepCopy() // Convert to our hub version - var hub v20230201s.ManagedClustersAgentPool + var hub v20231001s.ManagedClustersAgentPool err := copied.ConvertTo(&hub) if err != nil { return err.Error() @@ -429,6 +430,48 @@ func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[st gens["WindowsProfile"] = gen.PtrOf(AgentPoolWindowsProfile_STATUSGenerator()) } +func Test_AgentPoolNetworkProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolNetworkProfile to AgentPoolNetworkProfile via AssignProperties_To_AgentPoolNetworkProfile & AssignProperties_From_AgentPoolNetworkProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolNetworkProfile, AgentPoolNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolNetworkProfile tests if a specific instance of AgentPoolNetworkProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolNetworkProfile(subject AgentPoolNetworkProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolNetworkProfile + err := copied.AssignProperties_To_AgentPoolNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolNetworkProfile + err = actual.AssignProperties_From_AgentPoolNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AgentPoolNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -491,6 +534,48 @@ func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile(gens map[string]gopt gens["NodePublicIPTags"] = gen.SliceOf(IPTagGenerator()) } +func Test_AgentPoolNetworkProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolNetworkProfile_STATUS to AgentPoolNetworkProfile_STATUS via AssignProperties_To_AgentPoolNetworkProfile_STATUS & AssignProperties_From_AgentPoolNetworkProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS, AgentPoolNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS tests if a specific instance of AgentPoolNetworkProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS(subject AgentPoolNetworkProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolNetworkProfile_STATUS + err := copied.AssignProperties_To_AgentPoolNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolNetworkProfile_STATUS + err = actual.AssignProperties_From_AgentPoolNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_AgentPoolNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1459,6 +1544,48 @@ func AddIndependentPropertyGeneratorsForPowerState(gens map[string]gopter.Gen) { gens["Code"] = gen.PtrOf(gen.AlphaString()) } +func Test_IPTag_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IPTag to IPTag via AssignProperties_To_IPTag & AssignProperties_From_IPTag returns original", + prop.ForAll(RunPropertyAssignmentTestForIPTag, IPTagGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIPTag tests if a specific instance of IPTag can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIPTag(subject IPTag) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IPTag + err := copied.AssignProperties_To_IPTag(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IPTag + err = actual.AssignProperties_From_IPTag(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IPTag_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1520,6 +1647,48 @@ func AddIndependentPropertyGeneratorsForIPTag(gens map[string]gopter.Gen) { gens["Tag"] = gen.PtrOf(gen.AlphaString()) } +func Test_IPTag_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IPTag_STATUS to IPTag_STATUS via AssignProperties_To_IPTag_STATUS & AssignProperties_From_IPTag_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIPTag_STATUS, IPTag_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIPTag_STATUS tests if a specific instance of IPTag_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIPTag_STATUS(subject IPTag_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IPTag_STATUS + err := copied.AssignProperties_To_IPTag_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IPTag_STATUS + err = actual.AssignProperties_From_IPTag_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_IPTag_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1581,6 +1750,48 @@ func AddIndependentPropertyGeneratorsForIPTag_STATUS(gens map[string]gopter.Gen) gens["Tag"] = gen.PtrOf(gen.AlphaString()) } +func Test_PortRange_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PortRange to PortRange via AssignProperties_To_PortRange & AssignProperties_From_PortRange returns original", + prop.ForAll(RunPropertyAssignmentTestForPortRange, PortRangeGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPortRange tests if a specific instance of PortRange can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPortRange(subject PortRange) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PortRange + err := copied.AssignProperties_To_PortRange(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PortRange + err = actual.AssignProperties_From_PortRange(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_PortRange_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() @@ -1643,6 +1854,48 @@ func AddIndependentPropertyGeneratorsForPortRange(gens map[string]gopter.Gen) { gens["Protocol"] = gen.PtrOf(gen.AlphaString()) } +func Test_PortRange_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PortRange_STATUS to PortRange_STATUS via AssignProperties_To_PortRange_STATUS & AssignProperties_From_PortRange_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPortRange_STATUS, PortRange_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPortRange_STATUS tests if a specific instance of PortRange_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPortRange_STATUS(subject PortRange_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PortRange_STATUS + err := copied.AssignProperties_To_PortRange_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PortRange_STATUS + err = actual.AssignProperties_From_PortRange_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + func Test_PortRange_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { t.Parallel() parameters := gopter.DefaultTestParameters() diff --git a/v2/api/containerservice/v1api20230202preview/storage/structure.txt b/v2/api/containerservice/v1api20230202preview/storage/structure.txt index ac95abc0fa1..814ac7d51d8 100644 --- a/v2/api/containerservice/v1api20230202preview/storage/structure.txt +++ b/v2/api/containerservice/v1api20230202preview/storage/structure.txt @@ -1125,10 +1125,14 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre │ │ ├── LastModifiedByType: *string │ │ └── PropertyBag: genruntime.PropertyBag │ └── Type: *string +├── augmentConversionForAgentPoolNetworkProfile: Interface +├── augmentConversionForAgentPoolNetworkProfile_STATUS: Interface ├── augmentConversionForAgentPoolUpgradeSettings: Interface ├── augmentConversionForAgentPoolUpgradeSettings_STATUS: Interface ├── augmentConversionForAzureKeyVaultKms: Interface ├── augmentConversionForAzureKeyVaultKms_STATUS: Interface +├── augmentConversionForClusterUpgradeSettings: Interface +├── augmentConversionForClusterUpgradeSettings_STATUS: Interface ├── augmentConversionForContainerServiceLinuxProfile: Interface ├── augmentConversionForContainerServiceLinuxProfile_STATUS: Interface ├── augmentConversionForContainerServiceNetworkProfile: Interface @@ -1141,6 +1145,14 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre ├── augmentConversionForCreationData_STATUS: Interface ├── augmentConversionForExtendedLocation: Interface ├── augmentConversionForExtendedLocation_STATUS: Interface +├── augmentConversionForIPTag: Interface +├── augmentConversionForIPTag_STATUS: Interface +├── augmentConversionForIstioComponents: Interface +├── augmentConversionForIstioComponents_STATUS: Interface +├── augmentConversionForIstioIngressGateway: Interface +├── augmentConversionForIstioIngressGateway_STATUS: Interface +├── augmentConversionForIstioServiceMesh: Interface +├── augmentConversionForIstioServiceMesh_STATUS: Interface ├── augmentConversionForKubeletConfig: Interface ├── augmentConversionForKubeletConfig_STATUS: Interface ├── augmentConversionForLinuxOSConfig: Interface @@ -1225,21 +1237,29 @@ github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202pre ├── augmentConversionForManagedClusterWorkloadAutoScalerProfile: Interface ├── augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda: Interface ├── augmentConversionForManagedClusterWorkloadAutoScalerProfileKeda_STATUS: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler: Interface +├── augmentConversionForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS: Interface ├── augmentConversionForManagedClusterWorkloadAutoScalerProfile_STATUS: Interface ├── augmentConversionForManagedCluster_STATUS: Interface ├── augmentConversionForManagedCluster_Spec: Interface ├── augmentConversionForManagedClustersAgentPool: Interface ├── augmentConversionForManagedClusters_AgentPool_STATUS: Interface ├── augmentConversionForManagedClusters_AgentPool_Spec: Interface +├── augmentConversionForPortRange: Interface +├── augmentConversionForPortRange_STATUS: Interface ├── augmentConversionForPowerState: Interface ├── augmentConversionForPowerState_STATUS: Interface ├── augmentConversionForPrivateLinkResource: Interface ├── augmentConversionForPrivateLinkResource_STATUS: Interface ├── augmentConversionForResourceReference: Interface ├── augmentConversionForResourceReference_STATUS: Interface +├── augmentConversionForServiceMeshProfile: Interface +├── augmentConversionForServiceMeshProfile_STATUS: Interface ├── augmentConversionForSysctlConfig: Interface ├── augmentConversionForSysctlConfig_STATUS: Interface ├── augmentConversionForSystemData_STATUS: Interface +├── augmentConversionForUpgradeOverrideSettings: Interface +├── augmentConversionForUpgradeOverrideSettings_STATUS: Interface ├── augmentConversionForUserAssignedIdentity: Interface ├── augmentConversionForUserAssignedIdentityDetails: Interface ├── augmentConversionForUserAssignedIdentity_STATUS: Interface diff --git a/v2/api/containerservice/v1api20231001/doc.go b/v2/api/containerservice/v1api20231001/doc.go new file mode 100644 index 00000000000..60af887c3b5 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/doc.go @@ -0,0 +1,10 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20231001 contains API Schema definitions for the containerservice v1api20231001 API group +// +groupName=containerservice.azure.com +package v1api20231001 diff --git a/v2/api/containerservice/v1api20231001/groupversion_info_gen.go b/v2/api/containerservice/v1api20231001/groupversion_info_gen.go new file mode 100644 index 00000000000..310311a7eba --- /dev/null +++ b/v2/api/containerservice/v1api20231001/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20231001 contains API Schema definitions for the containerservice v1api20231001 API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=containerservice.azure.com +// +versionName=v1api20231001 +package v1api20231001 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "containerservice.azure.com", Version: "v1api20231001"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder +) diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen.go b/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen.go new file mode 100644 index 00000000000..b254653f620 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen.go @@ -0,0 +1,1057 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type ManagedCluster_Spec_ARM struct { + // ExtendedLocation: The extended location of the Virtual Machine. + ExtendedLocation *ExtendedLocation_ARM `json:"extendedLocation,omitempty"` + + // Identity: The identity of the managed cluster, if configured. + Identity *ManagedClusterIdentity_ARM `json:"identity,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + Name string `json:"name,omitempty"` + + // Properties: Properties of a managed cluster. + Properties *ManagedClusterProperties_ARM `json:"properties,omitempty"` + + // Sku: The managed cluster SKU. + Sku *ManagedClusterSKU_ARM `json:"sku,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags"` +} + +var _ genruntime.ARMResourceSpec = &ManagedCluster_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (cluster ManagedCluster_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (cluster *ManagedCluster_Spec_ARM) GetName() string { + return cluster.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters" +func (cluster *ManagedCluster_Spec_ARM) GetType() string { + return "Microsoft.ContainerService/managedClusters" +} + +// The complex type of the extended location. +type ExtendedLocation_ARM struct { + // Name: The name of the extended location. + Name *string `json:"name,omitempty"` + + // Type: The type of the extended location. + Type *ExtendedLocationType `json:"type,omitempty"` +} + +// Identity for the managed cluster. +type ManagedClusterIdentity_ARM struct { + // DelegatedResources: The delegated identity resources assigned to this managed cluster. This can only be set by another + // Azure Resource Provider, and managed cluster only accept one delegated identity resource. Internal use only. + DelegatedResources map[string]DelegatedResource_ARM `json:"delegatedResources"` + + // Type: For more information see [use managed identities in + // AKS](https://docs.microsoft.com/azure/aks/use-managed-identity). + Type *ManagedClusterIdentity_Type `json:"type,omitempty"` + UserAssignedIdentities map[string]UserAssignedIdentityDetails_ARM `json:"userAssignedIdentities,omitempty"` +} + +// Properties of the managed cluster. +type ManagedClusterProperties_ARM struct { + // AadProfile: The Azure Active Directory configuration. + AadProfile *ManagedClusterAADProfile_ARM `json:"aadProfile,omitempty"` + + // AddonProfiles: The profile of managed cluster add-on. + AddonProfiles map[string]ManagedClusterAddonProfile_ARM `json:"addonProfiles"` + + // AgentPoolProfiles: The agent pool properties. + AgentPoolProfiles []ManagedClusterAgentPoolProfile_ARM `json:"agentPoolProfiles"` + + // ApiServerAccessProfile: The access profile for managed cluster API server. + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_ARM `json:"apiServerAccessProfile,omitempty"` + + // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_ARM `json:"autoScalerProfile,omitempty"` + + // AutoUpgradeProfile: The auto upgrade configuration. + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_ARM `json:"autoUpgradeProfile,omitempty"` + + // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_ARM `json:"azureMonitorProfile,omitempty"` + + // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be + // used on Managed Clusters that are AAD enabled. For more details see [disable local + // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` + + // DnsPrefix: This cannot be updated once the Managed Cluster has been created. + DnsPrefix *string `json:"dnsPrefix,omitempty"` + + // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was + // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and + // https://aka.ms/aks/psp. + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + + // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. + EnableRBAC *bool `json:"enableRBAC,omitempty"` + + // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + + // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. + HttpProxyConfig *ManagedClusterHTTPProxyConfig_ARM `json:"httpProxyConfig,omitempty"` + + // IdentityProfile: Identities associated with the cluster. + IdentityProfile map[string]UserAssignedIdentity_ARM `json:"identityProfile"` + + // KubernetesVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All + // upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or + // 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS + // cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details. + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + + // LinuxProfile: The profile for Linux VMs in the Managed Cluster. + LinuxProfile *ContainerServiceLinuxProfile_ARM `json:"linuxProfile,omitempty"` + + // NetworkProfile: The network configuration profile. + NetworkProfile *ContainerServiceNetworkProfile_ARM `json:"networkProfile,omitempty"` + + // NodeResourceGroup: The name of the resource group containing agent pool nodes. + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + + // OidcIssuerProfile: The OIDC issuer profile of the Managed Cluster. + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_ARM `json:"oidcIssuerProfile,omitempty"` + + // PodIdentityProfile: See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more + // details on AAD pod identity integration. + PodIdentityProfile *ManagedClusterPodIdentityProfile_ARM `json:"podIdentityProfile,omitempty"` + + // PrivateLinkResources: Private link resources associated with the cluster. + PrivateLinkResources []PrivateLinkResource_ARM `json:"privateLinkResources"` + + // PublicNetworkAccess: Allow or deny public network access for AKS + PublicNetworkAccess *ManagedClusterProperties_PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + + // SecurityProfile: Security profile for the managed cluster. + SecurityProfile *ManagedClusterSecurityProfile_ARM `json:"securityProfile,omitempty"` + + // ServiceMeshProfile: Service mesh profile for a managed cluster. + ServiceMeshProfile *ServiceMeshProfile_ARM `json:"serviceMeshProfile,omitempty"` + + // ServicePrincipalProfile: Information about a service principal identity for the cluster to use for manipulating Azure + // APIs. + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_ARM `json:"servicePrincipalProfile,omitempty"` + + // StorageProfile: Storage profile for the managed cluster. + StorageProfile *ManagedClusterStorageProfile_ARM `json:"storageProfile,omitempty"` + + // SupportPlan: The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'. + SupportPlan *KubernetesSupportPlan `json:"supportPlan,omitempty"` + + // UpgradeSettings: Settings for upgrading a cluster. + UpgradeSettings *ClusterUpgradeSettings_ARM `json:"upgradeSettings,omitempty"` + + // WindowsProfile: The profile for Windows VMs in the Managed Cluster. + WindowsProfile *ManagedClusterWindowsProfile_ARM `json:"windowsProfile,omitempty"` + + // WorkloadAutoScalerProfile: Workload Auto-scaler profile for the managed cluster. + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_ARM `json:"workloadAutoScalerProfile,omitempty"` +} + +// The SKU of a Managed Cluster. +type ManagedClusterSKU_ARM struct { + // Name: The name of a managed cluster SKU. + Name *ManagedClusterSKU_Name `json:"name,omitempty"` + + // Tier: If not specified, the default is 'Free'. See [AKS Pricing + // Tier](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for more details. + Tier *ManagedClusterSKU_Tier `json:"tier,omitempty"` +} + +// Settings for upgrading a cluster. +type ClusterUpgradeSettings_ARM struct { + // OverrideSettings: Settings for overrides. + OverrideSettings *UpgradeOverrideSettings_ARM `json:"overrideSettings,omitempty"` +} + +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile_ARM struct { + // AdminUsername: The administrator username to use for Linux VMs. + AdminUsername *string `json:"adminUsername,omitempty"` + + // Ssh: The SSH configuration for Linux-based VMs running on Azure. + Ssh *ContainerServiceSshConfiguration_ARM `json:"ssh,omitempty"` +} + +// Profile of network configuration. +type ContainerServiceNetworkProfile_ARM struct { + // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address + // range specified in serviceCidr. + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + + // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value + // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. + IpFamilies []ContainerServiceNetworkProfile_IpFamilies `json:"ipFamilies"` + + // LoadBalancerProfile: Profile of the cluster load balancer. + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_ARM `json:"loadBalancerProfile,omitempty"` + + // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer + // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load + // balancer SKUs. + LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku `json:"loadBalancerSku,omitempty"` + + // NatGatewayProfile: Profile of the cluster NAT gateway. + NatGatewayProfile *ManagedClusterNATGatewayProfile_ARM `json:"natGatewayProfile,omitempty"` + + // NetworkDataplane: Network dataplane used in the Kubernetes cluster. + NetworkDataplane *ContainerServiceNetworkProfile_NetworkDataplane `json:"networkDataplane,omitempty"` + + // NetworkMode: This cannot be specified if networkPlugin is anything other than 'azure'. + NetworkMode *ContainerServiceNetworkProfile_NetworkMode `json:"networkMode,omitempty"` + + // NetworkPlugin: Network plugin used for building the Kubernetes network. + NetworkPlugin *NetworkPlugin `json:"networkPlugin,omitempty"` + + // NetworkPluginMode: The mode the network plugin should use. + NetworkPluginMode *ContainerServiceNetworkProfile_NetworkPluginMode `json:"networkPluginMode,omitempty"` + + // NetworkPolicy: Network policy used for building the Kubernetes network. + NetworkPolicy *ContainerServiceNetworkProfile_NetworkPolicy `json:"networkPolicy,omitempty"` + + // OutboundType: This can only be set at cluster creation time and cannot be changed later. For more information see + // [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype). + OutboundType *ContainerServiceNetworkProfile_OutboundType `json:"outboundType,omitempty"` + + // PodCidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + PodCidr *string `json:"podCidr,omitempty"` + + // PodCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. + PodCidrs []string `json:"podCidrs"` + + // ServiceCidr: A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP + // ranges. + ServiceCidr *string `json:"serviceCidr,omitempty"` + + // ServiceCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. They must not overlap with any Subnet IP ranges. + ServiceCidrs []string `json:"serviceCidrs"` +} + +// Delegated resource properties - internal use only. +type DelegatedResource_ARM struct { + // Location: The source resource location - internal use only. + Location *string `json:"location,omitempty"` + + // ReferralResource: The delegation id of the referral delegation (optional) - internal use only. + ReferralResource *string `json:"referralResource,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` + + // TenantId: The tenant id of the delegated resource - internal use only. + TenantId *string `json:"tenantId,omitempty"` +} + +// The type of extendedLocation. +// +kubebuilder:validation:Enum={"EdgeZone"} +type ExtendedLocationType string + +const ExtendedLocationType_EdgeZone = ExtendedLocationType("EdgeZone") + +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile_ARM struct { + // AdminGroupObjectIDs: The list of AAD group object IDs that will have admin role of the cluster. + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs"` + + // ClientAppID: (DEPRECATED) The client AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ClientAppID *string `json:"clientAppID,omitempty"` + + // EnableAzureRBAC: Whether to enable Azure RBAC for Kubernetes authorization. + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + + // Managed: Whether to enable managed AAD. + Managed *bool `json:"managed,omitempty"` + + // ServerAppID: (DEPRECATED) The server AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppID *string `json:"serverAppID,omitempty"` + + // ServerAppSecret: (DEPRECATED) The server AAD application secret. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + + // TenantID: The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment + // subscription. + TenantID *string `json:"tenantID,omitempty"` +} + +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile_ARM struct { + // Config: Key-value pairs for configuring an add-on. + Config map[string]string `json:"config"` + + // Enabled: Whether the add-on is enabled or not. + Enabled *bool `json:"enabled,omitempty"` +} + +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile_ARM struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones"` + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_ARM `json:"creationData,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile `json:"gpuInstanceProfile,omitempty"` + HostGroupID *string `json:"hostGroupID,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_ARM `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_ARM `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode `json:"mode,omitempty"` + + // Name: Windows agent pool names must be 6 characters or less. + Name *string `json:"name,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_ARM `json:"networkProfile,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels"` + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *ContainerServiceOSDisk `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType `json:"osType,omitempty"` + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_ARM `json:"powerState,omitempty"` + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags"` + + // Type: The type of Agent Pool. + Type *AgentPoolType `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_ARM `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime `json:"workloadRuntime,omitempty"` +} + +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile_ARM struct { + // AuthorizedIPRanges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with + // clusters that use Public IP Per Node, or clusters that are using a Basic Load Balancer. For more information see [API + // server authorized IP ranges](https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges). + AuthorizedIPRanges []string `json:"authorizedIPRanges"` + + // DisableRunCommand: Whether to disable run command for the cluster or not. + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + + // EnablePrivateCluster: For more details, see [Creating a private AKS + // cluster](https://docs.microsoft.com/azure/aks/private-clusters). + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + + // EnablePrivateClusterPublicFQDN: Whether to create additional public FQDN for private cluster or not. + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + + // PrivateDNSZone: The default is System. For more details see [configure private DNS + // zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone). Allowed values are 'system' and + // 'none'. + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` +} + +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile_ARM struct { + // NodeOSUpgradeChannel: Manner in which the OS on your nodes is updated. The default is NodeImage. + NodeOSUpgradeChannel *ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel `json:"nodeOSUpgradeChannel,omitempty"` + + // UpgradeChannel: For more information see [setting the AKS cluster auto-upgrade + // channel](https://docs.microsoft.com/azure/aks/upgrade-cluster#set-auto-upgrade-channel). + UpgradeChannel *ManagedClusterAutoUpgradeProfile_UpgradeChannel `json:"upgradeChannel,omitempty"` +} + +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile_ARM struct { + // Metrics: Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes + // infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See + // aka.ms/AzureManagedPrometheus for an overview. + Metrics *ManagedClusterAzureMonitorProfileMetrics_ARM `json:"metrics,omitempty"` +} + +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig_ARM struct { + // HttpProxy: The HTTP proxy server endpoint to use. + HttpProxy *string `json:"httpProxy,omitempty"` + + // HttpsProxy: The HTTPS proxy server endpoint to use. + HttpsProxy *string `json:"httpsProxy,omitempty"` + + // NoProxy: The endpoints that should not go through proxy. + NoProxy []string `json:"noProxy"` + + // TrustedCa: Alternative CA cert to use for connecting to proxy servers. + TrustedCa *string `json:"trustedCa,omitempty"` +} + +// +kubebuilder:validation:Enum={"None","SystemAssigned","UserAssigned"} +type ManagedClusterIdentity_Type string + +const ( + ManagedClusterIdentity_Type_None = ManagedClusterIdentity_Type("None") + ManagedClusterIdentity_Type_SystemAssigned = ManagedClusterIdentity_Type("SystemAssigned") + ManagedClusterIdentity_Type_UserAssigned = ManagedClusterIdentity_Type("UserAssigned") +) + +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile_ARM struct { + // Enabled: Whether the OIDC issuer is enabled. + Enabled *bool `json:"enabled,omitempty"` +} + +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile_ARM struct { + // AllowNetworkPluginKubenet: Running in Kubenet is disabled by default due to the security related nature of AAD Pod + // Identity and the risks of IP spoofing. See [using Kubenet network plugin with AAD Pod + // Identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#using-kubenet-network-plugin-with-azure-active-directory-pod-managed-identities) + // for more information. + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + + // Enabled: Whether the pod identity addon is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // UserAssignedIdentities: The pod identities to use in the cluster. + UserAssignedIdentities []ManagedClusterPodIdentity_ARM `json:"userAssignedIdentities"` + + // UserAssignedIdentityExceptions: The pod identity exceptions to allow. + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_ARM `json:"userAssignedIdentityExceptions"` +} + +type ManagedClusterProperties_AutoScalerProfile_ARM struct { + // BalanceSimilarNodeGroups: Valid values are 'true' and 'false' + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + + // Expander: If not specified, the default is 'random'. See + // [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more + // information. + Expander *ManagedClusterProperties_AutoScalerProfile_Expander `json:"expander,omitempty"` + + // MaxEmptyBulkDelete: The default is 10. + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + + // MaxGracefulTerminationSec: The default is 600. + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + + // MaxNodeProvisionTime: The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + + // MaxTotalUnreadyPercentage: The default is 45. The maximum is 100 and the minimum is 0. + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + + // NewPodScaleUpDelay: For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler + // could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is + // '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + + // OkTotalUnreadyCount: This must be an integer. The default is 3. + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + + // ScaleDownDelayAfterAdd: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + + // ScaleDownDelayAfterDelete: The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of + // time other than minutes (m) is supported. + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + + // ScaleDownDelayAfterFailure: The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other + // than minutes (m) is supported. + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + + // ScaleDownUnneededTime: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + + // ScaleDownUnreadyTime: The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + + // ScaleDownUtilizationThreshold: The default is '0.5'. + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + + // ScanInterval: The default is '10'. Values must be an integer number of seconds. + ScanInterval *string `json:"scan-interval,omitempty"` + + // SkipNodesWithLocalStorage: The default is true. + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + + // SkipNodesWithSystemPods: The default is true. + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile_ARM struct { + // AzureKeyVaultKms: Azure Key Vault [key management + // service](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) settings for the security profile. + AzureKeyVaultKms *AzureKeyVaultKms_ARM `json:"azureKeyVaultKms,omitempty"` + + // Defender: Microsoft Defender settings for the security profile. + Defender *ManagedClusterSecurityProfileDefender_ARM `json:"defender,omitempty"` + + // ImageCleaner: Image Cleaner settings for the security profile. + ImageCleaner *ManagedClusterSecurityProfileImageCleaner_ARM `json:"imageCleaner,omitempty"` + + // WorkloadIdentity: Workload identity settings for the security profile. Workload identity enables Kubernetes applications + // to access Azure cloud resources securely with Azure AD. See https://aka.ms/aks/wi for more details. + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_ARM `json:"workloadIdentity,omitempty"` +} + +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile_ARM struct { + // ClientId: The ID for the service principal. + ClientId *string `json:"clientId,omitempty"` + + // Secret: The secret password associated with the service principal in plain text. + Secret *string `json:"secret,omitempty"` +} + +// +kubebuilder:validation:Enum={"Base"} +type ManagedClusterSKU_Name string + +const ManagedClusterSKU_Name_Base = ManagedClusterSKU_Name("Base") + +// +kubebuilder:validation:Enum={"Free","Premium","Standard"} +type ManagedClusterSKU_Tier string + +const ( + ManagedClusterSKU_Tier_Free = ManagedClusterSKU_Tier("Free") + ManagedClusterSKU_Tier_Premium = ManagedClusterSKU_Tier("Premium") + ManagedClusterSKU_Tier_Standard = ManagedClusterSKU_Tier("Standard") +) + +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile_ARM struct { + // BlobCSIDriver: AzureBlob CSI Driver settings for the storage profile. + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_ARM `json:"blobCSIDriver,omitempty"` + + // DiskCSIDriver: AzureDisk CSI Driver settings for the storage profile. + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_ARM `json:"diskCSIDriver,omitempty"` + + // FileCSIDriver: AzureFile CSI Driver settings for the storage profile. + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_ARM `json:"fileCSIDriver,omitempty"` + + // SnapshotController: Snapshot Controller settings for the storage profile. + SnapshotController *ManagedClusterStorageProfileSnapshotController_ARM `json:"snapshotController,omitempty"` +} + +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile_ARM struct { + // AdminPassword: Specifies the password of the administrator account. + // Minimum-length: 8 characters + // Max-length: 123 characters + // Complexity requirements: 3 out of 4 conditions below need to be fulfilled + // Has lower characters + // Has upper characters + // Has a digit + // Has a special character (Regex match [\W_]) + // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", + // "Password22", "iloveyou!" + AdminPassword *string `json:"adminPassword,omitempty"` + + // AdminUsername: Specifies the name of the administrator account. + // Restriction: Cannot end in "." + // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", + // "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", + // "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". + // Minimum-length: 1 character + // Max-length: 20 characters + AdminUsername *string `json:"adminUsername,omitempty"` + + // EnableCSIProxy: For more details on CSI proxy, see the [CSI proxy GitHub + // repo](https://github.com/kubernetes-csi/csi-proxy). + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + + // GmsaProfile: The Windows gMSA Profile in the Managed Cluster. + GmsaProfile *WindowsGmsaProfile_ARM `json:"gmsaProfile,omitempty"` + + // LicenseType: The license type to use for Windows VMs. See [Azure Hybrid User + // Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details. + LicenseType *ManagedClusterWindowsProfile_LicenseType `json:"licenseType,omitempty"` +} + +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile_ARM struct { + // Keda: KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. + Keda *ManagedClusterWorkloadAutoScalerProfileKeda_ARM `json:"keda,omitempty"` + + // VerticalPodAutoscaler: VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM `json:"verticalPodAutoscaler,omitempty"` +} + +// A private link resource +type PrivateLinkResource_ARM struct { + // GroupId: The group ID of the resource. + GroupId *string `json:"groupId,omitempty"` + Id *string `json:"id,omitempty"` + + // Name: The name of the private link resource. + Name *string `json:"name,omitempty"` + + // RequiredMembers: The RequiredMembers of the resource + RequiredMembers []string `json:"requiredMembers"` + + // Type: The resource type. + Type *string `json:"type,omitempty"` +} + +// Service mesh profile for a managed cluster. +type ServiceMeshProfile_ARM struct { + // Istio: Istio service mesh configuration. + Istio *IstioServiceMesh_ARM `json:"istio,omitempty"` + + // Mode: Mode of the service mesh. + Mode *ServiceMeshProfile_Mode `json:"mode,omitempty"` +} + +// Details about a user assigned identity. +type UserAssignedIdentity_ARM struct { + // ClientId: The client ID of the user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // ObjectId: The object ID of the user assigned identity. + ObjectId *string `json:"objectId,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` +} + +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails_ARM struct { +} + +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms_ARM struct { + // Enabled: Whether to enable Azure Key Vault key management service. The default is false. + Enabled *bool `json:"enabled,omitempty"` + + // KeyId: Identifier of Azure Key Vault key. See [key identifier + // format](https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name) + // for more details. When Azure Key Vault key management service is enabled, this field is required and must be a valid key + // identifier. When Azure Key Vault key management service is disabled, leave the field empty. + KeyId *string `json:"keyId,omitempty"` + + // KeyVaultNetworkAccess: Network access of key vault. The possible values are `Public` and `Private`. `Public` means the + // key vault allows public access from all networks. `Private` means the key vault disables public access and enables + // private link. The default value is `Public`. + KeyVaultNetworkAccess *AzureKeyVaultKms_KeyVaultNetworkAccess `json:"keyVaultNetworkAccess,omitempty"` + KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` +} + +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration_ARM struct { + // PublicKeys: The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified. + PublicKeys []ContainerServiceSshPublicKey_ARM `json:"publicKeys"` +} + +// Istio service mesh configuration. +type IstioServiceMesh_ARM struct { + // CertificateAuthority: Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin + // certificates as described here https://aka.ms/asm-plugin-ca + CertificateAuthority *IstioCertificateAuthority_ARM `json:"certificateAuthority,omitempty"` + + // Components: Istio components configuration. + Components *IstioComponents_ARM `json:"components,omitempty"` + + // Revisions: The list of revisions of the Istio control plane. When an upgrade is not in progress, this holds one value. + // When canary upgrade is in progress, this can only hold two consecutive values. For more information, see: + // https://learn.microsoft.com/en-us/azure/aks/istio-upgrade + Revisions []string `json:"revisions"` +} + +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics_ARM struct { + // Enabled: Whether to enable or disable the Azure Managed Prometheus addon for Prometheus monitoring. See + // aka.ms/AzureManagedPrometheus-aks-enable for details on enabling and disabling. + Enabled *bool `json:"enabled,omitempty"` + + // KubeStateMetrics: Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the + // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for + // details. + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM `json:"kubeStateMetrics,omitempty"` +} + +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile_ARM struct { + // AllocatedOutboundPorts: The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 + // (inclusive). The default value is 0 which results in Azure dynamically allocating ports. + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + + // BackendPoolType: The type of the managed inbound Load Balancer BackendPool. + BackendPoolType *ManagedClusterLoadBalancerProfile_BackendPoolType `json:"backendPoolType,omitempty"` + + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster load balancer. + EffectiveOutboundIPs []ResourceReference_ARM `json:"effectiveOutboundIPs"` + + // EnableMultipleStandardLoadBalancers: Enable multiple standard load balancers per AKS cluster or not. + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 30 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPs: Desired managed outbound IPs for the cluster load balancer. + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM `json:"managedOutboundIPs,omitempty"` + + // OutboundIPPrefixes: Desired outbound IP Prefix resources for the cluster load balancer. + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM `json:"outboundIPPrefixes,omitempty"` + + // OutboundIPs: Desired outbound IP resources for the cluster load balancer. + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_ARM `json:"outboundIPs,omitempty"` +} + +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile_ARM struct { + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster NAT gateway. + EffectiveOutboundIPs []ResourceReference_ARM `json:"effectiveOutboundIPs"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 4 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPProfile: Profile of the managed outbound IP resources of the cluster NAT gateway. + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_ARM `json:"managedOutboundIPProfile,omitempty"` +} + +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity_ARM struct { + // BindingSelector: The binding selector to use for the AzureIdentityBinding resource. + BindingSelector *string `json:"bindingSelector,omitempty"` + + // Identity: The user assigned identity details. + Identity *UserAssignedIdentity_ARM `json:"identity,omitempty"` + + // Name: The name of the pod identity. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity. + Namespace *string `json:"namespace,omitempty"` +} + +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException_ARM struct { + // Name: The name of the pod identity exception. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity exception. + Namespace *string `json:"namespace,omitempty"` + + // PodLabels: The pod labels to match. + PodLabels map[string]string `json:"podLabels"` +} + +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender_ARM struct { + LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` + + // SecurityMonitoring: Microsoft Defender threat detection for Cloud settings for the security profile. + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM `json:"securityMonitoring,omitempty"` +} + +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner_ARM struct { + // Enabled: Whether to enable Image Cleaner on AKS cluster. + Enabled *bool `json:"enabled,omitempty"` + + // IntervalHours: Image Cleaner scanning interval in hours. + IntervalHours *int `json:"intervalHours,omitempty"` +} + +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity_ARM struct { + // Enabled: Whether to enable workload identity. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver_ARM struct { + // Enabled: Whether to enable AzureBlob CSI Driver. The default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver_ARM struct { + // Enabled: Whether to enable AzureDisk CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver_ARM struct { + // Enabled: Whether to enable AzureFile CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController_ARM struct { + // Enabled: Whether to enable Snapshot Controller. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda_ARM struct { + // Enabled: Whether to enable KEDA. + Enabled *bool `json:"enabled,omitempty"` +} + +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM struct { + // Enabled: Whether to enable VPA. Default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_ARM struct { + // ForceUpgrade: Whether to force upgrade the cluster. Note that this option instructs upgrade operation to bypass upgrade + // protections such as checking for deprecated API usage. Enable this option only with caution. + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + + // Until: Until when the overrides are effective. Note that this only matches the start time of an upgrade, and the + // effectiveness won't change once an upgrade starts even if the `until` expires as upgrade proceeds. This field is not set + // by default. It must be set for the overrides to take effect. + Until *string `json:"until,omitempty"` +} + +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_ARM struct { + // DnsServer: Specifies the DNS server for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + DnsServer *string `json:"dnsServer,omitempty"` + + // Enabled: Specifies whether to enable Windows gMSA in the managed cluster. + Enabled *bool `json:"enabled,omitempty"` + + // RootDomainName: Specifies the root domain name for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey_ARM struct { + // KeyData: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or + // without headers. + KeyData *string `json:"keyData,omitempty"` +} + +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority_ARM struct { + // Plugin: Plugin certificates information for Service Mesh. + Plugin *IstioPluginCertificateAuthority_ARM `json:"plugin,omitempty"` +} + +// Istio components configuration. +type IstioComponents_ARM struct { + // EgressGateways: Istio egress gateways. + EgressGateways []IstioEgressGateway_ARM `json:"egressGateways"` + + // IngressGateways: Istio ingress gateways. + IngressGateways []IstioIngressGateway_ARM `json:"ingressGateways"` +} + +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM struct { + // MetricAnnotationsAllowList: Comma-separated list of Kubernetes annotation keys that will be used in the resource's + // labels metric (Example: 'namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...'). By default the metric + // contains only resource name and namespace labels. + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + + // MetricLabelsAllowlist: Comma-separated list of additional Kubernetes label keys that will be used in the resource's + // labels metric (Example: 'namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...'). By default the metric contains only + // resource name and namespace labels. + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` +} + +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM struct { + // Count: The desired number of IPv4 outbound IPs created/managed by Azure for the cluster load balancer. Allowed values + // must be in the range of 1 to 100 (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` + + // CountIPv6: The desired number of IPv6 outbound IPs created/managed by Azure for the cluster load balancer. Allowed + // values must be in the range of 1 to 100 (inclusive). The default value is 0 for single-stack and 1 for dual-stack. + CountIPv6 *int `json:"countIPv6,omitempty"` +} + +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM struct { + // PublicIPPrefixes: A list of public IP prefix resources. + PublicIPPrefixes []ResourceReference_ARM `json:"publicIPPrefixes"` +} + +type ManagedClusterLoadBalancerProfile_OutboundIPs_ARM struct { + // PublicIPs: A list of public IP resources. + PublicIPs []ResourceReference_ARM `json:"publicIPs"` +} + +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile_ARM struct { + // Count: The desired number of outbound IPs created/managed by Azure. Allowed values must be in the range of 1 to 16 + // (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` +} + +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM struct { + // Enabled: Whether to enable Defender threat detection + Enabled *bool `json:"enabled,omitempty"` +} + +// A reference to an Azure resource. +type ResourceReference_ARM struct { + Id *string `json:"id,omitempty"` +} + +// Istio egress gateway configuration. +type IstioEgressGateway_ARM struct { + // Enabled: Whether to enable the egress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // NodeSelector: NodeSelector for scheduling the egress gateway. + NodeSelector map[string]string `json:"nodeSelector"` +} + +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway_ARM struct { + // Enabled: Whether to enable the ingress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // Mode: Mode of an ingress gateway. + Mode *IstioIngressGateway_Mode `json:"mode,omitempty"` +} + +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority_ARM struct { + // CertChainObjectName: Certificate chain object name in Azure Key Vault. + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + + // CertObjectName: Intermediate certificate object name in Azure Key Vault. + CertObjectName *string `json:"certObjectName,omitempty"` + + // KeyObjectName: Intermediate certificate private key object name in Azure Key Vault. + KeyObjectName *string `json:"keyObjectName,omitempty"` + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // RootCertObjectName: Root certificate object name in Azure Key Vault. + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..356407548f7 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_spec_arm_types_gen_test.go @@ -0,0 +1,4077 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedCluster_Spec_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_Spec_ARM, ManagedCluster_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_Spec_ARM runs a test to see if a specific instance of ManagedCluster_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_Spec_ARM(subject ManagedCluster_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_Spec_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_Spec_ARM instances for property testing - lazily instantiated by +// ManagedCluster_Spec_ARMGenerator() +var managedCluster_Spec_ARMGenerator gopter.Gen + +// ManagedCluster_Spec_ARMGenerator returns a generator of ManagedCluster_Spec_ARM instances for property testing. +// We first initialize managedCluster_Spec_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_Spec_ARMGenerator() gopter.Gen { + if managedCluster_Spec_ARMGenerator != nil { + return managedCluster_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec_ARM(generators) + managedCluster_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec_ARM(generators) + AddRelatedPropertyGeneratorsForManagedCluster_Spec_ARM(generators) + managedCluster_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec_ARM{}), generators) + + return managedCluster_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_Spec_ARM(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.AlphaString() + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_Spec_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_Spec_ARM(gens map[string]gopter.Gen) { + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocation_ARMGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentity_ARMGenerator()) + gens["Properties"] = gen.PtrOf(ManagedClusterProperties_ARMGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKU_ARMGenerator()) +} + +func Test_ExtendedLocation_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation_ARM, ExtendedLocation_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation_ARM runs a test to see if a specific instance of ExtendedLocation_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation_ARM(subject ExtendedLocation_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation_ARM instances for property testing - lazily instantiated by +// ExtendedLocation_ARMGenerator() +var extendedLocation_ARMGenerator gopter.Gen + +// ExtendedLocation_ARMGenerator returns a generator of ExtendedLocation_ARM instances for property testing. +func ExtendedLocation_ARMGenerator() gopter.Gen { + if extendedLocation_ARMGenerator != nil { + return extendedLocation_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation_ARM(generators) + extendedLocation_ARMGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation_ARM{}), generators) + + return extendedLocation_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ExtendedLocationType_EdgeZone)) +} + +func Test_ManagedClusterIdentity_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_ARM, ManagedClusterIdentity_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_ARM runs a test to see if a specific instance of ManagedClusterIdentity_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_ARM(subject ManagedClusterIdentity_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_ARM instances for property testing - lazily instantiated by +// ManagedClusterIdentity_ARMGenerator() +var managedClusterIdentity_ARMGenerator gopter.Gen + +// ManagedClusterIdentity_ARMGenerator returns a generator of ManagedClusterIdentity_ARM instances for property testing. +// We first initialize managedClusterIdentity_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentity_ARMGenerator() gopter.Gen { + if managedClusterIdentity_ARMGenerator != nil { + return managedClusterIdentity_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_ARM(generators) + managedClusterIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity_ARM(generators) + managedClusterIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_ARM{}), generators) + + return managedClusterIdentity_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_ARM(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.OneConstOf(ManagedClusterIdentity_Type_None, ManagedClusterIdentity_Type_SystemAssigned, ManagedClusterIdentity_Type_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity_ARM(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResource_ARMGenerator()) + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentityDetails_ARMGenerator()) +} + +func Test_ManagedClusterProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_ARM, ManagedClusterProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_ARM runs a test to see if a specific instance of ManagedClusterProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_ARM(subject ManagedClusterProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_ARM instances for property testing - lazily instantiated by +// ManagedClusterProperties_ARMGenerator() +var managedClusterProperties_ARMGenerator gopter.Gen + +// ManagedClusterProperties_ARMGenerator returns a generator of ManagedClusterProperties_ARM instances for property testing. +// We first initialize managedClusterProperties_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterProperties_ARMGenerator() gopter.Gen { + if managedClusterProperties_ARMGenerator != nil { + return managedClusterProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_ARM(generators) + managedClusterProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterProperties_ARM(generators) + managedClusterProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_ARM{}), generators) + + return managedClusterProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_ARM(gens map[string]gopter.Gen) { + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DiskEncryptionSetID"] = gen.PtrOf(gen.AlphaString()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ManagedClusterProperties_PublicNetworkAccess_Disabled, ManagedClusterProperties_PublicNetworkAccess_Enabled)) + gens["SupportPlan"] = gen.PtrOf(gen.OneConstOf(KubernetesSupportPlan_AKSLongTermSupport, KubernetesSupportPlan_KubernetesOfficial)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterProperties_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterProperties_ARM(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfile_ARMGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfile_ARMGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfile_ARMGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfile_ARMGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfile_ARMGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfile_ARMGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfile_ARMGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfig_ARMGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentity_ARMGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfile_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfile_ARMGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfile_ARMGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfile_ARMGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResource_ARMGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfile_ARMGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfile_ARMGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfile_ARMGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfile_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettings_ARMGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfile_ARMGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_ARMGenerator()) +} + +func Test_ManagedClusterSKU_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU_ARM, ManagedClusterSKU_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU_ARM runs a test to see if a specific instance of ManagedClusterSKU_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU_ARM(subject ManagedClusterSKU_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU_ARM instances for property testing - lazily instantiated by +// ManagedClusterSKU_ARMGenerator() +var managedClusterSKU_ARMGenerator gopter.Gen + +// ManagedClusterSKU_ARMGenerator returns a generator of ManagedClusterSKU_ARM instances for property testing. +func ManagedClusterSKU_ARMGenerator() gopter.Gen { + if managedClusterSKU_ARMGenerator != nil { + return managedClusterSKU_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU_ARM(generators) + managedClusterSKU_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU_ARM{}), generators) + + return managedClusterSKU_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Name_Base)) + gens["Tier"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Tier_Free, ManagedClusterSKU_Tier_Premium, ManagedClusterSKU_Tier_Standard)) +} + +func Test_ClusterUpgradeSettings_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings_ARM, ClusterUpgradeSettings_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings_ARM runs a test to see if a specific instance of ClusterUpgradeSettings_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings_ARM(subject ClusterUpgradeSettings_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings_ARM instances for property testing - lazily instantiated by +// ClusterUpgradeSettings_ARMGenerator() +var clusterUpgradeSettings_ARMGenerator gopter.Gen + +// ClusterUpgradeSettings_ARMGenerator returns a generator of ClusterUpgradeSettings_ARM instances for property testing. +func ClusterUpgradeSettings_ARMGenerator() gopter.Gen { + if clusterUpgradeSettings_ARMGenerator != nil { + return clusterUpgradeSettings_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings_ARM(generators) + clusterUpgradeSettings_ARMGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings_ARM{}), generators) + + return clusterUpgradeSettings_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings_ARM(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettings_ARMGenerator()) +} + +func Test_ContainerServiceLinuxProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile_ARM, ContainerServiceLinuxProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile_ARM runs a test to see if a specific instance of ContainerServiceLinuxProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile_ARM(subject ContainerServiceLinuxProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile_ARM instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfile_ARMGenerator() +var containerServiceLinuxProfile_ARMGenerator gopter.Gen + +// ContainerServiceLinuxProfile_ARMGenerator returns a generator of ContainerServiceLinuxProfile_ARM instances for property testing. +// We first initialize containerServiceLinuxProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfile_ARMGenerator() gopter.Gen { + if containerServiceLinuxProfile_ARMGenerator != nil { + return containerServiceLinuxProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_ARM(generators) + containerServiceLinuxProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_ARM(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_ARM(generators) + containerServiceLinuxProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_ARM{}), generators) + + return containerServiceLinuxProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_ARM(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_ARM(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfiguration_ARMGenerator()) +} + +func Test_ContainerServiceNetworkProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile_ARM, ContainerServiceNetworkProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile_ARM runs a test to see if a specific instance of ContainerServiceNetworkProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile_ARM(subject ContainerServiceNetworkProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile_ARM instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfile_ARMGenerator() +var containerServiceNetworkProfile_ARMGenerator gopter.Gen + +// ContainerServiceNetworkProfile_ARMGenerator returns a generator of ContainerServiceNetworkProfile_ARM instances for property testing. +// We first initialize containerServiceNetworkProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfile_ARMGenerator() gopter.Gen { + if containerServiceNetworkProfile_ARMGenerator != nil { + return containerServiceNetworkProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_ARM(generators) + containerServiceNetworkProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_ARM(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_ARM(generators) + containerServiceNetworkProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_ARM{}), generators) + + return containerServiceNetworkProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_ARM(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.OneConstOf(ContainerServiceNetworkProfile_IpFamilies_IPv4, ContainerServiceNetworkProfile_IpFamilies_IPv6)) + gens["LoadBalancerSku"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_LoadBalancerSku_Basic, ContainerServiceNetworkProfile_LoadBalancerSku_Standard)) + gens["NetworkDataplane"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkDataplane_Azure, ContainerServiceNetworkProfile_NetworkDataplane_Cilium)) + gens["NetworkMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkMode_Bridge, ContainerServiceNetworkProfile_NetworkMode_Transparent)) + gens["NetworkPlugin"] = gen.PtrOf(gen.OneConstOf(NetworkPlugin_Azure, NetworkPlugin_Kubenet, NetworkPlugin_None)) + gens["NetworkPluginMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPluginMode_Overlay)) + gens["NetworkPolicy"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPolicy_Azure, ContainerServiceNetworkProfile_NetworkPolicy_Calico, ContainerServiceNetworkProfile_NetworkPolicy_Cilium)) + gens["OutboundType"] = gen.PtrOf(gen.OneConstOf( + ContainerServiceNetworkProfile_OutboundType_LoadBalancer, + ContainerServiceNetworkProfile_OutboundType_ManagedNATGateway, + ContainerServiceNetworkProfile_OutboundType_UserAssignedNATGateway, + ContainerServiceNetworkProfile_OutboundType_UserDefinedRouting)) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_ARM(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ARMGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfile_ARMGenerator()) +} + +func Test_DelegatedResource_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource_ARM, DelegatedResource_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource_ARM runs a test to see if a specific instance of DelegatedResource_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource_ARM(subject DelegatedResource_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource_ARM instances for property testing - lazily instantiated by +// DelegatedResource_ARMGenerator() +var delegatedResource_ARMGenerator gopter.Gen + +// DelegatedResource_ARMGenerator returns a generator of DelegatedResource_ARM instances for property testing. +func DelegatedResource_ARMGenerator() gopter.Gen { + if delegatedResource_ARMGenerator != nil { + return delegatedResource_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource_ARM(generators) + delegatedResource_ARMGenerator = gen.Struct(reflect.TypeOf(DelegatedResource_ARM{}), generators) + + return delegatedResource_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource_ARM(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAADProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile_ARM, ManagedClusterAADProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile_ARM runs a test to see if a specific instance of ManagedClusterAADProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile_ARM(subject ManagedClusterAADProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAADProfile_ARMGenerator() +var managedClusterAADProfile_ARMGenerator gopter.Gen + +// ManagedClusterAADProfile_ARMGenerator returns a generator of ManagedClusterAADProfile_ARM instances for property testing. +func ManagedClusterAADProfile_ARMGenerator() gopter.Gen { + if managedClusterAADProfile_ARMGenerator != nil { + return managedClusterAADProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile_ARM(generators) + managedClusterAADProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile_ARM{}), generators) + + return managedClusterAADProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile_ARM(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAddonProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile_ARM, ManagedClusterAddonProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile_ARM runs a test to see if a specific instance of ManagedClusterAddonProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile_ARM(subject ManagedClusterAddonProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAddonProfile_ARMGenerator() +var managedClusterAddonProfile_ARMGenerator gopter.Gen + +// ManagedClusterAddonProfile_ARMGenerator returns a generator of ManagedClusterAddonProfile_ARM instances for property testing. +func ManagedClusterAddonProfile_ARMGenerator() gopter.Gen { + if managedClusterAddonProfile_ARMGenerator != nil { + return managedClusterAddonProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_ARM(generators) + managedClusterAddonProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_ARM{}), generators) + + return managedClusterAddonProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_ARM(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterAgentPoolProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile_ARM, ManagedClusterAgentPoolProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile_ARM runs a test to see if a specific instance of ManagedClusterAgentPoolProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile_ARM(subject ManagedClusterAgentPoolProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfile_ARMGenerator() +var managedClusterAgentPoolProfile_ARMGenerator gopter.Gen + +// ManagedClusterAgentPoolProfile_ARMGenerator returns a generator of ManagedClusterAgentPoolProfile_ARM instances for property testing. +// We first initialize managedClusterAgentPoolProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfile_ARMGenerator() gopter.Gen { + if managedClusterAgentPoolProfile_ARMGenerator != nil { + return managedClusterAgentPoolProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM(generators) + managedClusterAgentPoolProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM(generators) + managedClusterAgentPoolProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_ARM{}), generators) + + return managedClusterAgentPoolProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_MIG1G, + GPUInstanceProfile_MIG2G, + GPUInstanceProfile_MIG3G, + GPUInstanceProfile_MIG4G, + GPUInstanceProfile_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_OS, KubeletDiskType_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_System, AgentPoolMode_User)) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int().Map(func(it int) ContainerServiceOSDisk { + return ContainerServiceOSDisk(it) + })) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_Ephemeral, OSDiskType_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_AzureLinux, + OSSKU_CBLMariner, + OSSKU_Ubuntu, + OSSKU_Windows2019, + OSSKU_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_Linux, OSType_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_Deallocate, ScaleDownMode_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_Deallocate, ScaleSetEvictionPolicy_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_Regular, ScaleSetPriority_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_AvailabilitySet, AgentPoolType_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_OCIContainer, WorkloadRuntime_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_ARM(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_ARMGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_ARMGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_ARMGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_ARMGenerator()) +} + +func Test_ManagedClusterAPIServerAccessProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_ARM, ManagedClusterAPIServerAccessProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_ARM runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_ARM(subject ManagedClusterAPIServerAccessProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfile_ARMGenerator() +var managedClusterAPIServerAccessProfile_ARMGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfile_ARMGenerator returns a generator of ManagedClusterAPIServerAccessProfile_ARM instances for property testing. +func ManagedClusterAPIServerAccessProfile_ARMGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfile_ARMGenerator != nil { + return managedClusterAPIServerAccessProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_ARM(generators) + managedClusterAPIServerAccessProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile_ARM{}), generators) + + return managedClusterAPIServerAccessProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_ARM(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAutoUpgradeProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_ARM, ManagedClusterAutoUpgradeProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_ARM runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_ARM(subject ManagedClusterAutoUpgradeProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfile_ARMGenerator() +var managedClusterAutoUpgradeProfile_ARMGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfile_ARMGenerator returns a generator of ManagedClusterAutoUpgradeProfile_ARM instances for property testing. +func ManagedClusterAutoUpgradeProfile_ARMGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfile_ARMGenerator != nil { + return managedClusterAutoUpgradeProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_ARM(generators) + managedClusterAutoUpgradeProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile_ARM{}), generators) + + return managedClusterAutoUpgradeProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_ARM(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.OneConstOf(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_NodeImage, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_None, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_Unmanaged)) + gens["UpgradeChannel"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_NodeImage, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_None, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Patch, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Rapid, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Stable)) +} + +func Test_ManagedClusterAzureMonitorProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile_ARM, ManagedClusterAzureMonitorProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile_ARM(subject ManagedClusterAzureMonitorProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfile_ARMGenerator() +var managedClusterAzureMonitorProfile_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfile_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfile_ARM instances for property testing. +func ManagedClusterAzureMonitorProfile_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfile_ARMGenerator != nil { + return managedClusterAzureMonitorProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_ARM(generators) + managedClusterAzureMonitorProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile_ARM{}), generators) + + return managedClusterAzureMonitorProfile_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_ARM(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetrics_ARMGenerator()) +} + +func Test_ManagedClusterHTTPProxyConfig_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig_ARM, ManagedClusterHTTPProxyConfig_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig_ARM runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig_ARM(subject ManagedClusterHTTPProxyConfig_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig_ARM instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfig_ARMGenerator() +var managedClusterHTTPProxyConfig_ARMGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfig_ARMGenerator returns a generator of ManagedClusterHTTPProxyConfig_ARM instances for property testing. +func ManagedClusterHTTPProxyConfig_ARMGenerator() gopter.Gen { + if managedClusterHTTPProxyConfig_ARMGenerator != nil { + return managedClusterHTTPProxyConfig_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_ARM(generators) + managedClusterHTTPProxyConfig_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig_ARM{}), generators) + + return managedClusterHTTPProxyConfig_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_ARM(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterOIDCIssuerProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_ARM, ManagedClusterOIDCIssuerProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_ARM runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_ARM(subject ManagedClusterOIDCIssuerProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfile_ARMGenerator() +var managedClusterOIDCIssuerProfile_ARMGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfile_ARMGenerator returns a generator of ManagedClusterOIDCIssuerProfile_ARM instances for property testing. +func ManagedClusterOIDCIssuerProfile_ARMGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfile_ARMGenerator != nil { + return managedClusterOIDCIssuerProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_ARM(generators) + managedClusterOIDCIssuerProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile_ARM{}), generators) + + return managedClusterOIDCIssuerProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterPodIdentityProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile_ARM, ManagedClusterPodIdentityProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile_ARM(subject ManagedClusterPodIdentityProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfile_ARMGenerator() +var managedClusterPodIdentityProfile_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityProfile_ARMGenerator returns a generator of ManagedClusterPodIdentityProfile_ARM instances for property testing. +// We first initialize managedClusterPodIdentityProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfile_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityProfile_ARMGenerator != nil { + return managedClusterPodIdentityProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM(generators) + managedClusterPodIdentityProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM(generators) + managedClusterPodIdentityProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_ARM{}), generators) + + return managedClusterPodIdentityProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_ARM(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentity_ARMGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityException_ARMGenerator()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_ARM, ManagedClusterProperties_AutoScalerProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_ARM runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_ARM(subject ManagedClusterProperties_AutoScalerProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterProperties_AutoScalerProfile_ARMGenerator() +var managedClusterProperties_AutoScalerProfile_ARMGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfile_ARMGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile_ARM instances for property testing. +func ManagedClusterProperties_AutoScalerProfile_ARMGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfile_ARMGenerator != nil { + return managedClusterProperties_AutoScalerProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_ARM(generators) + managedClusterProperties_AutoScalerProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile_ARM{}), generators) + + return managedClusterProperties_AutoScalerProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_ARM(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterProperties_AutoScalerProfile_Expander_LeastWaste, + ManagedClusterProperties_AutoScalerProfile_Expander_MostPods, + ManagedClusterProperties_AutoScalerProfile_Expander_Priority, + ManagedClusterProperties_AutoScalerProfile_Expander_Random)) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile_ARM, ManagedClusterSecurityProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile_ARM(subject ManagedClusterSecurityProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfile_ARMGenerator() +var managedClusterSecurityProfile_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfile_ARMGenerator returns a generator of ManagedClusterSecurityProfile_ARM instances for property testing. +func ManagedClusterSecurityProfile_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfile_ARMGenerator != nil { + return managedClusterSecurityProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_ARM(generators) + managedClusterSecurityProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile_ARM{}), generators) + + return managedClusterSecurityProfile_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_ARM(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKms_ARMGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefender_ARMGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleaner_ARMGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentity_ARMGenerator()) +} + +func Test_ManagedClusterServicePrincipalProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile_ARM, ManagedClusterServicePrincipalProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile_ARM runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile_ARM(subject ManagedClusterServicePrincipalProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfile_ARMGenerator() +var managedClusterServicePrincipalProfile_ARMGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfile_ARMGenerator returns a generator of ManagedClusterServicePrincipalProfile_ARM instances for property testing. +func ManagedClusterServicePrincipalProfile_ARMGenerator() gopter.Gen { + if managedClusterServicePrincipalProfile_ARMGenerator != nil { + return managedClusterServicePrincipalProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_ARM(generators) + managedClusterServicePrincipalProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile_ARM{}), generators) + + return managedClusterServicePrincipalProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["Secret"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterStorageProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile_ARM, ManagedClusterStorageProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile_ARM runs a test to see if a specific instance of ManagedClusterStorageProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile_ARM(subject ManagedClusterStorageProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterStorageProfile_ARMGenerator() +var managedClusterStorageProfile_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfile_ARMGenerator returns a generator of ManagedClusterStorageProfile_ARM instances for property testing. +func ManagedClusterStorageProfile_ARMGenerator() gopter.Gen { + if managedClusterStorageProfile_ARMGenerator != nil { + return managedClusterStorageProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_ARM(generators) + managedClusterStorageProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile_ARM{}), generators) + + return managedClusterStorageProfile_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_ARM(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriver_ARMGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriver_ARMGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriver_ARMGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotController_ARMGenerator()) +} + +func Test_ManagedClusterWindowsProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile_ARM, ManagedClusterWindowsProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile_ARM runs a test to see if a specific instance of ManagedClusterWindowsProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile_ARM(subject ManagedClusterWindowsProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfile_ARMGenerator() +var managedClusterWindowsProfile_ARMGenerator gopter.Gen + +// ManagedClusterWindowsProfile_ARMGenerator returns a generator of ManagedClusterWindowsProfile_ARM instances for property testing. +// We first initialize managedClusterWindowsProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfile_ARMGenerator() gopter.Gen { + if managedClusterWindowsProfile_ARMGenerator != nil { + return managedClusterWindowsProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_ARM(generators) + managedClusterWindowsProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_ARM(generators) + managedClusterWindowsProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_ARM{}), generators) + + return managedClusterWindowsProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_ARM(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterWindowsProfile_LicenseType_None, ManagedClusterWindowsProfile_LicenseType_Windows_Server)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_ARM(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfile_ARMGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_ARM, ManagedClusterWorkloadAutoScalerProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_ARM(subject ManagedClusterWorkloadAutoScalerProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfile_ARMGenerator() +var managedClusterWorkloadAutoScalerProfile_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfile_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfile_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfile_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_ARM(generators) + managedClusterWorkloadAutoScalerProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfile_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_ARM(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKeda_ARMGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator()) +} + +func Test_PrivateLinkResource_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource_ARM, PrivateLinkResource_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource_ARM runs a test to see if a specific instance of PrivateLinkResource_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource_ARM(subject PrivateLinkResource_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource_ARM instances for property testing - lazily instantiated by +// PrivateLinkResource_ARMGenerator() +var privateLinkResource_ARMGenerator gopter.Gen + +// PrivateLinkResource_ARMGenerator returns a generator of PrivateLinkResource_ARM instances for property testing. +func PrivateLinkResource_ARMGenerator() gopter.Gen { + if privateLinkResource_ARMGenerator != nil { + return privateLinkResource_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource_ARM(generators) + privateLinkResource_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource_ARM{}), generators) + + return privateLinkResource_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource_ARM(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ServiceMeshProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile_ARM, ServiceMeshProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile_ARM runs a test to see if a specific instance of ServiceMeshProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile_ARM(subject ServiceMeshProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile_ARM instances for property testing - lazily instantiated by +// ServiceMeshProfile_ARMGenerator() +var serviceMeshProfile_ARMGenerator gopter.Gen + +// ServiceMeshProfile_ARMGenerator returns a generator of ServiceMeshProfile_ARM instances for property testing. +// We first initialize serviceMeshProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfile_ARMGenerator() gopter.Gen { + if serviceMeshProfile_ARMGenerator != nil { + return serviceMeshProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_ARM(generators) + serviceMeshProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_ARM(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile_ARM(generators) + serviceMeshProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_ARM{}), generators) + + return serviceMeshProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile_ARM(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.OneConstOf(ServiceMeshProfile_Mode_Disabled, ServiceMeshProfile_Mode_Istio)) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile_ARM(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMesh_ARMGenerator()) +} + +func Test_UserAssignedIdentity_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity_ARM, UserAssignedIdentity_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity_ARM runs a test to see if a specific instance of UserAssignedIdentity_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity_ARM(subject UserAssignedIdentity_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity_ARM instances for property testing - lazily instantiated by +// UserAssignedIdentity_ARMGenerator() +var userAssignedIdentity_ARMGenerator gopter.Gen + +// UserAssignedIdentity_ARMGenerator returns a generator of UserAssignedIdentity_ARM instances for property testing. +func UserAssignedIdentity_ARMGenerator() gopter.Gen { + if userAssignedIdentity_ARMGenerator != nil { + return userAssignedIdentity_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity_ARM(generators) + userAssignedIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity_ARM{}), generators) + + return userAssignedIdentity_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentityDetails_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails_ARM, UserAssignedIdentityDetails_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails_ARM runs a test to see if a specific instance of UserAssignedIdentityDetails_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails_ARM(subject UserAssignedIdentityDetails_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentityDetails_ARM instances for property testing - lazily instantiated by +// UserAssignedIdentityDetails_ARMGenerator() +var userAssignedIdentityDetails_ARMGenerator gopter.Gen + +// UserAssignedIdentityDetails_ARMGenerator returns a generator of UserAssignedIdentityDetails_ARM instances for property testing. +func UserAssignedIdentityDetails_ARMGenerator() gopter.Gen { + if userAssignedIdentityDetails_ARMGenerator != nil { + return userAssignedIdentityDetails_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetails_ARMGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails_ARM{}), generators) + + return userAssignedIdentityDetails_ARMGenerator +} + +func Test_AzureKeyVaultKms_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms_ARM, AzureKeyVaultKms_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms_ARM runs a test to see if a specific instance of AzureKeyVaultKms_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms_ARM(subject AzureKeyVaultKms_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms_ARM instances for property testing - lazily instantiated by +// AzureKeyVaultKms_ARMGenerator() +var azureKeyVaultKms_ARMGenerator gopter.Gen + +// AzureKeyVaultKms_ARMGenerator returns a generator of AzureKeyVaultKms_ARM instances for property testing. +func AzureKeyVaultKms_ARMGenerator() gopter.Gen { + if azureKeyVaultKms_ARMGenerator != nil { + return azureKeyVaultKms_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms_ARM(generators) + azureKeyVaultKms_ARMGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms_ARM{}), generators) + + return azureKeyVaultKms_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureKeyVaultKms_KeyVaultNetworkAccess_Private, AzureKeyVaultKms_KeyVaultNetworkAccess_Public)) + gens["KeyVaultResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshConfiguration_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration_ARM, ContainerServiceSshConfiguration_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration_ARM runs a test to see if a specific instance of ContainerServiceSshConfiguration_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration_ARM(subject ContainerServiceSshConfiguration_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration_ARM instances for property testing - lazily instantiated by +// ContainerServiceSshConfiguration_ARMGenerator() +var containerServiceSshConfiguration_ARMGenerator gopter.Gen + +// ContainerServiceSshConfiguration_ARMGenerator returns a generator of ContainerServiceSshConfiguration_ARM instances for property testing. +func ContainerServiceSshConfiguration_ARMGenerator() gopter.Gen { + if containerServiceSshConfiguration_ARMGenerator != nil { + return containerServiceSshConfiguration_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_ARM(generators) + containerServiceSshConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration_ARM{}), generators) + + return containerServiceSshConfiguration_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_ARM(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_ARMGenerator()) +} + +func Test_IstioServiceMesh_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh_ARM, IstioServiceMesh_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh_ARM runs a test to see if a specific instance of IstioServiceMesh_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh_ARM(subject IstioServiceMesh_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh_ARM instances for property testing - lazily instantiated by +// IstioServiceMesh_ARMGenerator() +var istioServiceMesh_ARMGenerator gopter.Gen + +// IstioServiceMesh_ARMGenerator returns a generator of IstioServiceMesh_ARM instances for property testing. +// We first initialize istioServiceMesh_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMesh_ARMGenerator() gopter.Gen { + if istioServiceMesh_ARMGenerator != nil { + return istioServiceMesh_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_ARM(generators) + istioServiceMesh_ARMGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_ARM(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh_ARM(generators) + istioServiceMesh_ARMGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_ARM{}), generators) + + return istioServiceMesh_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh_ARM(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh_ARM(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthority_ARMGenerator()) + gens["Components"] = gen.PtrOf(IstioComponents_ARMGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_ARM, ManagedClusterAzureMonitorProfileMetrics_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_ARM(subject ManagedClusterAzureMonitorProfileMetrics_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics_ARM instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileMetrics_ARMGenerator() +var managedClusterAzureMonitorProfileMetrics_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetrics_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics_ARM instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetrics_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetrics_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetrics_ARMGenerator != nil { + return managedClusterAzureMonitorProfileMetrics_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM(generators) + managedClusterAzureMonitorProfileMetrics_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM(generators) + managedClusterAzureMonitorProfileMetrics_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_ARM{}), generators) + + return managedClusterAzureMonitorProfileMetrics_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_ARM(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ARM, ManagedClusterLoadBalancerProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ARM(subject ManagedClusterLoadBalancerProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_ARMGenerator() +var managedClusterLoadBalancerProfile_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_ARM instances for property testing. +// We first initialize managedClusterLoadBalancerProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfile_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM(generators) + managedClusterLoadBalancerProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM(generators) + managedClusterLoadBalancerProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ARM{}), generators) + + return managedClusterLoadBalancerProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIP, ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIPConfiguration)) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_ARM(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_ARMGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile_ARM, ManagedClusterNATGatewayProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile_ARM runs a test to see if a specific instance of ManagedClusterNATGatewayProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile_ARM(subject ManagedClusterNATGatewayProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfile_ARMGenerator() +var managedClusterNATGatewayProfile_ARMGenerator gopter.Gen + +// ManagedClusterNATGatewayProfile_ARMGenerator returns a generator of ManagedClusterNATGatewayProfile_ARM instances for property testing. +// We first initialize managedClusterNATGatewayProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfile_ARMGenerator() gopter.Gen { + if managedClusterNATGatewayProfile_ARMGenerator != nil { + return managedClusterNATGatewayProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM(generators) + managedClusterNATGatewayProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM(generators) + managedClusterNATGatewayProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_ARM{}), generators) + + return managedClusterNATGatewayProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_ARM(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_ARMGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentity_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_ARM, ManagedClusterPodIdentity_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_ARM runs a test to see if a specific instance of ManagedClusterPodIdentity_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_ARM(subject ManagedClusterPodIdentity_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentity_ARMGenerator() +var managedClusterPodIdentity_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentity_ARMGenerator returns a generator of ManagedClusterPodIdentity_ARM instances for property testing. +// We first initialize managedClusterPodIdentity_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentity_ARMGenerator() gopter.Gen { + if managedClusterPodIdentity_ARMGenerator != nil { + return managedClusterPodIdentity_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_ARM(generators) + managedClusterPodIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ARM(generators) + managedClusterPodIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_ARM{}), generators) + + return managedClusterPodIdentity_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_ARM(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ARM(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentityException_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException_ARM, ManagedClusterPodIdentityException_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityException_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException_ARM(subject ManagedClusterPodIdentityException_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityException_ARMGenerator() +var managedClusterPodIdentityException_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityException_ARMGenerator returns a generator of ManagedClusterPodIdentityException_ARM instances for property testing. +func ManagedClusterPodIdentityException_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityException_ARMGenerator != nil { + return managedClusterPodIdentityException_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_ARM(generators) + managedClusterPodIdentityException_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException_ARM{}), generators) + + return managedClusterPodIdentityException_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfileDefender_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender_ARM, ManagedClusterSecurityProfileDefender_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender_ARM(subject ManagedClusterSecurityProfileDefender_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender_ARM instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefender_ARMGenerator() +var managedClusterSecurityProfileDefender_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefender_ARMGenerator returns a generator of ManagedClusterSecurityProfileDefender_ARM instances for property testing. +// We first initialize managedClusterSecurityProfileDefender_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterSecurityProfileDefender_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileDefender_ARMGenerator != nil { + return managedClusterSecurityProfileDefender_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM(generators) + managedClusterSecurityProfileDefender_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM(generators) + managedClusterSecurityProfileDefender_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_ARM{}), generators) + + return managedClusterSecurityProfileDefender_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM(gens map[string]gopter.Gen) { + gens["LogAnalyticsWorkspaceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_ARM(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_ARM, ManagedClusterSecurityProfileImageCleaner_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_ARM(subject ManagedClusterSecurityProfileImageCleaner_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner_ARM instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileImageCleaner_ARMGenerator() +var managedClusterSecurityProfileImageCleaner_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleaner_ARMGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner_ARM instances for property testing. +func ManagedClusterSecurityProfileImageCleaner_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleaner_ARMGenerator != nil { + return managedClusterSecurityProfileImageCleaner_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_ARM(generators) + managedClusterSecurityProfileImageCleaner_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner_ARM{}), generators) + + return managedClusterSecurityProfileImageCleaner_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_ARM, ManagedClusterSecurityProfileWorkloadIdentity_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_ARM(subject ManagedClusterSecurityProfileWorkloadIdentity_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity_ARM instances for property testing - lazily instantiated +// by ManagedClusterSecurityProfileWorkloadIdentity_ARMGenerator() +var managedClusterSecurityProfileWorkloadIdentity_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentity_ARMGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity_ARM instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentity_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentity_ARMGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentity_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_ARM(generators) + managedClusterSecurityProfileWorkloadIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity_ARM{}), generators) + + return managedClusterSecurityProfileWorkloadIdentity_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_ARM, ManagedClusterStorageProfileBlobCSIDriver_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_ARM(subject ManagedClusterStorageProfileBlobCSIDriver_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver_ARM instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileBlobCSIDriver_ARMGenerator() +var managedClusterStorageProfileBlobCSIDriver_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriver_ARMGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver_ARM instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriver_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriver_ARMGenerator != nil { + return managedClusterStorageProfileBlobCSIDriver_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_ARM(generators) + managedClusterStorageProfileBlobCSIDriver_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver_ARM{}), generators) + + return managedClusterStorageProfileBlobCSIDriver_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_ARM, ManagedClusterStorageProfileDiskCSIDriver_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_ARM(subject ManagedClusterStorageProfileDiskCSIDriver_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver_ARM instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileDiskCSIDriver_ARMGenerator() +var managedClusterStorageProfileDiskCSIDriver_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriver_ARMGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver_ARM instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriver_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriver_ARMGenerator != nil { + return managedClusterStorageProfileDiskCSIDriver_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_ARM(generators) + managedClusterStorageProfileDiskCSIDriver_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver_ARM{}), generators) + + return managedClusterStorageProfileDiskCSIDriver_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_ARM, ManagedClusterStorageProfileFileCSIDriver_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_ARM(subject ManagedClusterStorageProfileFileCSIDriver_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver_ARM instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileFileCSIDriver_ARMGenerator() +var managedClusterStorageProfileFileCSIDriver_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriver_ARMGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver_ARM instances for property testing. +func ManagedClusterStorageProfileFileCSIDriver_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriver_ARMGenerator != nil { + return managedClusterStorageProfileFileCSIDriver_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_ARM(generators) + managedClusterStorageProfileFileCSIDriver_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver_ARM{}), generators) + + return managedClusterStorageProfileFileCSIDriver_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_ARM, ManagedClusterStorageProfileSnapshotController_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_ARM(subject ManagedClusterStorageProfileSnapshotController_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController_ARM instances for property testing - lazily instantiated +// by ManagedClusterStorageProfileSnapshotController_ARMGenerator() +var managedClusterStorageProfileSnapshotController_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotController_ARMGenerator returns a generator of ManagedClusterStorageProfileSnapshotController_ARM instances for property testing. +func ManagedClusterStorageProfileSnapshotController_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotController_ARMGenerator != nil { + return managedClusterStorageProfileSnapshotController_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_ARM(generators) + managedClusterStorageProfileSnapshotController_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController_ARM{}), generators) + + return managedClusterStorageProfileSnapshotController_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_ARM, ManagedClusterWorkloadAutoScalerProfileKeda_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_ARM(subject ManagedClusterWorkloadAutoScalerProfileKeda_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda_ARM instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfileKeda_ARMGenerator() +var managedClusterWorkloadAutoScalerProfileKeda_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKeda_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKeda_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKeda_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKeda_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_ARM(generators) + managedClusterWorkloadAutoScalerProfileKeda_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfileKeda_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM instances for property testing - lazily +// instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_UpgradeOverrideSettings_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings_ARM, UpgradeOverrideSettings_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings_ARM runs a test to see if a specific instance of UpgradeOverrideSettings_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings_ARM(subject UpgradeOverrideSettings_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings_ARM instances for property testing - lazily instantiated by +// UpgradeOverrideSettings_ARMGenerator() +var upgradeOverrideSettings_ARMGenerator gopter.Gen + +// UpgradeOverrideSettings_ARMGenerator returns a generator of UpgradeOverrideSettings_ARM instances for property testing. +func UpgradeOverrideSettings_ARMGenerator() gopter.Gen { + if upgradeOverrideSettings_ARMGenerator != nil { + return upgradeOverrideSettings_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_ARM(generators) + upgradeOverrideSettings_ARMGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings_ARM{}), generators) + + return upgradeOverrideSettings_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_ARM(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_WindowsGmsaProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile_ARM, WindowsGmsaProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile_ARM runs a test to see if a specific instance of WindowsGmsaProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile_ARM(subject WindowsGmsaProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile_ARM instances for property testing - lazily instantiated by +// WindowsGmsaProfile_ARMGenerator() +var windowsGmsaProfile_ARMGenerator gopter.Gen + +// WindowsGmsaProfile_ARMGenerator returns a generator of WindowsGmsaProfile_ARM instances for property testing. +func WindowsGmsaProfile_ARMGenerator() gopter.Gen { + if windowsGmsaProfile_ARMGenerator != nil { + return windowsGmsaProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile_ARM(generators) + windowsGmsaProfile_ARMGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile_ARM{}), generators) + + return windowsGmsaProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile_ARM(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey_ARM, ContainerServiceSshPublicKey_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey_ARM runs a test to see if a specific instance of ContainerServiceSshPublicKey_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey_ARM(subject ContainerServiceSshPublicKey_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey_ARM instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKey_ARMGenerator() +var containerServiceSshPublicKey_ARMGenerator gopter.Gen + +// ContainerServiceSshPublicKey_ARMGenerator returns a generator of ContainerServiceSshPublicKey_ARM instances for property testing. +func ContainerServiceSshPublicKey_ARMGenerator() gopter.Gen { + if containerServiceSshPublicKey_ARMGenerator != nil { + return containerServiceSshPublicKey_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_ARM(generators) + containerServiceSshPublicKey_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey_ARM{}), generators) + + return containerServiceSshPublicKey_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_ARM(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioCertificateAuthority_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority_ARM, IstioCertificateAuthority_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority_ARM runs a test to see if a specific instance of IstioCertificateAuthority_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority_ARM(subject IstioCertificateAuthority_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority_ARM instances for property testing - lazily instantiated by +// IstioCertificateAuthority_ARMGenerator() +var istioCertificateAuthority_ARMGenerator gopter.Gen + +// IstioCertificateAuthority_ARMGenerator returns a generator of IstioCertificateAuthority_ARM instances for property testing. +func IstioCertificateAuthority_ARMGenerator() gopter.Gen { + if istioCertificateAuthority_ARMGenerator != nil { + return istioCertificateAuthority_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority_ARM(generators) + istioCertificateAuthority_ARMGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority_ARM{}), generators) + + return istioCertificateAuthority_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority_ARM(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthority_ARMGenerator()) +} + +func Test_IstioComponents_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents_ARM, IstioComponents_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents_ARM runs a test to see if a specific instance of IstioComponents_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents_ARM(subject IstioComponents_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents_ARM instances for property testing - lazily instantiated by +// IstioComponents_ARMGenerator() +var istioComponents_ARMGenerator gopter.Gen + +// IstioComponents_ARMGenerator returns a generator of IstioComponents_ARM instances for property testing. +func IstioComponents_ARMGenerator() gopter.Gen { + if istioComponents_ARMGenerator != nil { + return istioComponents_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents_ARM(generators) + istioComponents_ARMGenerator = gen.Struct(reflect.TypeOf(IstioComponents_ARM{}), generators) + + return istioComponents_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents_ARM(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGateway_ARMGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGateway_ARMGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM, ManagedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM instances for property testing - lazily +// instantiated by ManagedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator() +var managedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM(generators) + managedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetrics_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_ARM(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReference_ARMGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_ARM, ManagedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_ARM(subject ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs_ARM instances for property testing - lazily instantiated +// by ManagedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator() +var managedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_ARM(generators) + managedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs_ARM{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPs_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_ARM(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReference_ARMGenerator()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_ARM, ManagedClusterManagedOutboundIPProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_ARM runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_ARM(subject ManagedClusterManagedOutboundIPProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile_ARM instances for property testing - lazily instantiated by +// ManagedClusterManagedOutboundIPProfile_ARMGenerator() +var managedClusterManagedOutboundIPProfile_ARMGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfile_ARMGenerator returns a generator of ManagedClusterManagedOutboundIPProfile_ARM instances for property testing. +func ManagedClusterManagedOutboundIPProfile_ARMGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfile_ARMGenerator != nil { + return managedClusterManagedOutboundIPProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_ARM(generators) + managedClusterManagedOutboundIPProfile_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile_ARM{}), generators) + + return managedClusterManagedOutboundIPProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_ARM(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM, ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM(generators) + managedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoring_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ResourceReference_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference_ARM, ResourceReference_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference_ARM runs a test to see if a specific instance of ResourceReference_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference_ARM(subject ResourceReference_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference_ARM instances for property testing - lazily instantiated by +// ResourceReference_ARMGenerator() +var resourceReference_ARMGenerator gopter.Gen + +// ResourceReference_ARMGenerator returns a generator of ResourceReference_ARM instances for property testing. +func ResourceReference_ARMGenerator() gopter.Gen { + if resourceReference_ARMGenerator != nil { + return resourceReference_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForResourceReference_ARM(generators) + resourceReference_ARMGenerator = gen.Struct(reflect.TypeOf(ResourceReference_ARM{}), generators) + + return resourceReference_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForResourceReference_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForResourceReference_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioEgressGateway_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway_ARM, IstioEgressGateway_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway_ARM runs a test to see if a specific instance of IstioEgressGateway_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway_ARM(subject IstioEgressGateway_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway_ARM instances for property testing - lazily instantiated by +// IstioEgressGateway_ARMGenerator() +var istioEgressGateway_ARMGenerator gopter.Gen + +// IstioEgressGateway_ARMGenerator returns a generator of IstioEgressGateway_ARM instances for property testing. +func IstioEgressGateway_ARMGenerator() gopter.Gen { + if istioEgressGateway_ARMGenerator != nil { + return istioEgressGateway_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway_ARM(generators) + istioEgressGateway_ARMGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway_ARM{}), generators) + + return istioEgressGateway_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioIngressGateway_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway_ARM, IstioIngressGateway_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway_ARM runs a test to see if a specific instance of IstioIngressGateway_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway_ARM(subject IstioIngressGateway_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway_ARM instances for property testing - lazily instantiated by +// IstioIngressGateway_ARMGenerator() +var istioIngressGateway_ARMGenerator gopter.Gen + +// IstioIngressGateway_ARMGenerator returns a generator of IstioIngressGateway_ARM instances for property testing. +func IstioIngressGateway_ARMGenerator() gopter.Gen { + if istioIngressGateway_ARMGenerator != nil { + return istioIngressGateway_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway_ARM(generators) + istioIngressGateway_ARMGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway_ARM{}), generators) + + return istioIngressGateway_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(IstioIngressGateway_Mode_External, IstioIngressGateway_Mode_Internal)) +} + +func Test_IstioPluginCertificateAuthority_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority_ARM, IstioPluginCertificateAuthority_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority_ARM runs a test to see if a specific instance of IstioPluginCertificateAuthority_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority_ARM(subject IstioPluginCertificateAuthority_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority_ARM instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthority_ARMGenerator() +var istioPluginCertificateAuthority_ARMGenerator gopter.Gen + +// IstioPluginCertificateAuthority_ARMGenerator returns a generator of IstioPluginCertificateAuthority_ARM instances for property testing. +func IstioPluginCertificateAuthority_ARMGenerator() gopter.Gen { + if istioPluginCertificateAuthority_ARMGenerator != nil { + return istioPluginCertificateAuthority_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_ARM(generators) + istioPluginCertificateAuthority_ARMGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority_ARM{}), generators) + + return istioPluginCertificateAuthority_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_ARM(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen.go b/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen.go new file mode 100644 index 00000000000..3b247479ce7 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen.go @@ -0,0 +1,1229 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +// Managed cluster. +type ManagedCluster_STATUS_ARM struct { + // ExtendedLocation: The extended location of the Virtual Machine. + ExtendedLocation *ExtendedLocation_STATUS_ARM `json:"extendedLocation,omitempty"` + + // Id: Fully qualified resource ID for the resource. E.g. + // "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + Id *string `json:"id,omitempty"` + + // Identity: The identity of the managed cluster, if configured. + Identity *ManagedClusterIdentity_STATUS_ARM `json:"identity,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // Properties: Properties of a managed cluster. + Properties *ManagedClusterProperties_STATUS_ARM `json:"properties,omitempty"` + + // Sku: The managed cluster SKU. + Sku *ManagedClusterSKU_STATUS_ARM `json:"sku,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS_ARM `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// The complex type of the extended location. +type ExtendedLocation_STATUS_ARM struct { + // Name: The name of the extended location. + Name *string `json:"name,omitempty"` + + // Type: The type of the extended location. + Type *ExtendedLocationType_STATUS `json:"type,omitempty"` +} + +// Identity for the managed cluster. +type ManagedClusterIdentity_STATUS_ARM struct { + // DelegatedResources: The delegated identity resources assigned to this managed cluster. This can only be set by another + // Azure Resource Provider, and managed cluster only accept one delegated identity resource. Internal use only. + DelegatedResources map[string]DelegatedResource_STATUS_ARM `json:"delegatedResources"` + + // PrincipalId: The principal id of the system assigned identity which is used by master components. + PrincipalId *string `json:"principalId,omitempty"` + + // TenantId: The tenant id of the system assigned identity which is used by master components. + TenantId *string `json:"tenantId,omitempty"` + + // Type: For more information see [use managed identities in + // AKS](https://docs.microsoft.com/azure/aks/use-managed-identity). + Type *ManagedClusterIdentity_Type_STATUS `json:"type,omitempty"` + + // UserAssignedIdentities: The keys must be ARM resource IDs in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM `json:"userAssignedIdentities"` +} + +// Properties of the managed cluster. +type ManagedClusterProperties_STATUS_ARM struct { + // AadProfile: The Azure Active Directory configuration. + AadProfile *ManagedClusterAADProfile_STATUS_ARM `json:"aadProfile,omitempty"` + + // AddonProfiles: The profile of managed cluster add-on. + AddonProfiles map[string]ManagedClusterAddonProfile_STATUS_ARM `json:"addonProfiles"` + + // AgentPoolProfiles: The agent pool properties. + AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS_ARM `json:"agentPoolProfiles"` + + // ApiServerAccessProfile: The access profile for managed cluster API server. + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS_ARM `json:"apiServerAccessProfile,omitempty"` + + // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS_ARM `json:"autoScalerProfile,omitempty"` + + // AutoUpgradeProfile: The auto upgrade configuration. + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS_ARM `json:"autoUpgradeProfile,omitempty"` + + // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS_ARM `json:"azureMonitorProfile,omitempty"` + + // AzurePortalFQDN: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some + // responses, which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure + // Portal to function properly. + AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` + + // CurrentKubernetesVersion: If kubernetesVersion was a fully specified version , this field will be + // exactly equal to it. If kubernetesVersion was , this field will contain the full + // version being used. + CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` + + // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be + // used on Managed Clusters that are AAD enabled. For more details see [disable local + // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + + // DiskEncryptionSetID: This is of the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` + + // DnsPrefix: This cannot be updated once the Managed Cluster has been created. + DnsPrefix *string `json:"dnsPrefix,omitempty"` + + // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was + // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and + // https://aka.ms/aks/psp. + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + + // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. + EnableRBAC *bool `json:"enableRBAC,omitempty"` + + // Fqdn: The FQDN of the master pool. + Fqdn *string `json:"fqdn,omitempty"` + + // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + + // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. + HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS_ARM `json:"httpProxyConfig,omitempty"` + + // IdentityProfile: Identities associated with the cluster. + IdentityProfile map[string]UserAssignedIdentity_STATUS_ARM `json:"identityProfile"` + + // KubernetesVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All + // upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or + // 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS + // cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details. + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + + // LinuxProfile: The profile for Linux VMs in the Managed Cluster. + LinuxProfile *ContainerServiceLinuxProfile_STATUS_ARM `json:"linuxProfile,omitempty"` + + // MaxAgentPools: The max number of agent pools for the managed cluster. + MaxAgentPools *int `json:"maxAgentPools,omitempty"` + + // NetworkProfile: The network configuration profile. + NetworkProfile *ContainerServiceNetworkProfile_STATUS_ARM `json:"networkProfile,omitempty"` + + // NodeResourceGroup: The name of the resource group containing agent pool nodes. + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + + // OidcIssuerProfile: The OIDC issuer profile of the Managed Cluster. + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_STATUS_ARM `json:"oidcIssuerProfile,omitempty"` + + // PodIdentityProfile: See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more + // details on AAD pod identity integration. + PodIdentityProfile *ManagedClusterPodIdentityProfile_STATUS_ARM `json:"podIdentityProfile,omitempty"` + + // PowerState: The Power State of the cluster. + PowerState *PowerState_STATUS_ARM `json:"powerState,omitempty"` + + // PrivateFQDN: The FQDN of private cluster. + PrivateFQDN *string `json:"privateFQDN,omitempty"` + + // PrivateLinkResources: Private link resources associated with the cluster. + PrivateLinkResources []PrivateLinkResource_STATUS_ARM `json:"privateLinkResources"` + + // ProvisioningState: The current provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // PublicNetworkAccess: Allow or deny public network access for AKS + PublicNetworkAccess *ManagedClusterProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"` + + // ResourceUID: The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds (i.e: create, delete, create + // sequence) + ResourceUID *string `json:"resourceUID,omitempty"` + + // SecurityProfile: Security profile for the managed cluster. + SecurityProfile *ManagedClusterSecurityProfile_STATUS_ARM `json:"securityProfile,omitempty"` + + // ServiceMeshProfile: Service mesh profile for a managed cluster. + ServiceMeshProfile *ServiceMeshProfile_STATUS_ARM `json:"serviceMeshProfile,omitempty"` + + // ServicePrincipalProfile: Information about a service principal identity for the cluster to use for manipulating Azure + // APIs. + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_STATUS_ARM `json:"servicePrincipalProfile,omitempty"` + + // StorageProfile: Storage profile for the managed cluster. + StorageProfile *ManagedClusterStorageProfile_STATUS_ARM `json:"storageProfile,omitempty"` + + // SupportPlan: The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'. + SupportPlan *KubernetesSupportPlan_STATUS `json:"supportPlan,omitempty"` + + // UpgradeSettings: Settings for upgrading a cluster. + UpgradeSettings *ClusterUpgradeSettings_STATUS_ARM `json:"upgradeSettings,omitempty"` + + // WindowsProfile: The profile for Windows VMs in the Managed Cluster. + WindowsProfile *ManagedClusterWindowsProfile_STATUS_ARM `json:"windowsProfile,omitempty"` + + // WorkloadAutoScalerProfile: Workload Auto-scaler profile for the managed cluster. + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM `json:"workloadAutoScalerProfile,omitempty"` +} + +// The SKU of a Managed Cluster. +type ManagedClusterSKU_STATUS_ARM struct { + // Name: The name of a managed cluster SKU. + Name *ManagedClusterSKU_Name_STATUS `json:"name,omitempty"` + + // Tier: If not specified, the default is 'Free'. See [AKS Pricing + // Tier](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for more details. + Tier *ManagedClusterSKU_Tier_STATUS `json:"tier,omitempty"` +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS_ARM struct { + // CreatedAt: The timestamp of resource creation (UTC). + CreatedAt *string `json:"createdAt,omitempty"` + + // CreatedBy: The identity that created the resource. + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedByType: The type of identity that created the resource. + CreatedByType *SystemData_CreatedByType_STATUS `json:"createdByType,omitempty"` + + // LastModifiedAt: The timestamp of resource last modification (UTC) + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + + // LastModifiedBy: The identity that last modified the resource. + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + + // LastModifiedByType: The type of identity that last modified the resource. + LastModifiedByType *SystemData_LastModifiedByType_STATUS `json:"lastModifiedByType,omitempty"` +} + +// Settings for upgrading a cluster. +type ClusterUpgradeSettings_STATUS_ARM struct { + // OverrideSettings: Settings for overrides. + OverrideSettings *UpgradeOverrideSettings_STATUS_ARM `json:"overrideSettings,omitempty"` +} + +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile_STATUS_ARM struct { + // AdminUsername: The administrator username to use for Linux VMs. + AdminUsername *string `json:"adminUsername,omitempty"` + + // Ssh: The SSH configuration for Linux-based VMs running on Azure. + Ssh *ContainerServiceSshConfiguration_STATUS_ARM `json:"ssh,omitempty"` +} + +// Profile of network configuration. +type ContainerServiceNetworkProfile_STATUS_ARM struct { + // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address + // range specified in serviceCidr. + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + + // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value + // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. + IpFamilies []ContainerServiceNetworkProfile_IpFamilies_STATUS `json:"ipFamilies"` + + // LoadBalancerProfile: Profile of the cluster load balancer. + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS_ARM `json:"loadBalancerProfile,omitempty"` + + // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer + // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load + // balancer SKUs. + LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku_STATUS `json:"loadBalancerSku,omitempty"` + + // NatGatewayProfile: Profile of the cluster NAT gateway. + NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS_ARM `json:"natGatewayProfile,omitempty"` + + // NetworkDataplane: Network dataplane used in the Kubernetes cluster. + NetworkDataplane *ContainerServiceNetworkProfile_NetworkDataplane_STATUS `json:"networkDataplane,omitempty"` + + // NetworkMode: This cannot be specified if networkPlugin is anything other than 'azure'. + NetworkMode *ContainerServiceNetworkProfile_NetworkMode_STATUS `json:"networkMode,omitempty"` + + // NetworkPlugin: Network plugin used for building the Kubernetes network. + NetworkPlugin *ContainerServiceNetworkProfile_NetworkPlugin_STATUS `json:"networkPlugin,omitempty"` + + // NetworkPluginMode: The mode the network plugin should use. + NetworkPluginMode *ContainerServiceNetworkProfile_NetworkPluginMode_STATUS `json:"networkPluginMode,omitempty"` + + // NetworkPolicy: Network policy used for building the Kubernetes network. + NetworkPolicy *ContainerServiceNetworkProfile_NetworkPolicy_STATUS `json:"networkPolicy,omitempty"` + + // OutboundType: This can only be set at cluster creation time and cannot be changed later. For more information see + // [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype). + OutboundType *ContainerServiceNetworkProfile_OutboundType_STATUS `json:"outboundType,omitempty"` + + // PodCidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + PodCidr *string `json:"podCidr,omitempty"` + + // PodCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. + PodCidrs []string `json:"podCidrs"` + + // ServiceCidr: A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP + // ranges. + ServiceCidr *string `json:"serviceCidr,omitempty"` + + // ServiceCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. They must not overlap with any Subnet IP ranges. + ServiceCidrs []string `json:"serviceCidrs"` +} + +// Delegated resource properties - internal use only. +type DelegatedResource_STATUS_ARM struct { + // Location: The source resource location - internal use only. + Location *string `json:"location,omitempty"` + + // ReferralResource: The delegation id of the referral delegation (optional) - internal use only. + ReferralResource *string `json:"referralResource,omitempty"` + + // ResourceId: The ARM resource id of the delegated resource - internal use only. + ResourceId *string `json:"resourceId,omitempty"` + + // TenantId: The tenant id of the delegated resource - internal use only. + TenantId *string `json:"tenantId,omitempty"` +} + +// The type of extendedLocation. +type ExtendedLocationType_STATUS string + +const ExtendedLocationType_STATUS_EdgeZone = ExtendedLocationType_STATUS("EdgeZone") + +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile_STATUS_ARM struct { + // AdminGroupObjectIDs: The list of AAD group object IDs that will have admin role of the cluster. + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs"` + + // ClientAppID: (DEPRECATED) The client AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ClientAppID *string `json:"clientAppID,omitempty"` + + // EnableAzureRBAC: Whether to enable Azure RBAC for Kubernetes authorization. + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + + // Managed: Whether to enable managed AAD. + Managed *bool `json:"managed,omitempty"` + + // ServerAppID: (DEPRECATED) The server AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppID *string `json:"serverAppID,omitempty"` + + // ServerAppSecret: (DEPRECATED) The server AAD application secret. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + + // TenantID: The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment + // subscription. + TenantID *string `json:"tenantID,omitempty"` +} + +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile_STATUS_ARM struct { + // Config: Key-value pairs for configuring an add-on. + Config map[string]string `json:"config"` + + // Enabled: Whether the add-on is enabled or not. + Enabled *bool `json:"enabled,omitempty"` + + // Identity: Information of user assigned identity used by this add-on. + Identity *UserAssignedIdentity_STATUS_ARM `json:"identity,omitempty"` +} + +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile_STATUS_ARM struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones"` + + // CapacityReservationGroupID: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_STATUS_ARM `json:"creationData,omitempty"` + + // CurrentOrchestratorVersion: If orchestratorVersion is a fully specified version , this field will be + // exactly equal to it. If orchestratorVersion is , this field will contain the full + // version being used. + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile_STATUS `json:"gpuInstanceProfile,omitempty"` + + // HostGroupID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupID *string `json:"hostGroupID,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_STATUS_ARM `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType_STATUS `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_STATUS_ARM `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode_STATUS `json:"mode,omitempty"` + + // Name: Windows agent pool names must be 6 characters or less. + Name *string `json:"name,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_STATUS_ARM `json:"networkProfile,omitempty"` + + // NodeImageVersion: The version of node image + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels"` + + // NodePublicIPPrefixID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType_STATUS `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU_STATUS `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType_STATUS `json:"osType,omitempty"` + + // PodSubnetID: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is + // of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_STATUS_ARM `json:"powerState,omitempty"` + + // ProvisioningState: The current deployment or provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // ProximityPlacementGroupID: The ID for Proximity Placement Group. + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode_STATUS `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy_STATUS `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority_STATUS `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags"` + + // Type: The type of Agent Pool. + Type *AgentPoolType_STATUS `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_STATUS_ARM `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetID: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, + // this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime_STATUS `json:"workloadRuntime,omitempty"` +} + +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile_STATUS_ARM struct { + // AuthorizedIPRanges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with + // clusters that use Public IP Per Node, or clusters that are using a Basic Load Balancer. For more information see [API + // server authorized IP ranges](https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges). + AuthorizedIPRanges []string `json:"authorizedIPRanges"` + + // DisableRunCommand: Whether to disable run command for the cluster or not. + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + + // EnablePrivateCluster: For more details, see [Creating a private AKS + // cluster](https://docs.microsoft.com/azure/aks/private-clusters). + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + + // EnablePrivateClusterPublicFQDN: Whether to create additional public FQDN for private cluster or not. + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + + // PrivateDNSZone: The default is System. For more details see [configure private DNS + // zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone). Allowed values are 'system' and + // 'none'. + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` +} + +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile_STATUS_ARM struct { + // NodeOSUpgradeChannel: Manner in which the OS on your nodes is updated. The default is NodeImage. + NodeOSUpgradeChannel *ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS `json:"nodeOSUpgradeChannel,omitempty"` + + // UpgradeChannel: For more information see [setting the AKS cluster auto-upgrade + // channel](https://docs.microsoft.com/azure/aks/upgrade-cluster#set-auto-upgrade-channel). + UpgradeChannel *ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS `json:"upgradeChannel,omitempty"` +} + +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile_STATUS_ARM struct { + // Metrics: Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes + // infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See + // aka.ms/AzureManagedPrometheus for an overview. + Metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM `json:"metrics,omitempty"` +} + +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig_STATUS_ARM struct { + // HttpProxy: The HTTP proxy server endpoint to use. + HttpProxy *string `json:"httpProxy,omitempty"` + + // HttpsProxy: The HTTPS proxy server endpoint to use. + HttpsProxy *string `json:"httpsProxy,omitempty"` + + // NoProxy: The endpoints that should not go through proxy. + NoProxy []string `json:"noProxy"` + + // TrustedCa: Alternative CA cert to use for connecting to proxy servers. + TrustedCa *string `json:"trustedCa,omitempty"` +} + +type ManagedClusterIdentity_Type_STATUS string + +const ( + ManagedClusterIdentity_Type_STATUS_None = ManagedClusterIdentity_Type_STATUS("None") + ManagedClusterIdentity_Type_STATUS_SystemAssigned = ManagedClusterIdentity_Type_STATUS("SystemAssigned") + ManagedClusterIdentity_Type_STATUS_UserAssigned = ManagedClusterIdentity_Type_STATUS("UserAssigned") +) + +type ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM struct { + // ClientId: The client id of user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // PrincipalId: The principal id of user assigned identity. + PrincipalId *string `json:"principalId,omitempty"` +} + +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile_STATUS_ARM struct { + // Enabled: Whether the OIDC issuer is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // IssuerURL: The OIDC issuer url of the Managed Cluster. + IssuerURL *string `json:"issuerURL,omitempty"` +} + +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile_STATUS_ARM struct { + // AllowNetworkPluginKubenet: Running in Kubenet is disabled by default due to the security related nature of AAD Pod + // Identity and the risks of IP spoofing. See [using Kubenet network plugin with AAD Pod + // Identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#using-kubenet-network-plugin-with-azure-active-directory-pod-managed-identities) + // for more information. + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + + // Enabled: Whether the pod identity addon is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // UserAssignedIdentities: The pod identities to use in the cluster. + UserAssignedIdentities []ManagedClusterPodIdentity_STATUS_ARM `json:"userAssignedIdentities"` + + // UserAssignedIdentityExceptions: The pod identity exceptions to allow. + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_STATUS_ARM `json:"userAssignedIdentityExceptions"` +} + +type ManagedClusterProperties_AutoScalerProfile_STATUS_ARM struct { + // BalanceSimilarNodeGroups: Valid values are 'true' and 'false' + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + + // Expander: If not specified, the default is 'random'. See + // [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more + // information. + Expander *ManagedClusterProperties_AutoScalerProfile_Expander_STATUS `json:"expander,omitempty"` + + // MaxEmptyBulkDelete: The default is 10. + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + + // MaxGracefulTerminationSec: The default is 600. + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + + // MaxNodeProvisionTime: The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + + // MaxTotalUnreadyPercentage: The default is 45. The maximum is 100 and the minimum is 0. + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + + // NewPodScaleUpDelay: For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler + // could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is + // '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + + // OkTotalUnreadyCount: This must be an integer. The default is 3. + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + + // ScaleDownDelayAfterAdd: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + + // ScaleDownDelayAfterDelete: The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of + // time other than minutes (m) is supported. + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + + // ScaleDownDelayAfterFailure: The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other + // than minutes (m) is supported. + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + + // ScaleDownUnneededTime: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + + // ScaleDownUnreadyTime: The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + + // ScaleDownUtilizationThreshold: The default is '0.5'. + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + + // ScanInterval: The default is '10'. Values must be an integer number of seconds. + ScanInterval *string `json:"scan-interval,omitempty"` + + // SkipNodesWithLocalStorage: The default is true. + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + + // SkipNodesWithSystemPods: The default is true. + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile_STATUS_ARM struct { + // AzureKeyVaultKms: Azure Key Vault [key management + // service](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) settings for the security profile. + AzureKeyVaultKms *AzureKeyVaultKms_STATUS_ARM `json:"azureKeyVaultKms,omitempty"` + + // Defender: Microsoft Defender settings for the security profile. + Defender *ManagedClusterSecurityProfileDefender_STATUS_ARM `json:"defender,omitempty"` + + // ImageCleaner: Image Cleaner settings for the security profile. + ImageCleaner *ManagedClusterSecurityProfileImageCleaner_STATUS_ARM `json:"imageCleaner,omitempty"` + + // WorkloadIdentity: Workload identity settings for the security profile. Workload identity enables Kubernetes applications + // to access Azure cloud resources securely with Azure AD. See https://aka.ms/aks/wi for more details. + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM `json:"workloadIdentity,omitempty"` +} + +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile_STATUS_ARM struct { + // ClientId: The ID for the service principal. + ClientId *string `json:"clientId,omitempty"` +} + +type ManagedClusterSKU_Name_STATUS string + +const ManagedClusterSKU_Name_STATUS_Base = ManagedClusterSKU_Name_STATUS("Base") + +type ManagedClusterSKU_Tier_STATUS string + +const ( + ManagedClusterSKU_Tier_STATUS_Free = ManagedClusterSKU_Tier_STATUS("Free") + ManagedClusterSKU_Tier_STATUS_Premium = ManagedClusterSKU_Tier_STATUS("Premium") + ManagedClusterSKU_Tier_STATUS_Standard = ManagedClusterSKU_Tier_STATUS("Standard") +) + +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile_STATUS_ARM struct { + // BlobCSIDriver: AzureBlob CSI Driver settings for the storage profile. + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM `json:"blobCSIDriver,omitempty"` + + // DiskCSIDriver: AzureDisk CSI Driver settings for the storage profile. + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM `json:"diskCSIDriver,omitempty"` + + // FileCSIDriver: AzureFile CSI Driver settings for the storage profile. + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM `json:"fileCSIDriver,omitempty"` + + // SnapshotController: Snapshot Controller settings for the storage profile. + SnapshotController *ManagedClusterStorageProfileSnapshotController_STATUS_ARM `json:"snapshotController,omitempty"` +} + +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile_STATUS_ARM struct { + // AdminPassword: Specifies the password of the administrator account. + // Minimum-length: 8 characters + // Max-length: 123 characters + // Complexity requirements: 3 out of 4 conditions below need to be fulfilled + // Has lower characters + // Has upper characters + // Has a digit + // Has a special character (Regex match [\W_]) + // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", + // "Password22", "iloveyou!" + AdminPassword *string `json:"adminPassword,omitempty"` + + // AdminUsername: Specifies the name of the administrator account. + // Restriction: Cannot end in "." + // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", + // "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", + // "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". + // Minimum-length: 1 character + // Max-length: 20 characters + AdminUsername *string `json:"adminUsername,omitempty"` + + // EnableCSIProxy: For more details on CSI proxy, see the [CSI proxy GitHub + // repo](https://github.com/kubernetes-csi/csi-proxy). + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + + // GmsaProfile: The Windows gMSA Profile in the Managed Cluster. + GmsaProfile *WindowsGmsaProfile_STATUS_ARM `json:"gmsaProfile,omitempty"` + + // LicenseType: The license type to use for Windows VMs. See [Azure Hybrid User + // Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details. + LicenseType *ManagedClusterWindowsProfile_LicenseType_STATUS `json:"licenseType,omitempty"` +} + +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM struct { + // Keda: KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. + Keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM `json:"keda,omitempty"` + + // VerticalPodAutoscaler: VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM `json:"verticalPodAutoscaler,omitempty"` +} + +// Describes the Power State of the cluster +type PowerState_STATUS_ARM struct { + // Code: Tells whether the cluster is Running or Stopped + Code *PowerState_Code_STATUS `json:"code,omitempty"` +} + +// A private link resource +type PrivateLinkResource_STATUS_ARM struct { + // GroupId: The group ID of the resource. + GroupId *string `json:"groupId,omitempty"` + + // Id: The ID of the private link resource. + Id *string `json:"id,omitempty"` + + // Name: The name of the private link resource. + Name *string `json:"name,omitempty"` + + // PrivateLinkServiceID: The private link service ID of the resource, this field is exposed only to NRP internally. + PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` + + // RequiredMembers: The RequiredMembers of the resource + RequiredMembers []string `json:"requiredMembers"` + + // Type: The resource type. + Type *string `json:"type,omitempty"` +} + +// Service mesh profile for a managed cluster. +type ServiceMeshProfile_STATUS_ARM struct { + // Istio: Istio service mesh configuration. + Istio *IstioServiceMesh_STATUS_ARM `json:"istio,omitempty"` + + // Mode: Mode of the service mesh. + Mode *ServiceMeshProfile_Mode_STATUS `json:"mode,omitempty"` +} + +type SystemData_CreatedByType_STATUS string + +const ( + SystemData_CreatedByType_STATUS_Application = SystemData_CreatedByType_STATUS("Application") + SystemData_CreatedByType_STATUS_Key = SystemData_CreatedByType_STATUS("Key") + SystemData_CreatedByType_STATUS_ManagedIdentity = SystemData_CreatedByType_STATUS("ManagedIdentity") + SystemData_CreatedByType_STATUS_User = SystemData_CreatedByType_STATUS("User") +) + +type SystemData_LastModifiedByType_STATUS string + +const ( + SystemData_LastModifiedByType_STATUS_Application = SystemData_LastModifiedByType_STATUS("Application") + SystemData_LastModifiedByType_STATUS_Key = SystemData_LastModifiedByType_STATUS("Key") + SystemData_LastModifiedByType_STATUS_ManagedIdentity = SystemData_LastModifiedByType_STATUS("ManagedIdentity") + SystemData_LastModifiedByType_STATUS_User = SystemData_LastModifiedByType_STATUS("User") +) + +// Details about a user assigned identity. +type UserAssignedIdentity_STATUS_ARM struct { + // ClientId: The client ID of the user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // ObjectId: The object ID of the user assigned identity. + ObjectId *string `json:"objectId,omitempty"` + + // ResourceId: The resource ID of the user assigned identity. + ResourceId *string `json:"resourceId,omitempty"` +} + +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms_STATUS_ARM struct { + // Enabled: Whether to enable Azure Key Vault key management service. The default is false. + Enabled *bool `json:"enabled,omitempty"` + + // KeyId: Identifier of Azure Key Vault key. See [key identifier + // format](https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name) + // for more details. When Azure Key Vault key management service is enabled, this field is required and must be a valid key + // identifier. When Azure Key Vault key management service is disabled, leave the field empty. + KeyId *string `json:"keyId,omitempty"` + + // KeyVaultNetworkAccess: Network access of key vault. The possible values are `Public` and `Private`. `Public` means the + // key vault allows public access from all networks. `Private` means the key vault disables public access and enables + // private link. The default value is `Public`. + KeyVaultNetworkAccess *AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS `json:"keyVaultNetworkAccess,omitempty"` + + // KeyVaultResourceId: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and must + // be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. + KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` +} + +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration_STATUS_ARM struct { + // PublicKeys: The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified. + PublicKeys []ContainerServiceSshPublicKey_STATUS_ARM `json:"publicKeys"` +} + +// Istio service mesh configuration. +type IstioServiceMesh_STATUS_ARM struct { + // CertificateAuthority: Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin + // certificates as described here https://aka.ms/asm-plugin-ca + CertificateAuthority *IstioCertificateAuthority_STATUS_ARM `json:"certificateAuthority,omitempty"` + + // Components: Istio components configuration. + Components *IstioComponents_STATUS_ARM `json:"components,omitempty"` + + // Revisions: The list of revisions of the Istio control plane. When an upgrade is not in progress, this holds one value. + // When canary upgrade is in progress, this can only hold two consecutive values. For more information, see: + // https://learn.microsoft.com/en-us/azure/aks/istio-upgrade + Revisions []string `json:"revisions"` +} + +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM struct { + // Enabled: Whether to enable or disable the Azure Managed Prometheus addon for Prometheus monitoring. See + // aka.ms/AzureManagedPrometheus-aks-enable for details on enabling and disabling. + Enabled *bool `json:"enabled,omitempty"` + + // KubeStateMetrics: Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the + // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for + // details. + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM `json:"kubeStateMetrics,omitempty"` +} + +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile_STATUS_ARM struct { + // AllocatedOutboundPorts: The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 + // (inclusive). The default value is 0 which results in Azure dynamically allocating ports. + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + + // BackendPoolType: The type of the managed inbound Load Balancer BackendPool. + BackendPoolType *ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS `json:"backendPoolType,omitempty"` + + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster load balancer. + EffectiveOutboundIPs []ResourceReference_STATUS_ARM `json:"effectiveOutboundIPs"` + + // EnableMultipleStandardLoadBalancers: Enable multiple standard load balancers per AKS cluster or not. + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 30 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPs: Desired managed outbound IPs for the cluster load balancer. + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM `json:"managedOutboundIPs,omitempty"` + + // OutboundIPPrefixes: Desired outbound IP Prefix resources for the cluster load balancer. + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM `json:"outboundIPPrefixes,omitempty"` + + // OutboundIPs: Desired outbound IP resources for the cluster load balancer. + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM `json:"outboundIPs,omitempty"` +} + +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile_STATUS_ARM struct { + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster NAT gateway. + EffectiveOutboundIPs []ResourceReference_STATUS_ARM `json:"effectiveOutboundIPs"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 4 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPProfile: Profile of the managed outbound IP resources of the cluster NAT gateway. + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_STATUS_ARM `json:"managedOutboundIPProfile,omitempty"` +} + +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity_STATUS_ARM struct { + // BindingSelector: The binding selector to use for the AzureIdentityBinding resource. + BindingSelector *string `json:"bindingSelector,omitempty"` + + // Identity: The user assigned identity details. + Identity *UserAssignedIdentity_STATUS_ARM `json:"identity,omitempty"` + + // Name: The name of the pod identity. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity. + Namespace *string `json:"namespace,omitempty"` + ProvisioningInfo *ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM `json:"provisioningInfo,omitempty"` + + // ProvisioningState: The current provisioning state of the pod identity. + ProvisioningState *ManagedClusterPodIdentity_ProvisioningState_STATUS `json:"provisioningState,omitempty"` +} + +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException_STATUS_ARM struct { + // Name: The name of the pod identity exception. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity exception. + Namespace *string `json:"namespace,omitempty"` + + // PodLabels: The pod labels to match. + PodLabels map[string]string `json:"podLabels"` +} + +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender_STATUS_ARM struct { + // LogAnalyticsWorkspaceResourceId: Resource ID of the Log Analytics workspace to be associated with Microsoft Defender. + // When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When Microsoft + // Defender is disabled, leave the field empty. + LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` + + // SecurityMonitoring: Microsoft Defender threat detection for Cloud settings for the security profile. + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM `json:"securityMonitoring,omitempty"` +} + +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner_STATUS_ARM struct { + // Enabled: Whether to enable Image Cleaner on AKS cluster. + Enabled *bool `json:"enabled,omitempty"` + + // IntervalHours: Image Cleaner scanning interval in hours. + IntervalHours *int `json:"intervalHours,omitempty"` +} + +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM struct { + // Enabled: Whether to enable workload identity. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM struct { + // Enabled: Whether to enable AzureBlob CSI Driver. The default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM struct { + // Enabled: Whether to enable AzureDisk CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM struct { + // Enabled: Whether to enable AzureFile CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController_STATUS_ARM struct { + // Enabled: Whether to enable Snapshot Controller. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM struct { + // Enabled: Whether to enable KEDA. + Enabled *bool `json:"enabled,omitempty"` +} + +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM struct { + // Enabled: Whether to enable VPA. Default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_STATUS_ARM struct { + // ForceUpgrade: Whether to force upgrade the cluster. Note that this option instructs upgrade operation to bypass upgrade + // protections such as checking for deprecated API usage. Enable this option only with caution. + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + + // Until: Until when the overrides are effective. Note that this only matches the start time of an upgrade, and the + // effectiveness won't change once an upgrade starts even if the `until` expires as upgrade proceeds. This field is not set + // by default. It must be set for the overrides to take effect. + Until *string `json:"until,omitempty"` +} + +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_STATUS_ARM struct { + // DnsServer: Specifies the DNS server for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + DnsServer *string `json:"dnsServer,omitempty"` + + // Enabled: Specifies whether to enable Windows gMSA in the managed cluster. + Enabled *bool `json:"enabled,omitempty"` + + // RootDomainName: Specifies the root domain name for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey_STATUS_ARM struct { + // KeyData: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or + // without headers. + KeyData *string `json:"keyData,omitempty"` +} + +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority_STATUS_ARM struct { + // Plugin: Plugin certificates information for Service Mesh. + Plugin *IstioPluginCertificateAuthority_STATUS_ARM `json:"plugin,omitempty"` +} + +// Istio components configuration. +type IstioComponents_STATUS_ARM struct { + // EgressGateways: Istio egress gateways. + EgressGateways []IstioEgressGateway_STATUS_ARM `json:"egressGateways"` + + // IngressGateways: Istio ingress gateways. + IngressGateways []IstioIngressGateway_STATUS_ARM `json:"ingressGateways"` +} + +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM struct { + // MetricAnnotationsAllowList: Comma-separated list of Kubernetes annotation keys that will be used in the resource's + // labels metric (Example: 'namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...'). By default the metric + // contains only resource name and namespace labels. + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + + // MetricLabelsAllowlist: Comma-separated list of additional Kubernetes label keys that will be used in the resource's + // labels metric (Example: 'namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...'). By default the metric contains only + // resource name and namespace labels. + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` +} + +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM struct { + // Count: The desired number of IPv4 outbound IPs created/managed by Azure for the cluster load balancer. Allowed values + // must be in the range of 1 to 100 (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` + + // CountIPv6: The desired number of IPv6 outbound IPs created/managed by Azure for the cluster load balancer. Allowed + // values must be in the range of 1 to 100 (inclusive). The default value is 0 for single-stack and 1 for dual-stack. + CountIPv6 *int `json:"countIPv6,omitempty"` +} + +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM struct { + // PublicIPPrefixes: A list of public IP prefix resources. + PublicIPPrefixes []ResourceReference_STATUS_ARM `json:"publicIPPrefixes"` +} + +type ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM struct { + // PublicIPs: A list of public IP resources. + PublicIPs []ResourceReference_STATUS_ARM `json:"publicIPs"` +} + +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile_STATUS_ARM struct { + // Count: The desired number of outbound IPs created/managed by Azure. Allowed values must be in the range of 1 to 16 + // (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` +} + +type ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM struct { + // Error: Pod identity assignment error (if any). + Error *ManagedClusterPodIdentityProvisioningError_STATUS_ARM `json:"error,omitempty"` +} + +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM struct { + // Enabled: Whether to enable Defender threat detection + Enabled *bool `json:"enabled,omitempty"` +} + +// A reference to an Azure resource. +type ResourceReference_STATUS_ARM struct { + // Id: The fully qualified Azure resource id. + Id *string `json:"id,omitempty"` +} + +// Istio egress gateway configuration. +type IstioEgressGateway_STATUS_ARM struct { + // Enabled: Whether to enable the egress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // NodeSelector: NodeSelector for scheduling the egress gateway. + NodeSelector map[string]string `json:"nodeSelector"` +} + +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway_STATUS_ARM struct { + // Enabled: Whether to enable the ingress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // Mode: Mode of an ingress gateway. + Mode *IstioIngressGateway_Mode_STATUS `json:"mode,omitempty"` +} + +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority_STATUS_ARM struct { + // CertChainObjectName: Certificate chain object name in Azure Key Vault. + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + + // CertObjectName: Intermediate certificate object name in Azure Key Vault. + CertObjectName *string `json:"certObjectName,omitempty"` + + // KeyObjectName: Intermediate certificate private key object name in Azure Key Vault. + KeyObjectName *string `json:"keyObjectName,omitempty"` + + // KeyVaultId: The resource ID of the Key Vault. + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // RootCertObjectName: Root certificate object name in Azure Key Vault. + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} + +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningError_STATUS_ARM struct { + // Error: Details about the error. + Error *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM `json:"error,omitempty"` +} + +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM struct { + // Code: An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + + // Details: A list of additional details about the error. + Details []ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM `json:"details"` + + // Message: A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + + // Target: The target of the particular error. For example, the name of the property in error. + Target *string `json:"target,omitempty"` +} + +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM struct { + // Code: An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + + // Message: A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + + // Target: The target of the particular error. For example, the name of the property in error. + Target *string `json:"target,omitempty"` +} diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen_test.go new file mode 100644 index 00000000000..dc834808079 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_status_arm_types_gen_test.go @@ -0,0 +1,4518 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedCluster_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_STATUS_ARM, ManagedCluster_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_STATUS_ARM runs a test to see if a specific instance of ManagedCluster_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_STATUS_ARM(subject ManagedCluster_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedCluster_STATUS_ARMGenerator() +var managedCluster_STATUS_ARMGenerator gopter.Gen + +// ManagedCluster_STATUS_ARMGenerator returns a generator of ManagedCluster_STATUS_ARM instances for property testing. +// We first initialize managedCluster_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_STATUS_ARMGenerator() gopter.Gen { + if managedCluster_STATUS_ARMGenerator != nil { + return managedCluster_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS_ARM(generators) + managedCluster_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedCluster_STATUS_ARM(generators) + managedCluster_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS_ARM{}), generators) + + return managedCluster_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocation_STATUS_ARMGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentity_STATUS_ARMGenerator()) + gens["Properties"] = gen.PtrOf(ManagedClusterProperties_STATUS_ARMGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKU_STATUS_ARMGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUS_ARMGenerator()) +} + +func Test_ExtendedLocation_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation_STATUS_ARM, ExtendedLocation_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation_STATUS_ARM runs a test to see if a specific instance of ExtendedLocation_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation_STATUS_ARM(subject ExtendedLocation_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation_STATUS_ARM instances for property testing - lazily instantiated by +// ExtendedLocation_STATUS_ARMGenerator() +var extendedLocation_STATUS_ARMGenerator gopter.Gen + +// ExtendedLocation_STATUS_ARMGenerator returns a generator of ExtendedLocation_STATUS_ARM instances for property testing. +func ExtendedLocation_STATUS_ARMGenerator() gopter.Gen { + if extendedLocation_STATUS_ARMGenerator != nil { + return extendedLocation_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation_STATUS_ARM(generators) + extendedLocation_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation_STATUS_ARM{}), generators) + + return extendedLocation_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ExtendedLocationType_STATUS_EdgeZone)) +} + +func Test_ManagedClusterIdentity_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_STATUS_ARM, ManagedClusterIdentity_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_STATUS_ARM runs a test to see if a specific instance of ManagedClusterIdentity_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_STATUS_ARM(subject ManagedClusterIdentity_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterIdentity_STATUS_ARMGenerator() +var managedClusterIdentity_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterIdentity_STATUS_ARMGenerator returns a generator of ManagedClusterIdentity_STATUS_ARM instances for property testing. +// We first initialize managedClusterIdentity_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentity_STATUS_ARMGenerator() gopter.Gen { + if managedClusterIdentity_STATUS_ARMGenerator != nil { + return managedClusterIdentity_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM(generators) + managedClusterIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM(generators) + managedClusterIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS_ARM{}), generators) + + return managedClusterIdentity_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ManagedClusterIdentity_Type_STATUS_None, ManagedClusterIdentity_Type_STATUS_SystemAssigned, ManagedClusterIdentity_Type_STATUS_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResource_STATUS_ARMGenerator()) + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterProperties_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_STATUS_ARM, ManagedClusterProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_STATUS_ARM runs a test to see if a specific instance of ManagedClusterProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_STATUS_ARM(subject ManagedClusterProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterProperties_STATUS_ARMGenerator() +var managedClusterProperties_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterProperties_STATUS_ARMGenerator returns a generator of ManagedClusterProperties_STATUS_ARM instances for property testing. +// We first initialize managedClusterProperties_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterProperties_STATUS_ARMGenerator() gopter.Gen { + if managedClusterProperties_STATUS_ARMGenerator != nil { + return managedClusterProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_STATUS_ARM(generators) + managedClusterProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterProperties_STATUS_ARM(generators) + managedClusterProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_STATUS_ARM{}), generators) + + return managedClusterProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AzurePortalFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["CurrentKubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DiskEncryptionSetID"] = gen.PtrOf(gen.AlphaString()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["Fqdn"] = gen.PtrOf(gen.AlphaString()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["MaxAgentPools"] = gen.PtrOf(gen.Int()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ManagedClusterProperties_PublicNetworkAccess_STATUS_Disabled, ManagedClusterProperties_PublicNetworkAccess_STATUS_Enabled)) + gens["ResourceUID"] = gen.PtrOf(gen.AlphaString()) + gens["SupportPlan"] = gen.PtrOf(gen.OneConstOf(KubernetesSupportPlan_STATUS_AKSLongTermSupport, KubernetesSupportPlan_STATUS_KubernetesOfficial)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfile_STATUS_ARMGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfile_STATUS_ARMGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfile_STATUS_ARMGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfile_STATUS_ARMGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfile_STATUS_ARMGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfile_STATUS_ARMGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfig_STATUS_ARMGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentity_STATUS_ARMGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfile_STATUS_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfile_STATUS_ARMGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfile_STATUS_ARMGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfile_STATUS_ARMGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUS_ARMGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResource_STATUS_ARMGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfile_STATUS_ARMGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfile_STATUS_ARMGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfile_STATUS_ARMGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfile_STATUS_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettings_STATUS_ARMGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfile_STATUS_ARMGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterSKU_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU_STATUS_ARM, ManagedClusterSKU_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSKU_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU_STATUS_ARM(subject ManagedClusterSKU_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterSKU_STATUS_ARMGenerator() +var managedClusterSKU_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSKU_STATUS_ARMGenerator returns a generator of ManagedClusterSKU_STATUS_ARM instances for property testing. +func ManagedClusterSKU_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSKU_STATUS_ARMGenerator != nil { + return managedClusterSKU_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS_ARM(generators) + managedClusterSKU_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU_STATUS_ARM{}), generators) + + return managedClusterSKU_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Name_STATUS_Base)) + gens["Tier"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Tier_STATUS_Free, ManagedClusterSKU_Tier_STATUS_Premium, ManagedClusterSKU_Tier_STATUS_Standard)) +} + +func Test_SystemData_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SystemData_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS_ARM, SystemData_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS_ARM runs a test to see if a specific instance of SystemData_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS_ARM(subject SystemData_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SystemData_STATUS_ARM instances for property testing - lazily instantiated by +// SystemData_STATUS_ARMGenerator() +var systemData_STATUS_ARMGenerator gopter.Gen + +// SystemData_STATUS_ARMGenerator returns a generator of SystemData_STATUS_ARM instances for property testing. +func SystemData_STATUS_ARMGenerator() gopter.Gen { + if systemData_STATUS_ARMGenerator != nil { + return systemData_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM(generators) + systemData_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS_ARM{}), generators) + + return systemData_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_CreatedByType_STATUS_Application, + SystemData_CreatedByType_STATUS_Key, + SystemData_CreatedByType_STATUS_ManagedIdentity, + SystemData_CreatedByType_STATUS_User)) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_LastModifiedByType_STATUS_Application, + SystemData_LastModifiedByType_STATUS_Key, + SystemData_LastModifiedByType_STATUS_ManagedIdentity, + SystemData_LastModifiedByType_STATUS_User)) +} + +func Test_ClusterUpgradeSettings_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings_STATUS_ARM, ClusterUpgradeSettings_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings_STATUS_ARM runs a test to see if a specific instance of ClusterUpgradeSettings_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings_STATUS_ARM(subject ClusterUpgradeSettings_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings_STATUS_ARM instances for property testing - lazily instantiated by +// ClusterUpgradeSettings_STATUS_ARMGenerator() +var clusterUpgradeSettings_STATUS_ARMGenerator gopter.Gen + +// ClusterUpgradeSettings_STATUS_ARMGenerator returns a generator of ClusterUpgradeSettings_STATUS_ARM instances for property testing. +func ClusterUpgradeSettings_STATUS_ARMGenerator() gopter.Gen { + if clusterUpgradeSettings_STATUS_ARMGenerator != nil { + return clusterUpgradeSettings_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS_ARM(generators) + clusterUpgradeSettings_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings_STATUS_ARM{}), generators) + + return clusterUpgradeSettings_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS_ARM(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettings_STATUS_ARMGenerator()) +} + +func Test_ContainerServiceLinuxProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS_ARM, ContainerServiceLinuxProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS_ARM runs a test to see if a specific instance of ContainerServiceLinuxProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS_ARM(subject ContainerServiceLinuxProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfile_STATUS_ARMGenerator() +var containerServiceLinuxProfile_STATUS_ARMGenerator gopter.Gen + +// ContainerServiceLinuxProfile_STATUS_ARMGenerator returns a generator of ContainerServiceLinuxProfile_STATUS_ARM instances for property testing. +// We first initialize containerServiceLinuxProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfile_STATUS_ARMGenerator() gopter.Gen { + if containerServiceLinuxProfile_STATUS_ARMGenerator != nil { + return containerServiceLinuxProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM(generators) + containerServiceLinuxProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM(generators) + containerServiceLinuxProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS_ARM{}), generators) + + return containerServiceLinuxProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfiguration_STATUS_ARMGenerator()) +} + +func Test_ContainerServiceNetworkProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS_ARM, ContainerServiceNetworkProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS_ARM runs a test to see if a specific instance of ContainerServiceNetworkProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS_ARM(subject ContainerServiceNetworkProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfile_STATUS_ARMGenerator() +var containerServiceNetworkProfile_STATUS_ARMGenerator gopter.Gen + +// ContainerServiceNetworkProfile_STATUS_ARMGenerator returns a generator of ContainerServiceNetworkProfile_STATUS_ARM instances for property testing. +// We first initialize containerServiceNetworkProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfile_STATUS_ARMGenerator() gopter.Gen { + if containerServiceNetworkProfile_STATUS_ARMGenerator != nil { + return containerServiceNetworkProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM(generators) + containerServiceNetworkProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM(generators) + containerServiceNetworkProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS_ARM{}), generators) + + return containerServiceNetworkProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.OneConstOf(ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv4, ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv6)) + gens["LoadBalancerSku"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Basic, ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Standard)) + gens["NetworkDataplane"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Azure, ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Cilium)) + gens["NetworkMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkMode_STATUS_Bridge, ContainerServiceNetworkProfile_NetworkMode_STATUS_Transparent)) + gens["NetworkPlugin"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Azure, ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Kubenet, ContainerServiceNetworkProfile_NetworkPlugin_STATUS_None)) + gens["NetworkPluginMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPluginMode_STATUS_Overlay)) + gens["NetworkPolicy"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Azure, ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Calico, ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Cilium)) + gens["OutboundType"] = gen.PtrOf(gen.OneConstOf( + ContainerServiceNetworkProfile_OutboundType_STATUS_LoadBalancer, + ContainerServiceNetworkProfile_OutboundType_STATUS_ManagedNATGateway, + ContainerServiceNetworkProfile_OutboundType_STATUS_UserAssignedNATGateway, + ContainerServiceNetworkProfile_OutboundType_STATUS_UserDefinedRouting)) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_STATUS_ARMGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfile_STATUS_ARMGenerator()) +} + +func Test_DelegatedResource_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource_STATUS_ARM, DelegatedResource_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource_STATUS_ARM runs a test to see if a specific instance of DelegatedResource_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource_STATUS_ARM(subject DelegatedResource_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource_STATUS_ARM instances for property testing - lazily instantiated by +// DelegatedResource_STATUS_ARMGenerator() +var delegatedResource_STATUS_ARMGenerator gopter.Gen + +// DelegatedResource_STATUS_ARMGenerator returns a generator of DelegatedResource_STATUS_ARM instances for property testing. +func DelegatedResource_STATUS_ARMGenerator() gopter.Gen { + if delegatedResource_STATUS_ARMGenerator != nil { + return delegatedResource_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource_STATUS_ARM(generators) + delegatedResource_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(DelegatedResource_STATUS_ARM{}), generators) + + return delegatedResource_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAADProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile_STATUS_ARM, ManagedClusterAADProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAADProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile_STATUS_ARM(subject ManagedClusterAADProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAADProfile_STATUS_ARMGenerator() +var managedClusterAADProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAADProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAADProfile_STATUS_ARM instances for property testing. +func ManagedClusterAADProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAADProfile_STATUS_ARMGenerator != nil { + return managedClusterAADProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS_ARM(generators) + managedClusterAADProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile_STATUS_ARM{}), generators) + + return managedClusterAADProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAddonProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile_STATUS_ARM, ManagedClusterAddonProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAddonProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile_STATUS_ARM(subject ManagedClusterAddonProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAddonProfile_STATUS_ARMGenerator() +var managedClusterAddonProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAddonProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAddonProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterAddonProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAddonProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAddonProfile_STATUS_ARMGenerator != nil { + return managedClusterAddonProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM(generators) + managedClusterAddonProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM(generators) + managedClusterAddonProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS_ARM{}), generators) + + return managedClusterAddonProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterAgentPoolProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS_ARM, ManagedClusterAgentPoolProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAgentPoolProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS_ARM(subject ManagedClusterAgentPoolProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfile_STATUS_ARMGenerator() +var managedClusterAgentPoolProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAgentPoolProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAgentPoolProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterAgentPoolProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAgentPoolProfile_STATUS_ARMGenerator != nil { + return managedClusterAgentPoolProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM(generators) + managedClusterAgentPoolProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM(generators) + managedClusterAgentPoolProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS_ARM{}), generators) + + return managedClusterAgentPoolProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_STATUS_MIG1G, + GPUInstanceProfile_STATUS_MIG2G, + GPUInstanceProfile_STATUS_MIG3G, + GPUInstanceProfile_STATUS_MIG4G, + GPUInstanceProfile_STATUS_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_STATUS_OS, KubeletDiskType_STATUS_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_STATUS_System, AgentPoolMode_STATUS_User)) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_STATUS_Ephemeral, OSDiskType_STATUS_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_STATUS_AzureLinux, + OSSKU_STATUS_CBLMariner, + OSSKU_STATUS_Ubuntu, + OSSKU_STATUS_Windows2019, + OSSKU_STATUS_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_STATUS_Linux, OSType_STATUS_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_STATUS_Deallocate, ScaleDownMode_STATUS_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_STATUS_Deallocate, ScaleSetEvictionPolicy_STATUS_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_STATUS_Regular, ScaleSetPriority_STATUS_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_STATUS_AvailabilitySet, AgentPoolType_STATUS_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_STATUS_OCIContainer, WorkloadRuntime_STATUS_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUS_ARMGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUS_ARMGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUS_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUS_ARMGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUS_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterAPIServerAccessProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS_ARM, ManagedClusterAPIServerAccessProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS_ARM(subject ManagedClusterAPIServerAccessProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfile_STATUS_ARMGenerator() +var managedClusterAPIServerAccessProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAPIServerAccessProfile_STATUS_ARM instances for property testing. +func ManagedClusterAPIServerAccessProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfile_STATUS_ARMGenerator != nil { + return managedClusterAPIServerAccessProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS_ARM(generators) + managedClusterAPIServerAccessProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile_STATUS_ARM{}), generators) + + return managedClusterAPIServerAccessProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAutoUpgradeProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS_ARM, ManagedClusterAutoUpgradeProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS_ARM(subject ManagedClusterAutoUpgradeProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfile_STATUS_ARMGenerator() +var managedClusterAutoUpgradeProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAutoUpgradeProfile_STATUS_ARM instances for property testing. +func ManagedClusterAutoUpgradeProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfile_STATUS_ARMGenerator != nil { + return managedClusterAutoUpgradeProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS_ARM(generators) + managedClusterAutoUpgradeProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile_STATUS_ARM{}), generators) + + return managedClusterAutoUpgradeProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.OneConstOf(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_NodeImage, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_None, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_Unmanaged)) + gens["UpgradeChannel"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_NodeImage, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_None, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Patch, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Rapid, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Stable)) +} + +func Test_ManagedClusterAzureMonitorProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS_ARM, ManagedClusterAzureMonitorProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS_ARM(subject ManagedClusterAzureMonitorProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfile_STATUS_ARMGenerator() +var managedClusterAzureMonitorProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfile_STATUS_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfile_STATUS_ARM instances for property testing. +func ManagedClusterAzureMonitorProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfile_STATUS_ARMGenerator != nil { + return managedClusterAzureMonitorProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS_ARM(generators) + managedClusterAzureMonitorProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile_STATUS_ARM{}), generators) + + return managedClusterAzureMonitorProfile_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterHTTPProxyConfig_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS_ARM, ManagedClusterHTTPProxyConfig_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS_ARM runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS_ARM(subject ManagedClusterHTTPProxyConfig_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfig_STATUS_ARMGenerator() +var managedClusterHTTPProxyConfig_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfig_STATUS_ARMGenerator returns a generator of ManagedClusterHTTPProxyConfig_STATUS_ARM instances for property testing. +func ManagedClusterHTTPProxyConfig_STATUS_ARMGenerator() gopter.Gen { + if managedClusterHTTPProxyConfig_STATUS_ARMGenerator != nil { + return managedClusterHTTPProxyConfig_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS_ARM(generators) + managedClusterHTTPProxyConfig_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig_STATUS_ARM{}), generators) + + return managedClusterHTTPProxyConfig_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS_ARM(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM, ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM runs a test to see if a specific instance of ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM(subject ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator() +var managedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator returns a generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM instances for property testing. +func ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator() gopter.Gen { + if managedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator != nil { + return managedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM(generators) + managedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM{}), generators) + + return managedClusterIdentity_UserAssignedIdentities_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterOIDCIssuerProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS_ARM, ManagedClusterOIDCIssuerProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS_ARM(subject ManagedClusterOIDCIssuerProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfile_STATUS_ARMGenerator() +var managedClusterOIDCIssuerProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfile_STATUS_ARMGenerator returns a generator of ManagedClusterOIDCIssuerProfile_STATUS_ARM instances for property testing. +func ManagedClusterOIDCIssuerProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfile_STATUS_ARMGenerator != nil { + return managedClusterOIDCIssuerProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS_ARM(generators) + managedClusterOIDCIssuerProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile_STATUS_ARM{}), generators) + + return managedClusterOIDCIssuerProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IssuerURL"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS_ARM, ManagedClusterPodIdentityProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS_ARM(subject ManagedClusterPodIdentityProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfile_STATUS_ARMGenerator() +var managedClusterPodIdentityProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityProfile_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentityProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterPodIdentityProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityProfile_STATUS_ARMGenerator != nil { + return managedClusterPodIdentityProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM(generators) + managedClusterPodIdentityProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM(generators) + managedClusterPodIdentityProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS_ARM{}), generators) + + return managedClusterPodIdentityProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentity_STATUS_ARMGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityException_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS_ARM, ManagedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS_ARM(subject ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator() +var managedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile_STATUS_ARM instances for property testing. +func ManagedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator != nil { + return managedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS_ARM(generators) + managedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile_STATUS_ARM{}), generators) + + return managedClusterProperties_AutoScalerProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_LeastWaste, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_MostPods, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Priority, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Random)) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS_ARM, ManagedClusterSecurityProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS_ARM(subject ManagedClusterSecurityProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfile_STATUS_ARMGenerator() +var managedClusterSecurityProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfile_STATUS_ARMGenerator returns a generator of ManagedClusterSecurityProfile_STATUS_ARM instances for property testing. +func ManagedClusterSecurityProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfile_STATUS_ARMGenerator != nil { + return managedClusterSecurityProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS_ARM(generators) + managedClusterSecurityProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile_STATUS_ARM{}), generators) + + return managedClusterSecurityProfile_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKms_STATUS_ARMGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefender_STATUS_ARMGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterServicePrincipalProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS_ARM, ManagedClusterServicePrincipalProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS_ARM(subject ManagedClusterServicePrincipalProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfile_STATUS_ARMGenerator() +var managedClusterServicePrincipalProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfile_STATUS_ARMGenerator returns a generator of ManagedClusterServicePrincipalProfile_STATUS_ARM instances for property testing. +func ManagedClusterServicePrincipalProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterServicePrincipalProfile_STATUS_ARMGenerator != nil { + return managedClusterServicePrincipalProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS_ARM(generators) + managedClusterServicePrincipalProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile_STATUS_ARM{}), generators) + + return managedClusterServicePrincipalProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterStorageProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile_STATUS_ARM, ManagedClusterStorageProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterStorageProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile_STATUS_ARM(subject ManagedClusterStorageProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterStorageProfile_STATUS_ARMGenerator() +var managedClusterStorageProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfile_STATUS_ARMGenerator returns a generator of ManagedClusterStorageProfile_STATUS_ARM instances for property testing. +func ManagedClusterStorageProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterStorageProfile_STATUS_ARMGenerator != nil { + return managedClusterStorageProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS_ARM(generators) + managedClusterStorageProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile_STATUS_ARM{}), generators) + + return managedClusterStorageProfile_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotController_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterWindowsProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS_ARM, ManagedClusterWindowsProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterWindowsProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS_ARM(subject ManagedClusterWindowsProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfile_STATUS_ARMGenerator() +var managedClusterWindowsProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterWindowsProfile_STATUS_ARMGenerator returns a generator of ManagedClusterWindowsProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterWindowsProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterWindowsProfile_STATUS_ARMGenerator != nil { + return managedClusterWindowsProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM(generators) + managedClusterWindowsProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM(generators) + managedClusterWindowsProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS_ARM{}), generators) + + return managedClusterWindowsProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterWindowsProfile_LicenseType_STATUS_None, ManagedClusterWindowsProfile_LicenseType_STATUS_Windows_Server)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfile_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM, ManagedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM(subject ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM instances for property testing - lazily instantiated +// by ManagedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator() +var managedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM(generators) + managedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfile_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator()) +} + +func Test_PowerState_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState_STATUS_ARM, PowerState_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState_STATUS_ARM runs a test to see if a specific instance of PowerState_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState_STATUS_ARM(subject PowerState_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState_STATUS_ARM instances for property testing - lazily instantiated by +// PowerState_STATUS_ARMGenerator() +var powerState_STATUS_ARMGenerator gopter.Gen + +// PowerState_STATUS_ARMGenerator returns a generator of PowerState_STATUS_ARM instances for property testing. +func PowerState_STATUS_ARMGenerator() gopter.Gen { + if powerState_STATUS_ARMGenerator != nil { + return powerState_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState_STATUS_ARM(generators) + powerState_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PowerState_STATUS_ARM{}), generators) + + return powerState_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.OneConstOf(PowerState_Code_STATUS_Running, PowerState_Code_STATUS_Stopped)) +} + +func Test_PrivateLinkResource_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource_STATUS_ARM, PrivateLinkResource_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource_STATUS_ARM runs a test to see if a specific instance of PrivateLinkResource_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource_STATUS_ARM(subject PrivateLinkResource_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource_STATUS_ARM instances for property testing - lazily instantiated by +// PrivateLinkResource_STATUS_ARMGenerator() +var privateLinkResource_STATUS_ARMGenerator gopter.Gen + +// PrivateLinkResource_STATUS_ARMGenerator returns a generator of PrivateLinkResource_STATUS_ARM instances for property testing. +func PrivateLinkResource_STATUS_ARMGenerator() gopter.Gen { + if privateLinkResource_STATUS_ARMGenerator != nil { + return privateLinkResource_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS_ARM(generators) + privateLinkResource_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource_STATUS_ARM{}), generators) + + return privateLinkResource_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS_ARM(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateLinkServiceID"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ServiceMeshProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile_STATUS_ARM, ServiceMeshProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile_STATUS_ARM runs a test to see if a specific instance of ServiceMeshProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile_STATUS_ARM(subject ServiceMeshProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ServiceMeshProfile_STATUS_ARMGenerator() +var serviceMeshProfile_STATUS_ARMGenerator gopter.Gen + +// ServiceMeshProfile_STATUS_ARMGenerator returns a generator of ServiceMeshProfile_STATUS_ARM instances for property testing. +// We first initialize serviceMeshProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfile_STATUS_ARMGenerator() gopter.Gen { + if serviceMeshProfile_STATUS_ARMGenerator != nil { + return serviceMeshProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS_ARM(generators) + serviceMeshProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS_ARM(generators) + serviceMeshProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS_ARM{}), generators) + + return serviceMeshProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.OneConstOf(ServiceMeshProfile_Mode_STATUS_Disabled, ServiceMeshProfile_Mode_STATUS_Istio)) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMesh_STATUS_ARMGenerator()) +} + +func Test_UserAssignedIdentity_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity_STATUS_ARM, UserAssignedIdentity_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity_STATUS_ARM runs a test to see if a specific instance of UserAssignedIdentity_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity_STATUS_ARM(subject UserAssignedIdentity_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity_STATUS_ARM instances for property testing - lazily instantiated by +// UserAssignedIdentity_STATUS_ARMGenerator() +var userAssignedIdentity_STATUS_ARMGenerator gopter.Gen + +// UserAssignedIdentity_STATUS_ARMGenerator returns a generator of UserAssignedIdentity_STATUS_ARM instances for property testing. +func UserAssignedIdentity_STATUS_ARMGenerator() gopter.Gen { + if userAssignedIdentity_STATUS_ARMGenerator != nil { + return userAssignedIdentity_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS_ARM(generators) + userAssignedIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity_STATUS_ARM{}), generators) + + return userAssignedIdentity_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AzureKeyVaultKms_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms_STATUS_ARM, AzureKeyVaultKms_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms_STATUS_ARM runs a test to see if a specific instance of AzureKeyVaultKms_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms_STATUS_ARM(subject AzureKeyVaultKms_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms_STATUS_ARM instances for property testing - lazily instantiated by +// AzureKeyVaultKms_STATUS_ARMGenerator() +var azureKeyVaultKms_STATUS_ARMGenerator gopter.Gen + +// AzureKeyVaultKms_STATUS_ARMGenerator returns a generator of AzureKeyVaultKms_STATUS_ARM instances for property testing. +func AzureKeyVaultKms_STATUS_ARMGenerator() gopter.Gen { + if azureKeyVaultKms_STATUS_ARMGenerator != nil { + return azureKeyVaultKms_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS_ARM(generators) + azureKeyVaultKms_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms_STATUS_ARM{}), generators) + + return azureKeyVaultKms_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Private, AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Public)) + gens["KeyVaultResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshConfiguration_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS_ARM, ContainerServiceSshConfiguration_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS_ARM runs a test to see if a specific instance of ContainerServiceSshConfiguration_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS_ARM(subject ContainerServiceSshConfiguration_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration_STATUS_ARM instances for property testing - lazily instantiated by +// ContainerServiceSshConfiguration_STATUS_ARMGenerator() +var containerServiceSshConfiguration_STATUS_ARMGenerator gopter.Gen + +// ContainerServiceSshConfiguration_STATUS_ARMGenerator returns a generator of ContainerServiceSshConfiguration_STATUS_ARM instances for property testing. +func ContainerServiceSshConfiguration_STATUS_ARMGenerator() gopter.Gen { + if containerServiceSshConfiguration_STATUS_ARMGenerator != nil { + return containerServiceSshConfiguration_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS_ARM(generators) + containerServiceSshConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration_STATUS_ARM{}), generators) + + return containerServiceSshConfiguration_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_STATUS_ARMGenerator()) +} + +func Test_IstioServiceMesh_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh_STATUS_ARM, IstioServiceMesh_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh_STATUS_ARM runs a test to see if a specific instance of IstioServiceMesh_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh_STATUS_ARM(subject IstioServiceMesh_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh_STATUS_ARM instances for property testing - lazily instantiated by +// IstioServiceMesh_STATUS_ARMGenerator() +var istioServiceMesh_STATUS_ARMGenerator gopter.Gen + +// IstioServiceMesh_STATUS_ARMGenerator returns a generator of IstioServiceMesh_STATUS_ARM instances for property testing. +// We first initialize istioServiceMesh_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMesh_STATUS_ARMGenerator() gopter.Gen { + if istioServiceMesh_STATUS_ARMGenerator != nil { + return istioServiceMesh_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS_ARM(generators) + istioServiceMesh_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS_ARM(generators) + istioServiceMesh_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS_ARM{}), generators) + + return istioServiceMesh_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthority_STATUS_ARMGenerator()) + gens["Components"] = gen.PtrOf(IstioComponents_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM, ManagedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(subject ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM instances for property testing - lazily instantiated +// by ManagedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator() +var managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator != nil { + return managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(generators) + managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(generators) + managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM{}), generators) + + return managedClusterAzureMonitorProfileMetrics_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS_ARM(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS_ARM, ManagedClusterLoadBalancerProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS_ARM(subject ManagedClusterLoadBalancerProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_STATUS_ARMGenerator() +var managedClusterLoadBalancerProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_STATUS_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterLoadBalancerProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_STATUS_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM(generators) + managedClusterLoadBalancerProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM(generators) + managedClusterLoadBalancerProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS_ARM{}), generators) + + return managedClusterLoadBalancerProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIP, ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIPConfiguration)) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUS_ARMGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS_ARM, ManagedClusterNATGatewayProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterNATGatewayProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS_ARM(subject ManagedClusterNATGatewayProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfile_STATUS_ARMGenerator() +var managedClusterNATGatewayProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterNATGatewayProfile_STATUS_ARMGenerator returns a generator of ManagedClusterNATGatewayProfile_STATUS_ARM instances for property testing. +// We first initialize managedClusterNATGatewayProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterNATGatewayProfile_STATUS_ARMGenerator != nil { + return managedClusterNATGatewayProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM(generators) + managedClusterNATGatewayProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM(generators) + managedClusterNATGatewayProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS_ARM{}), generators) + + return managedClusterNATGatewayProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUS_ARMGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentity_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_STATUS_ARM, ManagedClusterPodIdentity_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentity_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_STATUS_ARM(subject ManagedClusterPodIdentity_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentity_STATUS_ARMGenerator() +var managedClusterPodIdentity_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentity_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentity_STATUS_ARM instances for property testing. +// We first initialize managedClusterPodIdentity_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentity_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentity_STATUS_ARMGenerator != nil { + return managedClusterPodIdentity_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM(generators) + managedClusterPodIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM(generators) + managedClusterPodIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS_ARM{}), generators) + + return managedClusterPodIdentity_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterPodIdentity_ProvisioningState_STATUS_Assigned, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Canceled, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Deleting, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Failed, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Succeeded, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Updating)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUS_ARMGenerator()) + gens["ProvisioningInfo"] = gen.PtrOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentityException_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS_ARM, ManagedClusterPodIdentityException_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityException_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS_ARM(subject ManagedClusterPodIdentityException_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityException_STATUS_ARMGenerator() +var managedClusterPodIdentityException_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityException_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentityException_STATUS_ARM instances for property testing. +func ManagedClusterPodIdentityException_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityException_STATUS_ARMGenerator != nil { + return managedClusterPodIdentityException_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS_ARM(generators) + managedClusterPodIdentityException_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException_STATUS_ARM{}), generators) + + return managedClusterPodIdentityException_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfileDefender_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS_ARM, ManagedClusterSecurityProfileDefender_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS_ARM(subject ManagedClusterSecurityProfileDefender_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefender_STATUS_ARMGenerator() +var managedClusterSecurityProfileDefender_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefender_STATUS_ARMGenerator returns a generator of ManagedClusterSecurityProfileDefender_STATUS_ARM instances for property testing. +// We first initialize managedClusterSecurityProfileDefender_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterSecurityProfileDefender_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileDefender_STATUS_ARMGenerator != nil { + return managedClusterSecurityProfileDefender_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM(generators) + managedClusterSecurityProfileDefender_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM(generators) + managedClusterSecurityProfileDefender_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS_ARM{}), generators) + + return managedClusterSecurityProfileDefender_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM(gens map[string]gopter.Gen) { + gens["LogAnalyticsWorkspaceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS_ARM(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS_ARM, ManagedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS_ARM(subject ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator() +var managedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner_STATUS_ARM instances for property testing. +func ManagedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator != nil { + return managedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS_ARM(generators) + managedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner_STATUS_ARM{}), generators) + + return managedClusterSecurityProfileImageCleaner_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM, ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM(subject ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator() +var managedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM(generators) + managedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM{}), generators) + + return managedClusterSecurityProfileWorkloadIdentity_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM, ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM(subject ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator() +var managedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator != nil { + return managedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM(generators) + managedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM{}), generators) + + return managedClusterStorageProfileBlobCSIDriver_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM, ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM(subject ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator() +var managedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator != nil { + return managedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM(generators) + managedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM{}), generators) + + return managedClusterStorageProfileDiskCSIDriver_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM, ManagedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM(subject ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator() +var managedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM instances for property testing. +func ManagedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator != nil { + return managedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM(generators) + managedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM{}), generators) + + return managedClusterStorageProfileFileCSIDriver_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS_ARM, ManagedClusterStorageProfileSnapshotController_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS_ARM runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS_ARM(subject ManagedClusterStorageProfileSnapshotController_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileSnapshotController_STATUS_ARMGenerator() +var managedClusterStorageProfileSnapshotController_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotController_STATUS_ARMGenerator returns a generator of ManagedClusterStorageProfileSnapshotController_STATUS_ARM instances for property testing. +func ManagedClusterStorageProfileSnapshotController_STATUS_ARMGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotController_STATUS_ARMGenerator != nil { + return managedClusterStorageProfileSnapshotController_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS_ARM(generators) + managedClusterStorageProfileSnapshotController_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController_STATUS_ARM{}), generators) + + return managedClusterStorageProfileSnapshotController_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM, ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM(subject ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator() +var managedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM(generators) + managedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfileKeda_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM instances for property testing - +// lazily instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_UpgradeOverrideSettings_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings_STATUS_ARM, UpgradeOverrideSettings_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings_STATUS_ARM runs a test to see if a specific instance of UpgradeOverrideSettings_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings_STATUS_ARM(subject UpgradeOverrideSettings_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings_STATUS_ARM instances for property testing - lazily instantiated by +// UpgradeOverrideSettings_STATUS_ARMGenerator() +var upgradeOverrideSettings_STATUS_ARMGenerator gopter.Gen + +// UpgradeOverrideSettings_STATUS_ARMGenerator returns a generator of UpgradeOverrideSettings_STATUS_ARM instances for property testing. +func UpgradeOverrideSettings_STATUS_ARMGenerator() gopter.Gen { + if upgradeOverrideSettings_STATUS_ARMGenerator != nil { + return upgradeOverrideSettings_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS_ARM(generators) + upgradeOverrideSettings_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings_STATUS_ARM{}), generators) + + return upgradeOverrideSettings_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_WindowsGmsaProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile_STATUS_ARM, WindowsGmsaProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile_STATUS_ARM runs a test to see if a specific instance of WindowsGmsaProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile_STATUS_ARM(subject WindowsGmsaProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile_STATUS_ARM instances for property testing - lazily instantiated by +// WindowsGmsaProfile_STATUS_ARMGenerator() +var windowsGmsaProfile_STATUS_ARMGenerator gopter.Gen + +// WindowsGmsaProfile_STATUS_ARMGenerator returns a generator of WindowsGmsaProfile_STATUS_ARM instances for property testing. +func WindowsGmsaProfile_STATUS_ARMGenerator() gopter.Gen { + if windowsGmsaProfile_STATUS_ARMGenerator != nil { + return windowsGmsaProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS_ARM(generators) + windowsGmsaProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile_STATUS_ARM{}), generators) + + return windowsGmsaProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS_ARM, ContainerServiceSshPublicKey_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS_ARM runs a test to see if a specific instance of ContainerServiceSshPublicKey_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS_ARM(subject ContainerServiceSshPublicKey_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey_STATUS_ARM instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKey_STATUS_ARMGenerator() +var containerServiceSshPublicKey_STATUS_ARMGenerator gopter.Gen + +// ContainerServiceSshPublicKey_STATUS_ARMGenerator returns a generator of ContainerServiceSshPublicKey_STATUS_ARM instances for property testing. +func ContainerServiceSshPublicKey_STATUS_ARMGenerator() gopter.Gen { + if containerServiceSshPublicKey_STATUS_ARMGenerator != nil { + return containerServiceSshPublicKey_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS_ARM(generators) + containerServiceSshPublicKey_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey_STATUS_ARM{}), generators) + + return containerServiceSshPublicKey_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS_ARM(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioCertificateAuthority_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority_STATUS_ARM, IstioCertificateAuthority_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority_STATUS_ARM runs a test to see if a specific instance of IstioCertificateAuthority_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority_STATUS_ARM(subject IstioCertificateAuthority_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority_STATUS_ARM instances for property testing - lazily instantiated by +// IstioCertificateAuthority_STATUS_ARMGenerator() +var istioCertificateAuthority_STATUS_ARMGenerator gopter.Gen + +// IstioCertificateAuthority_STATUS_ARMGenerator returns a generator of IstioCertificateAuthority_STATUS_ARM instances for property testing. +func IstioCertificateAuthority_STATUS_ARMGenerator() gopter.Gen { + if istioCertificateAuthority_STATUS_ARMGenerator != nil { + return istioCertificateAuthority_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS_ARM(generators) + istioCertificateAuthority_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority_STATUS_ARM{}), generators) + + return istioCertificateAuthority_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthority_STATUS_ARMGenerator()) +} + +func Test_IstioComponents_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents_STATUS_ARM, IstioComponents_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents_STATUS_ARM runs a test to see if a specific instance of IstioComponents_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents_STATUS_ARM(subject IstioComponents_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents_STATUS_ARM instances for property testing - lazily instantiated by +// IstioComponents_STATUS_ARMGenerator() +var istioComponents_STATUS_ARMGenerator gopter.Gen + +// IstioComponents_STATUS_ARMGenerator returns a generator of IstioComponents_STATUS_ARM instances for property testing. +func IstioComponents_STATUS_ARMGenerator() gopter.Gen { + if istioComponents_STATUS_ARMGenerator != nil { + return istioComponents_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents_STATUS_ARM(generators) + istioComponents_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioComponents_STATUS_ARM{}), generators) + + return istioComponents_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents_STATUS_ARM(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGateway_STATUS_ARMGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGateway_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM, ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator() +var managedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM(generators) + managedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReference_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM, ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM(subject ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator() +var managedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM(generators) + managedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReference_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS_ARM, ManagedClusterManagedOutboundIPProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS_ARM runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS_ARM(subject ManagedClusterManagedOutboundIPProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile_STATUS_ARM instances for property testing - lazily instantiated +// by ManagedClusterManagedOutboundIPProfile_STATUS_ARMGenerator() +var managedClusterManagedOutboundIPProfile_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfile_STATUS_ARMGenerator returns a generator of ManagedClusterManagedOutboundIPProfile_STATUS_ARM instances for property testing. +func ManagedClusterManagedOutboundIPProfile_STATUS_ARMGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfile_STATUS_ARMGenerator != nil { + return managedClusterManagedOutboundIPProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS_ARM(generators) + managedClusterManagedOutboundIPProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile_STATUS_ARM{}), generators) + + return managedClusterManagedOutboundIPProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM, ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM(subject ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator() +var managedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM instances for property testing. +func ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator != nil { + return managedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM(generators) + managedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM{}), generators) + + return managedClusterPodIdentity_ProvisioningInfo_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningError_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM, ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM instances for property testing - +// lazily instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM(generators) + managedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ResourceReference_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference_STATUS_ARM, ResourceReference_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference_STATUS_ARM runs a test to see if a specific instance of ResourceReference_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference_STATUS_ARM(subject ResourceReference_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference_STATUS_ARM instances for property testing - lazily instantiated by +// ResourceReference_STATUS_ARMGenerator() +var resourceReference_STATUS_ARMGenerator gopter.Gen + +// ResourceReference_STATUS_ARMGenerator returns a generator of ResourceReference_STATUS_ARM instances for property testing. +func ResourceReference_STATUS_ARMGenerator() gopter.Gen { + if resourceReference_STATUS_ARMGenerator != nil { + return resourceReference_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForResourceReference_STATUS_ARM(generators) + resourceReference_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ResourceReference_STATUS_ARM{}), generators) + + return resourceReference_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForResourceReference_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForResourceReference_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioEgressGateway_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway_STATUS_ARM, IstioEgressGateway_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway_STATUS_ARM runs a test to see if a specific instance of IstioEgressGateway_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway_STATUS_ARM(subject IstioEgressGateway_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway_STATUS_ARM instances for property testing - lazily instantiated by +// IstioEgressGateway_STATUS_ARMGenerator() +var istioEgressGateway_STATUS_ARMGenerator gopter.Gen + +// IstioEgressGateway_STATUS_ARMGenerator returns a generator of IstioEgressGateway_STATUS_ARM instances for property testing. +func IstioEgressGateway_STATUS_ARMGenerator() gopter.Gen { + if istioEgressGateway_STATUS_ARMGenerator != nil { + return istioEgressGateway_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS_ARM(generators) + istioEgressGateway_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway_STATUS_ARM{}), generators) + + return istioEgressGateway_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioIngressGateway_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway_STATUS_ARM, IstioIngressGateway_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway_STATUS_ARM runs a test to see if a specific instance of IstioIngressGateway_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway_STATUS_ARM(subject IstioIngressGateway_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway_STATUS_ARM instances for property testing - lazily instantiated by +// IstioIngressGateway_STATUS_ARMGenerator() +var istioIngressGateway_STATUS_ARMGenerator gopter.Gen + +// IstioIngressGateway_STATUS_ARMGenerator returns a generator of IstioIngressGateway_STATUS_ARM instances for property testing. +func IstioIngressGateway_STATUS_ARMGenerator() gopter.Gen { + if istioIngressGateway_STATUS_ARMGenerator != nil { + return istioIngressGateway_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS_ARM(generators) + istioIngressGateway_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway_STATUS_ARM{}), generators) + + return istioIngressGateway_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(IstioIngressGateway_Mode_STATUS_External, IstioIngressGateway_Mode_STATUS_Internal)) +} + +func Test_IstioPluginCertificateAuthority_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS_ARM, IstioPluginCertificateAuthority_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS_ARM runs a test to see if a specific instance of IstioPluginCertificateAuthority_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS_ARM(subject IstioPluginCertificateAuthority_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority_STATUS_ARM instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthority_STATUS_ARMGenerator() +var istioPluginCertificateAuthority_STATUS_ARMGenerator gopter.Gen + +// IstioPluginCertificateAuthority_STATUS_ARMGenerator returns a generator of IstioPluginCertificateAuthority_STATUS_ARM instances for property testing. +func IstioPluginCertificateAuthority_STATUS_ARMGenerator() gopter.Gen { + if istioPluginCertificateAuthority_STATUS_ARMGenerator != nil { + return istioPluginCertificateAuthority_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS_ARM(generators) + istioPluginCertificateAuthority_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority_STATUS_ARM{}), generators) + + return istioPluginCertificateAuthority_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityProvisioningError_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningError_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS_ARM, ManagedClusterPodIdentityProvisioningError_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningError_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS_ARM(subject ManagedClusterPodIdentityProvisioningError_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningError_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningError_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningError_STATUS_ARMGenerator() +var managedClusterPodIdentityProvisioningError_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningError_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentityProvisioningError_STATUS_ARM instances for property testing. +func ManagedClusterPodIdentityProvisioningError_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningError_STATUS_ARMGenerator != nil { + return managedClusterPodIdentityProvisioningError_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS_ARM(generators) + managedClusterPodIdentityProvisioningError_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningError_STATUS_ARM{}), generators) + + return managedClusterPodIdentityProvisioningError_STATUS_ARMGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM instances for property testing. +// We first initialize managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Details"] = gen.SliceOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM instances for property testing - +// lazily instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM instances for property testing. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20231001/managed_cluster_types_gen.go new file mode 100644 index 00000000000..f656719ab21 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_types_gen.go @@ -0,0 +1,24754 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "context" + "fmt" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps" + "github.com/go-logr/logr" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName} +type ManagedCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ManagedCluster_Spec `json:"spec,omitempty"` + Status ManagedCluster_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ManagedCluster{} + +// GetConditions returns the conditions of the resource +func (cluster *ManagedCluster) GetConditions() conditions.Conditions { + return cluster.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (cluster *ManagedCluster) SetConditions(conditions conditions.Conditions) { + cluster.Status.Conditions = conditions +} + +var _ conversion.Convertible = &ManagedCluster{} + +// ConvertFrom populates our ManagedCluster from the provided hub ManagedCluster +func (cluster *ManagedCluster) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20231001s.ManagedCluster) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedCluster but received %T instead", hub) + } + + return cluster.AssignProperties_From_ManagedCluster(source) +} + +// ConvertTo populates the provided hub ManagedCluster from our ManagedCluster +func (cluster *ManagedCluster) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20231001s.ManagedCluster) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedCluster but received %T instead", hub) + } + + return cluster.AssignProperties_To_ManagedCluster(destination) +} + +// +kubebuilder:webhook:path=/mutate-containerservice-azure-com-v1api20231001-managedcluster,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclusters,verbs=create;update,versions=v1api20231001,name=default.v1api20231001.managedclusters.containerservice.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &ManagedCluster{} + +// Default applies defaults to the ManagedCluster resource +func (cluster *ManagedCluster) Default() { + cluster.defaultImpl() + var temp any = cluster + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (cluster *ManagedCluster) defaultAzureName() { + if cluster.Spec.AzureName == "" { + cluster.Spec.AzureName = cluster.Name + } +} + +// defaultImpl applies the code generated defaults to the ManagedCluster resource +func (cluster *ManagedCluster) defaultImpl() { cluster.defaultAzureName() } + +var _ genruntime.ImportableResource = &ManagedCluster{} + +// InitializeSpec initializes the spec for this resource from the given status +func (cluster *ManagedCluster) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*ManagedCluster_STATUS); ok { + return cluster.Spec.Initialize_From_ManagedCluster_STATUS(s) + } + + return fmt.Errorf("expected Status of type ManagedCluster_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesExporter = &ManagedCluster{} + +// ExportKubernetesResources defines a resource which can create other resources in Kubernetes. +func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) { + collector := configmaps.NewCollector(cluster.Namespace) + if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil { + if cluster.Status.OidcIssuerProfile != nil { + if cluster.Status.OidcIssuerProfile.IssuerURL != nil { + collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL) + } + } + } + result, err := collector.Values() + if err != nil { + return nil, err + } + return configmaps.SliceToClientObjectSlice(result), nil +} + +var _ genruntime.KubernetesResource = &ManagedCluster{} + +// AzureName returns the Azure name of the resource +func (cluster *ManagedCluster) AzureName() string { + return cluster.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (cluster ManagedCluster) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (cluster *ManagedCluster) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (cluster *ManagedCluster) GetSpec() genruntime.ConvertibleSpec { + return &cluster.Spec +} + +// GetStatus returns the status of this resource +func (cluster *ManagedCluster) GetStatus() genruntime.ConvertibleStatus { + return &cluster.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (cluster *ManagedCluster) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters" +func (cluster *ManagedCluster) GetType() string { + return "Microsoft.ContainerService/managedClusters" +} + +// NewEmptyStatus returns a new empty (blank) status +func (cluster *ManagedCluster) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ManagedCluster_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (cluster *ManagedCluster) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(cluster.Spec) + return cluster.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (cluster *ManagedCluster) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ManagedCluster_STATUS); ok { + cluster.Status = *st + return nil + } + + // Convert status to required version + var st ManagedCluster_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + cluster.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-containerservice-azure-com-v1api20231001-managedcluster,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclusters,verbs=create;update,versions=v1api20231001,name=validate.v1api20231001.managedclusters.containerservice.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &ManagedCluster{} + +// ValidateCreate validates the creation of the resource +func (cluster *ManagedCluster) ValidateCreate() (admission.Warnings, error) { + validations := cluster.createValidations() + var temp any = cluster + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (cluster *ManagedCluster) ValidateDelete() (admission.Warnings, error) { + validations := cluster.deleteValidations() + var temp any = cluster + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (cluster *ManagedCluster) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := cluster.updateValidations() + var temp any = cluster + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.UpdateValidations()...) + } + return genruntime.ValidateUpdate(old, validations) +} + +// createValidations validates the creation of the resource +func (cluster *ManagedCluster) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){cluster.validateResourceReferences, cluster.validateOwnerReference, cluster.validateSecretDestinations, cluster.validateConfigMapDestinations} +} + +// deleteValidations validates the deletion of the resource +func (cluster *ManagedCluster) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (cluster *ManagedCluster) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return cluster.validateResourceReferences() + }, + cluster.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return cluster.validateOwnerReference() + }, + func(old runtime.Object) (admission.Warnings, error) { + return cluster.validateSecretDestinations() + }, + func(old runtime.Object) (admission.Warnings, error) { + return cluster.validateConfigMapDestinations() + }, + } +} + +// validateConfigMapDestinations validates there are no colliding genruntime.ConfigMapDestinations +func (cluster *ManagedCluster) validateConfigMapDestinations() (admission.Warnings, error) { + if cluster.Spec.OperatorSpec == nil { + return nil, nil + } + if cluster.Spec.OperatorSpec.ConfigMaps == nil { + return nil, nil + } + toValidate := []*genruntime.ConfigMapDestination{ + cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, + } + return genruntime.ValidateConfigMapDestinations(toValidate) +} + +// validateOwnerReference validates the owner field +func (cluster *ManagedCluster) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(cluster) +} + +// validateResourceReferences validates all resource references +func (cluster *ManagedCluster) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&cluster.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateSecretDestinations validates there are no colliding genruntime.SecretDestination's +func (cluster *ManagedCluster) validateSecretDestinations() (admission.Warnings, error) { + if cluster.Spec.OperatorSpec == nil { + return nil, nil + } + if cluster.Spec.OperatorSpec.Secrets == nil { + return nil, nil + } + toValidate := []*genruntime.SecretDestination{ + cluster.Spec.OperatorSpec.Secrets.AdminCredentials, + cluster.Spec.OperatorSpec.Secrets.UserCredentials, + } + return genruntime.ValidateSecretDestinations(toValidate) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (cluster *ManagedCluster) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*ManagedCluster) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, cluster) +} + +// AssignProperties_From_ManagedCluster populates our ManagedCluster from the provided source ManagedCluster +func (cluster *ManagedCluster) AssignProperties_From_ManagedCluster(source *v20231001s.ManagedCluster) error { + + // ObjectMeta + cluster.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec ManagedCluster_Spec + err := spec.AssignProperties_From_ManagedCluster_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedCluster_Spec() to populate field Spec") + } + cluster.Spec = spec + + // Status + var status ManagedCluster_STATUS + err = status.AssignProperties_From_ManagedCluster_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedCluster_STATUS() to populate field Status") + } + cluster.Status = status + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster populates the provided destination ManagedCluster from our ManagedCluster +func (cluster *ManagedCluster) AssignProperties_To_ManagedCluster(destination *v20231001s.ManagedCluster) error { + + // ObjectMeta + destination.ObjectMeta = *cluster.ObjectMeta.DeepCopy() + + // Spec + var spec v20231001s.ManagedCluster_Spec + err := cluster.Spec.AssignProperties_To_ManagedCluster_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedCluster_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20231001s.ManagedCluster_STATUS + err = cluster.Status.AssignProperties_To_ManagedCluster_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedCluster_STATUS() to populate field Status") + } + destination.Status = status + + // No error + return nil +} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (cluster *ManagedCluster) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: cluster.Spec.OriginalVersion(), + Kind: "ManagedCluster", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName} +type ManagedClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ManagedCluster `json:"items"` +} + +// +kubebuilder:validation:Enum={"2023-10-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-10-01") + +type ManagedCluster_Spec struct { + // AadProfile: The Azure Active Directory configuration. + AadProfile *ManagedClusterAADProfile `json:"aadProfile,omitempty"` + + // AddonProfiles: The profile of managed cluster add-on. + AddonProfiles map[string]ManagedClusterAddonProfile `json:"addonProfiles,omitempty"` + + // AgentPoolProfiles: The agent pool properties. + AgentPoolProfiles []ManagedClusterAgentPoolProfile `json:"agentPoolProfiles,omitempty"` + + // ApiServerAccessProfile: The access profile for managed cluster API server. + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile `json:"apiServerAccessProfile,omitempty"` + + // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile `json:"autoScalerProfile,omitempty"` + + // AutoUpgradeProfile: The auto upgrade configuration. + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile `json:"autoUpgradeProfile,omitempty"` + + // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. + AzureMonitorProfile *ManagedClusterAzureMonitorProfile `json:"azureMonitorProfile,omitempty"` + + // +kubebuilder:validation:MaxLength=63 + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern="^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$" + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be + // used on Managed Clusters that are AAD enabled. For more details see [disable local + // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + + // DiskEncryptionSetReference: This is of the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' + DiskEncryptionSetReference *genruntime.ResourceReference `armReference:"DiskEncryptionSetID" json:"diskEncryptionSetReference,omitempty"` + + // DnsPrefix: This cannot be updated once the Managed Cluster has been created. + DnsPrefix *string `json:"dnsPrefix,omitempty"` + + // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was + // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and + // https://aka.ms/aks/psp. + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + + // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. + EnableRBAC *bool `json:"enableRBAC,omitempty"` + + // ExtendedLocation: The extended location of the Virtual Machine. + ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"` + + // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + + // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. + HttpProxyConfig *ManagedClusterHTTPProxyConfig `json:"httpProxyConfig,omitempty"` + + // Identity: The identity of the managed cluster, if configured. + Identity *ManagedClusterIdentity `json:"identity,omitempty"` + + // IdentityProfile: Identities associated with the cluster. + IdentityProfile map[string]UserAssignedIdentity `json:"identityProfile,omitempty"` + + // KubernetesVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All + // upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or + // 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS + // cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details. + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + + // LinuxProfile: The profile for Linux VMs in the Managed Cluster. + LinuxProfile *ContainerServiceLinuxProfile `json:"linuxProfile,omitempty"` + + // +kubebuilder:validation:Required + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // NetworkProfile: The network configuration profile. + NetworkProfile *ContainerServiceNetworkProfile `json:"networkProfile,omitempty"` + + // NodeResourceGroup: The name of the resource group containing agent pool nodes. + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + + // OidcIssuerProfile: The OIDC issuer profile of the Managed Cluster. + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile `json:"oidcIssuerProfile,omitempty"` + + // OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not + // passed directly to Azure + OperatorSpec *ManagedClusterOperatorSpec `json:"operatorSpec,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + + // PodIdentityProfile: See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more + // details on AAD pod identity integration. + PodIdentityProfile *ManagedClusterPodIdentityProfile `json:"podIdentityProfile,omitempty"` + + // PrivateLinkResources: Private link resources associated with the cluster. + PrivateLinkResources []PrivateLinkResource `json:"privateLinkResources,omitempty"` + + // PublicNetworkAccess: Allow or deny public network access for AKS + PublicNetworkAccess *ManagedClusterProperties_PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + + // SecurityProfile: Security profile for the managed cluster. + SecurityProfile *ManagedClusterSecurityProfile `json:"securityProfile,omitempty"` + + // ServiceMeshProfile: Service mesh profile for a managed cluster. + ServiceMeshProfile *ServiceMeshProfile `json:"serviceMeshProfile,omitempty"` + + // ServicePrincipalProfile: Information about a service principal identity for the cluster to use for manipulating Azure + // APIs. + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"` + + // Sku: The managed cluster SKU. + Sku *ManagedClusterSKU `json:"sku,omitempty"` + + // StorageProfile: Storage profile for the managed cluster. + StorageProfile *ManagedClusterStorageProfile `json:"storageProfile,omitempty"` + + // SupportPlan: The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'. + SupportPlan *KubernetesSupportPlan `json:"supportPlan,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // UpgradeSettings: Settings for upgrading a cluster. + UpgradeSettings *ClusterUpgradeSettings `json:"upgradeSettings,omitempty"` + + // WindowsProfile: The profile for Windows VMs in the Managed Cluster. + WindowsProfile *ManagedClusterWindowsProfile `json:"windowsProfile,omitempty"` + + // WorkloadAutoScalerProfile: Workload Auto-scaler profile for the managed cluster. + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile `json:"workloadAutoScalerProfile,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedCluster_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (cluster *ManagedCluster_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if cluster == nil { + return nil, nil + } + result := &ManagedCluster_Spec_ARM{} + + // Set property "ExtendedLocation": + if cluster.ExtendedLocation != nil { + extendedLocation_ARM, err := (*cluster.ExtendedLocation).ConvertToARM(resolved) + if err != nil { + return nil, err + } + extendedLocation := *extendedLocation_ARM.(*ExtendedLocation_ARM) + result.ExtendedLocation = &extendedLocation + } + + // Set property "Identity": + if cluster.Identity != nil { + identity_ARM, err := (*cluster.Identity).ConvertToARM(resolved) + if err != nil { + return nil, err + } + identity := *identity_ARM.(*ManagedClusterIdentity_ARM) + result.Identity = &identity + } + + // Set property "Location": + if cluster.Location != nil { + location := *cluster.Location + result.Location = &location + } + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Properties": + if cluster.AadProfile != nil || + cluster.AddonProfiles != nil || + cluster.AgentPoolProfiles != nil || + cluster.ApiServerAccessProfile != nil || + cluster.AutoScalerProfile != nil || + cluster.AutoUpgradeProfile != nil || + cluster.AzureMonitorProfile != nil || + cluster.DisableLocalAccounts != nil || + cluster.DiskEncryptionSetReference != nil || + cluster.DnsPrefix != nil || + cluster.EnablePodSecurityPolicy != nil || + cluster.EnableRBAC != nil || + cluster.FqdnSubdomain != nil || + cluster.HttpProxyConfig != nil || + cluster.IdentityProfile != nil || + cluster.KubernetesVersion != nil || + cluster.LinuxProfile != nil || + cluster.NetworkProfile != nil || + cluster.NodeResourceGroup != nil || + cluster.OidcIssuerProfile != nil || + cluster.PodIdentityProfile != nil || + cluster.PrivateLinkResources != nil || + cluster.PublicNetworkAccess != nil || + cluster.SecurityProfile != nil || + cluster.ServiceMeshProfile != nil || + cluster.ServicePrincipalProfile != nil || + cluster.StorageProfile != nil || + cluster.SupportPlan != nil || + cluster.UpgradeSettings != nil || + cluster.WindowsProfile != nil || + cluster.WorkloadAutoScalerProfile != nil { + result.Properties = &ManagedClusterProperties_ARM{} + } + if cluster.AadProfile != nil { + aadProfile_ARM, err := (*cluster.AadProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + aadProfile := *aadProfile_ARM.(*ManagedClusterAADProfile_ARM) + result.Properties.AadProfile = &aadProfile + } + if cluster.AddonProfiles != nil { + result.Properties.AddonProfiles = make(map[string]ManagedClusterAddonProfile_ARM, len(cluster.AddonProfiles)) + for key, value := range cluster.AddonProfiles { + value_ARM, err := value.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.AddonProfiles[key] = *value_ARM.(*ManagedClusterAddonProfile_ARM) + } + } + for _, item := range cluster.AgentPoolProfiles { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.AgentPoolProfiles = append(result.Properties.AgentPoolProfiles, *item_ARM.(*ManagedClusterAgentPoolProfile_ARM)) + } + if cluster.ApiServerAccessProfile != nil { + apiServerAccessProfile_ARM, err := (*cluster.ApiServerAccessProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + apiServerAccessProfile := *apiServerAccessProfile_ARM.(*ManagedClusterAPIServerAccessProfile_ARM) + result.Properties.ApiServerAccessProfile = &apiServerAccessProfile + } + if cluster.AutoScalerProfile != nil { + autoScalerProfile_ARM, err := (*cluster.AutoScalerProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + autoScalerProfile := *autoScalerProfile_ARM.(*ManagedClusterProperties_AutoScalerProfile_ARM) + result.Properties.AutoScalerProfile = &autoScalerProfile + } + if cluster.AutoUpgradeProfile != nil { + autoUpgradeProfile_ARM, err := (*cluster.AutoUpgradeProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + autoUpgradeProfile := *autoUpgradeProfile_ARM.(*ManagedClusterAutoUpgradeProfile_ARM) + result.Properties.AutoUpgradeProfile = &autoUpgradeProfile + } + if cluster.AzureMonitorProfile != nil { + azureMonitorProfile_ARM, err := (*cluster.AzureMonitorProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + azureMonitorProfile := *azureMonitorProfile_ARM.(*ManagedClusterAzureMonitorProfile_ARM) + result.Properties.AzureMonitorProfile = &azureMonitorProfile + } + if cluster.DisableLocalAccounts != nil { + disableLocalAccounts := *cluster.DisableLocalAccounts + result.Properties.DisableLocalAccounts = &disableLocalAccounts + } + if cluster.DiskEncryptionSetReference != nil { + diskEncryptionSetIDARMID, err := resolved.ResolvedReferences.Lookup(*cluster.DiskEncryptionSetReference) + if err != nil { + return nil, err + } + diskEncryptionSetID := diskEncryptionSetIDARMID + result.Properties.DiskEncryptionSetID = &diskEncryptionSetID + } + if cluster.DnsPrefix != nil { + dnsPrefix := *cluster.DnsPrefix + result.Properties.DnsPrefix = &dnsPrefix + } + if cluster.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *cluster.EnablePodSecurityPolicy + result.Properties.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } + if cluster.EnableRBAC != nil { + enableRBAC := *cluster.EnableRBAC + result.Properties.EnableRBAC = &enableRBAC + } + if cluster.FqdnSubdomain != nil { + fqdnSubdomain := *cluster.FqdnSubdomain + result.Properties.FqdnSubdomain = &fqdnSubdomain + } + if cluster.HttpProxyConfig != nil { + httpProxyConfig_ARM, err := (*cluster.HttpProxyConfig).ConvertToARM(resolved) + if err != nil { + return nil, err + } + httpProxyConfig := *httpProxyConfig_ARM.(*ManagedClusterHTTPProxyConfig_ARM) + result.Properties.HttpProxyConfig = &httpProxyConfig + } + if cluster.IdentityProfile != nil { + result.Properties.IdentityProfile = make(map[string]UserAssignedIdentity_ARM, len(cluster.IdentityProfile)) + for key, value := range cluster.IdentityProfile { + value_ARM, err := value.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.IdentityProfile[key] = *value_ARM.(*UserAssignedIdentity_ARM) + } + } + if cluster.KubernetesVersion != nil { + kubernetesVersion := *cluster.KubernetesVersion + result.Properties.KubernetesVersion = &kubernetesVersion + } + if cluster.LinuxProfile != nil { + linuxProfile_ARM, err := (*cluster.LinuxProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + linuxProfile := *linuxProfile_ARM.(*ContainerServiceLinuxProfile_ARM) + result.Properties.LinuxProfile = &linuxProfile + } + if cluster.NetworkProfile != nil { + networkProfile_ARM, err := (*cluster.NetworkProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + networkProfile := *networkProfile_ARM.(*ContainerServiceNetworkProfile_ARM) + result.Properties.NetworkProfile = &networkProfile + } + if cluster.NodeResourceGroup != nil { + nodeResourceGroup := *cluster.NodeResourceGroup + result.Properties.NodeResourceGroup = &nodeResourceGroup + } + if cluster.OidcIssuerProfile != nil { + oidcIssuerProfile_ARM, err := (*cluster.OidcIssuerProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + oidcIssuerProfile := *oidcIssuerProfile_ARM.(*ManagedClusterOIDCIssuerProfile_ARM) + result.Properties.OidcIssuerProfile = &oidcIssuerProfile + } + if cluster.PodIdentityProfile != nil { + podIdentityProfile_ARM, err := (*cluster.PodIdentityProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + podIdentityProfile := *podIdentityProfile_ARM.(*ManagedClusterPodIdentityProfile_ARM) + result.Properties.PodIdentityProfile = &podIdentityProfile + } + for _, item := range cluster.PrivateLinkResources { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.PrivateLinkResources = append(result.Properties.PrivateLinkResources, *item_ARM.(*PrivateLinkResource_ARM)) + } + if cluster.PublicNetworkAccess != nil { + publicNetworkAccess := *cluster.PublicNetworkAccess + result.Properties.PublicNetworkAccess = &publicNetworkAccess + } + if cluster.SecurityProfile != nil { + securityProfile_ARM, err := (*cluster.SecurityProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + securityProfile := *securityProfile_ARM.(*ManagedClusterSecurityProfile_ARM) + result.Properties.SecurityProfile = &securityProfile + } + if cluster.ServiceMeshProfile != nil { + serviceMeshProfile_ARM, err := (*cluster.ServiceMeshProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + serviceMeshProfile := *serviceMeshProfile_ARM.(*ServiceMeshProfile_ARM) + result.Properties.ServiceMeshProfile = &serviceMeshProfile + } + if cluster.ServicePrincipalProfile != nil { + servicePrincipalProfile_ARM, err := (*cluster.ServicePrincipalProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + servicePrincipalProfile := *servicePrincipalProfile_ARM.(*ManagedClusterServicePrincipalProfile_ARM) + result.Properties.ServicePrincipalProfile = &servicePrincipalProfile + } + if cluster.StorageProfile != nil { + storageProfile_ARM, err := (*cluster.StorageProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + storageProfile := *storageProfile_ARM.(*ManagedClusterStorageProfile_ARM) + result.Properties.StorageProfile = &storageProfile + } + if cluster.SupportPlan != nil { + supportPlan := *cluster.SupportPlan + result.Properties.SupportPlan = &supportPlan + } + if cluster.UpgradeSettings != nil { + upgradeSettings_ARM, err := (*cluster.UpgradeSettings).ConvertToARM(resolved) + if err != nil { + return nil, err + } + upgradeSettings := *upgradeSettings_ARM.(*ClusterUpgradeSettings_ARM) + result.Properties.UpgradeSettings = &upgradeSettings + } + if cluster.WindowsProfile != nil { + windowsProfile_ARM, err := (*cluster.WindowsProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + windowsProfile := *windowsProfile_ARM.(*ManagedClusterWindowsProfile_ARM) + result.Properties.WindowsProfile = &windowsProfile + } + if cluster.WorkloadAutoScalerProfile != nil { + workloadAutoScalerProfile_ARM, err := (*cluster.WorkloadAutoScalerProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + workloadAutoScalerProfile := *workloadAutoScalerProfile_ARM.(*ManagedClusterWorkloadAutoScalerProfile_ARM) + result.Properties.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } + + // Set property "Sku": + if cluster.Sku != nil { + sku_ARM, err := (*cluster.Sku).ConvertToARM(resolved) + if err != nil { + return nil, err + } + sku := *sku_ARM.(*ManagedClusterSKU_ARM) + result.Sku = &sku + } + + // Set property "Tags": + if cluster.Tags != nil { + result.Tags = make(map[string]string, len(cluster.Tags)) + for key, value := range cluster.Tags { + result.Tags[key] = value + } + } else { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.Tags = make(map[string]string) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (cluster *ManagedCluster_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedCluster_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (cluster *ManagedCluster_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedCluster_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedCluster_Spec_ARM, got %T", armInput) + } + + // Set property "AadProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AadProfile != nil { + var aadProfile1 ManagedClusterAADProfile + err := aadProfile1.PopulateFromARM(owner, *typedInput.Properties.AadProfile) + if err != nil { + return err + } + aadProfile := aadProfile1 + cluster.AadProfile = &aadProfile + } + } + + // Set property "AddonProfiles": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AddonProfiles != nil { + cluster.AddonProfiles = make(map[string]ManagedClusterAddonProfile, len(typedInput.Properties.AddonProfiles)) + for key, value := range typedInput.Properties.AddonProfiles { + var value1 ManagedClusterAddonProfile + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + cluster.AddonProfiles[key] = value1 + } + } + } + + // Set property "AgentPoolProfiles": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AgentPoolProfiles { + var item1 ManagedClusterAgentPoolProfile + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + cluster.AgentPoolProfiles = append(cluster.AgentPoolProfiles, item1) + } + } + + // Set property "ApiServerAccessProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ApiServerAccessProfile != nil { + var apiServerAccessProfile1 ManagedClusterAPIServerAccessProfile + err := apiServerAccessProfile1.PopulateFromARM(owner, *typedInput.Properties.ApiServerAccessProfile) + if err != nil { + return err + } + apiServerAccessProfile := apiServerAccessProfile1 + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } + } + + // Set property "AutoScalerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AutoScalerProfile != nil { + var autoScalerProfile1 ManagedClusterProperties_AutoScalerProfile + err := autoScalerProfile1.PopulateFromARM(owner, *typedInput.Properties.AutoScalerProfile) + if err != nil { + return err + } + autoScalerProfile := autoScalerProfile1 + cluster.AutoScalerProfile = &autoScalerProfile + } + } + + // Set property "AutoUpgradeProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AutoUpgradeProfile != nil { + var autoUpgradeProfile1 ManagedClusterAutoUpgradeProfile + err := autoUpgradeProfile1.PopulateFromARM(owner, *typedInput.Properties.AutoUpgradeProfile) + if err != nil { + return err + } + autoUpgradeProfile := autoUpgradeProfile1 + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } + } + + // Set property "AzureMonitorProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AzureMonitorProfile != nil { + var azureMonitorProfile1 ManagedClusterAzureMonitorProfile + err := azureMonitorProfile1.PopulateFromARM(owner, *typedInput.Properties.AzureMonitorProfile) + if err != nil { + return err + } + azureMonitorProfile := azureMonitorProfile1 + cluster.AzureMonitorProfile = &azureMonitorProfile + } + } + + // Set property "AzureName": + cluster.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "DisableLocalAccounts": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DisableLocalAccounts != nil { + disableLocalAccounts := *typedInput.Properties.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccounts + } + } + + // no assignment for property "DiskEncryptionSetReference" + + // Set property "DnsPrefix": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DnsPrefix != nil { + dnsPrefix := *typedInput.Properties.DnsPrefix + cluster.DnsPrefix = &dnsPrefix + } + } + + // Set property "EnablePodSecurityPolicy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *typedInput.Properties.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } + } + + // Set property "EnableRBAC": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableRBAC != nil { + enableRBAC := *typedInput.Properties.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } + } + + // Set property "ExtendedLocation": + if typedInput.ExtendedLocation != nil { + var extendedLocation1 ExtendedLocation + err := extendedLocation1.PopulateFromARM(owner, *typedInput.ExtendedLocation) + if err != nil { + return err + } + extendedLocation := extendedLocation1 + cluster.ExtendedLocation = &extendedLocation + } + + // Set property "FqdnSubdomain": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.FqdnSubdomain != nil { + fqdnSubdomain := *typedInput.Properties.FqdnSubdomain + cluster.FqdnSubdomain = &fqdnSubdomain + } + } + + // Set property "HttpProxyConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.HttpProxyConfig != nil { + var httpProxyConfig1 ManagedClusterHTTPProxyConfig + err := httpProxyConfig1.PopulateFromARM(owner, *typedInput.Properties.HttpProxyConfig) + if err != nil { + return err + } + httpProxyConfig := httpProxyConfig1 + cluster.HttpProxyConfig = &httpProxyConfig + } + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity1 ManagedClusterIdentity + err := identity1.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity := identity1 + cluster.Identity = &identity + } + + // Set property "IdentityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.IdentityProfile != nil { + cluster.IdentityProfile = make(map[string]UserAssignedIdentity, len(typedInput.Properties.IdentityProfile)) + for key, value := range typedInput.Properties.IdentityProfile { + var value1 UserAssignedIdentity + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + cluster.IdentityProfile[key] = value1 + } + } + } + + // Set property "KubernetesVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubernetesVersion != nil { + kubernetesVersion := *typedInput.Properties.KubernetesVersion + cluster.KubernetesVersion = &kubernetesVersion + } + } + + // Set property "LinuxProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.LinuxProfile != nil { + var linuxProfile1 ContainerServiceLinuxProfile + err := linuxProfile1.PopulateFromARM(owner, *typedInput.Properties.LinuxProfile) + if err != nil { + return err + } + linuxProfile := linuxProfile1 + cluster.LinuxProfile = &linuxProfile + } + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + cluster.Location = &location + } + + // Set property "NetworkProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NetworkProfile != nil { + var networkProfile1 ContainerServiceNetworkProfile + err := networkProfile1.PopulateFromARM(owner, *typedInput.Properties.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + cluster.NetworkProfile = &networkProfile + } + } + + // Set property "NodeResourceGroup": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodeResourceGroup != nil { + nodeResourceGroup := *typedInput.Properties.NodeResourceGroup + cluster.NodeResourceGroup = &nodeResourceGroup + } + } + + // Set property "OidcIssuerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OidcIssuerProfile != nil { + var oidcIssuerProfile1 ManagedClusterOIDCIssuerProfile + err := oidcIssuerProfile1.PopulateFromARM(owner, *typedInput.Properties.OidcIssuerProfile) + if err != nil { + return err + } + oidcIssuerProfile := oidcIssuerProfile1 + cluster.OidcIssuerProfile = &oidcIssuerProfile + } + } + + // no assignment for property "OperatorSpec" + + // Set property "Owner": + cluster.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // Set property "PodIdentityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PodIdentityProfile != nil { + var podIdentityProfile1 ManagedClusterPodIdentityProfile + err := podIdentityProfile1.PopulateFromARM(owner, *typedInput.Properties.PodIdentityProfile) + if err != nil { + return err + } + podIdentityProfile := podIdentityProfile1 + cluster.PodIdentityProfile = &podIdentityProfile + } + } + + // Set property "PrivateLinkResources": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PrivateLinkResources { + var item1 PrivateLinkResource + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + cluster.PrivateLinkResources = append(cluster.PrivateLinkResources, item1) + } + } + + // Set property "PublicNetworkAccess": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicNetworkAccess != nil { + publicNetworkAccess := *typedInput.Properties.PublicNetworkAccess + cluster.PublicNetworkAccess = &publicNetworkAccess + } + } + + // Set property "SecurityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SecurityProfile != nil { + var securityProfile1 ManagedClusterSecurityProfile + err := securityProfile1.PopulateFromARM(owner, *typedInput.Properties.SecurityProfile) + if err != nil { + return err + } + securityProfile := securityProfile1 + cluster.SecurityProfile = &securityProfile + } + } + + // Set property "ServiceMeshProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ServiceMeshProfile != nil { + var serviceMeshProfile1 ServiceMeshProfile + err := serviceMeshProfile1.PopulateFromARM(owner, *typedInput.Properties.ServiceMeshProfile) + if err != nil { + return err + } + serviceMeshProfile := serviceMeshProfile1 + cluster.ServiceMeshProfile = &serviceMeshProfile + } + } + + // Set property "ServicePrincipalProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ServicePrincipalProfile != nil { + var servicePrincipalProfile1 ManagedClusterServicePrincipalProfile + err := servicePrincipalProfile1.PopulateFromARM(owner, *typedInput.Properties.ServicePrincipalProfile) + if err != nil { + return err + } + servicePrincipalProfile := servicePrincipalProfile1 + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } + } + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ManagedClusterSKU + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + cluster.Sku = &sku + } + + // Set property "StorageProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.StorageProfile != nil { + var storageProfile1 ManagedClusterStorageProfile + err := storageProfile1.PopulateFromARM(owner, *typedInput.Properties.StorageProfile) + if err != nil { + return err + } + storageProfile := storageProfile1 + cluster.StorageProfile = &storageProfile + } + } + + // Set property "SupportPlan": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SupportPlan != nil { + supportPlan := *typedInput.Properties.SupportPlan + cluster.SupportPlan = &supportPlan + } + } + + // Set property "Tags": + if typedInput.Tags != nil { + cluster.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + cluster.Tags[key] = value + } + } + + // Set property "UpgradeSettings": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpgradeSettings != nil { + var upgradeSettings1 ClusterUpgradeSettings + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.Properties.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + cluster.UpgradeSettings = &upgradeSettings + } + } + + // Set property "WindowsProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WindowsProfile != nil { + var windowsProfile1 ManagedClusterWindowsProfile + err := windowsProfile1.PopulateFromARM(owner, *typedInput.Properties.WindowsProfile) + if err != nil { + return err + } + windowsProfile := windowsProfile1 + cluster.WindowsProfile = &windowsProfile + } + } + + // Set property "WorkloadAutoScalerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile1 ManagedClusterWorkloadAutoScalerProfile + err := workloadAutoScalerProfile1.PopulateFromARM(owner, *typedInput.Properties.WorkloadAutoScalerProfile) + if err != nil { + return err + } + workloadAutoScalerProfile := workloadAutoScalerProfile1 + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &ManagedCluster_Spec{} + +// ConvertSpecFrom populates our ManagedCluster_Spec from the provided source +func (cluster *ManagedCluster_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*v20231001s.ManagedCluster_Spec) + if ok { + // Populate our instance from source + return cluster.AssignProperties_From_ManagedCluster_Spec(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedCluster_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = cluster.AssignProperties_From_ManagedCluster_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*v20231001s.ManagedCluster_Spec) + if ok { + // Populate destination from our instance + return cluster.AssignProperties_To_ManagedCluster_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedCluster_Spec{} + err := cluster.AssignProperties_To_ManagedCluster_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } + + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil +} + +// AssignProperties_From_ManagedCluster_Spec populates our ManagedCluster_Spec from the provided source ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) AssignProperties_From_ManagedCluster_Spec(source *v20231001s.ManagedCluster_Spec) error { + + // AadProfile + if source.AadProfile != nil { + var aadProfile ManagedClusterAADProfile + err := aadProfile.AssignProperties_From_ManagedClusterAADProfile(source.AadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAADProfile() to populate field AadProfile") + } + cluster.AadProfile = &aadProfile + } else { + cluster.AadProfile = nil + } + + // AddonProfiles + if source.AddonProfiles != nil { + addonProfileMap := make(map[string]ManagedClusterAddonProfile, len(source.AddonProfiles)) + for addonProfileKey, addonProfileValue := range source.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile ManagedClusterAddonProfile + err := addonProfile.AssignProperties_From_ManagedClusterAddonProfile(&addonProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAddonProfile() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + cluster.AddonProfiles = addonProfileMap + } else { + cluster.AddonProfiles = nil + } + + // AgentPoolProfiles + if source.AgentPoolProfiles != nil { + agentPoolProfileList := make([]ManagedClusterAgentPoolProfile, len(source.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile ManagedClusterAgentPoolProfile + err := agentPoolProfile.AssignProperties_From_ManagedClusterAgentPoolProfile(&agentPoolProfileItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAgentPoolProfile() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + cluster.AgentPoolProfiles = agentPoolProfileList + } else { + cluster.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if source.ApiServerAccessProfile != nil { + var apiServerAccessProfile ManagedClusterAPIServerAccessProfile + err := apiServerAccessProfile.AssignProperties_From_ManagedClusterAPIServerAccessProfile(source.ApiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAPIServerAccessProfile() to populate field ApiServerAccessProfile") + } + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } else { + cluster.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if source.AutoScalerProfile != nil { + var autoScalerProfile ManagedClusterProperties_AutoScalerProfile + err := autoScalerProfile.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(source.AutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterProperties_AutoScalerProfile() to populate field AutoScalerProfile") + } + cluster.AutoScalerProfile = &autoScalerProfile + } else { + cluster.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if source.AutoUpgradeProfile != nil { + var autoUpgradeProfile ManagedClusterAutoUpgradeProfile + err := autoUpgradeProfile.AssignProperties_From_ManagedClusterAutoUpgradeProfile(source.AutoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAutoUpgradeProfile() to populate field AutoUpgradeProfile") + } + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } else { + cluster.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if source.AzureMonitorProfile != nil { + var azureMonitorProfile ManagedClusterAzureMonitorProfile + err := azureMonitorProfile.AssignProperties_From_ManagedClusterAzureMonitorProfile(source.AzureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfile() to populate field AzureMonitorProfile") + } + cluster.AzureMonitorProfile = &azureMonitorProfile + } else { + cluster.AzureMonitorProfile = nil + } + + // AzureName + cluster.AzureName = source.AzureName + + // DisableLocalAccounts + if source.DisableLocalAccounts != nil { + disableLocalAccount := *source.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccount + } else { + cluster.DisableLocalAccounts = nil + } + + // DiskEncryptionSetReference + if source.DiskEncryptionSetReference != nil { + diskEncryptionSetReference := source.DiskEncryptionSetReference.Copy() + cluster.DiskEncryptionSetReference = &diskEncryptionSetReference + } else { + cluster.DiskEncryptionSetReference = nil + } + + // DnsPrefix + cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) + + // EnablePodSecurityPolicy + if source.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *source.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + cluster.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if source.EnableRBAC != nil { + enableRBAC := *source.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } else { + cluster.EnableRBAC = nil + } + + // ExtendedLocation + if source.ExtendedLocation != nil { + var extendedLocation ExtendedLocation + err := extendedLocation.AssignProperties_From_ExtendedLocation(source.ExtendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ExtendedLocation() to populate field ExtendedLocation") + } + cluster.ExtendedLocation = &extendedLocation + } else { + cluster.ExtendedLocation = nil + } + + // FqdnSubdomain + cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) + + // HttpProxyConfig + if source.HttpProxyConfig != nil { + var httpProxyConfig ManagedClusterHTTPProxyConfig + err := httpProxyConfig.AssignProperties_From_ManagedClusterHTTPProxyConfig(source.HttpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterHTTPProxyConfig() to populate field HttpProxyConfig") + } + cluster.HttpProxyConfig = &httpProxyConfig + } else { + cluster.HttpProxyConfig = nil + } + + // Identity + if source.Identity != nil { + var identity ManagedClusterIdentity + err := identity.AssignProperties_From_ManagedClusterIdentity(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity() to populate field Identity") + } + cluster.Identity = &identity + } else { + cluster.Identity = nil + } + + // IdentityProfile + if source.IdentityProfile != nil { + identityProfileMap := make(map[string]UserAssignedIdentity, len(source.IdentityProfile)) + for identityProfileKey, identityProfileValue := range source.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile UserAssignedIdentity + err := identityProfile.AssignProperties_From_UserAssignedIdentity(&identityProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + cluster.IdentityProfile = identityProfileMap + } else { + cluster.IdentityProfile = nil + } + + // KubernetesVersion + cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + + // LinuxProfile + if source.LinuxProfile != nil { + var linuxProfile ContainerServiceLinuxProfile + err := linuxProfile.AssignProperties_From_ContainerServiceLinuxProfile(source.LinuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceLinuxProfile() to populate field LinuxProfile") + } + cluster.LinuxProfile = &linuxProfile + } else { + cluster.LinuxProfile = nil + } + + // Location + cluster.Location = genruntime.ClonePointerToString(source.Location) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile ContainerServiceNetworkProfile + err := networkProfile.AssignProperties_From_ContainerServiceNetworkProfile(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceNetworkProfile() to populate field NetworkProfile") + } + cluster.NetworkProfile = &networkProfile + } else { + cluster.NetworkProfile = nil + } + + // NodeResourceGroup + cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + + // OidcIssuerProfile + if source.OidcIssuerProfile != nil { + var oidcIssuerProfile ManagedClusterOIDCIssuerProfile + err := oidcIssuerProfile.AssignProperties_From_ManagedClusterOIDCIssuerProfile(source.OidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOIDCIssuerProfile() to populate field OidcIssuerProfile") + } + cluster.OidcIssuerProfile = &oidcIssuerProfile + } else { + cluster.OidcIssuerProfile = nil + } + + // OperatorSpec + if source.OperatorSpec != nil { + var operatorSpec ManagedClusterOperatorSpec + err := operatorSpec.AssignProperties_From_ManagedClusterOperatorSpec(source.OperatorSpec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorSpec() to populate field OperatorSpec") + } + cluster.OperatorSpec = &operatorSpec + } else { + cluster.OperatorSpec = nil + } + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + cluster.Owner = &owner + } else { + cluster.Owner = nil + } + + // PodIdentityProfile + if source.PodIdentityProfile != nil { + var podIdentityProfile ManagedClusterPodIdentityProfile + err := podIdentityProfile.AssignProperties_From_ManagedClusterPodIdentityProfile(source.PodIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProfile() to populate field PodIdentityProfile") + } + cluster.PodIdentityProfile = &podIdentityProfile + } else { + cluster.PodIdentityProfile = nil + } + + // PrivateLinkResources + if source.PrivateLinkResources != nil { + privateLinkResourceList := make([]PrivateLinkResource, len(source.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource PrivateLinkResource + err := privateLinkResource.AssignProperties_From_PrivateLinkResource(&privateLinkResourceItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateLinkResource() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + cluster.PrivateLinkResources = privateLinkResourceList + } else { + cluster.PrivateLinkResources = nil + } + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ManagedClusterProperties_PublicNetworkAccess(*source.PublicNetworkAccess) + cluster.PublicNetworkAccess = &publicNetworkAccess + } else { + cluster.PublicNetworkAccess = nil + } + + // SecurityProfile + if source.SecurityProfile != nil { + var securityProfile ManagedClusterSecurityProfile + err := securityProfile.AssignProperties_From_ManagedClusterSecurityProfile(source.SecurityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfile() to populate field SecurityProfile") + } + cluster.SecurityProfile = &securityProfile + } else { + cluster.SecurityProfile = nil + } + + // ServiceMeshProfile + if source.ServiceMeshProfile != nil { + var serviceMeshProfile ServiceMeshProfile + err := serviceMeshProfile.AssignProperties_From_ServiceMeshProfile(source.ServiceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ServiceMeshProfile() to populate field ServiceMeshProfile") + } + cluster.ServiceMeshProfile = &serviceMeshProfile + } else { + cluster.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if source.ServicePrincipalProfile != nil { + var servicePrincipalProfile ManagedClusterServicePrincipalProfile + err := servicePrincipalProfile.AssignProperties_From_ManagedClusterServicePrincipalProfile(source.ServicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterServicePrincipalProfile() to populate field ServicePrincipalProfile") + } + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } else { + cluster.ServicePrincipalProfile = nil + } + + // Sku + if source.Sku != nil { + var sku ManagedClusterSKU + err := sku.AssignProperties_From_ManagedClusterSKU(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSKU() to populate field Sku") + } + cluster.Sku = &sku + } else { + cluster.Sku = nil + } + + // StorageProfile + if source.StorageProfile != nil { + var storageProfile ManagedClusterStorageProfile + err := storageProfile.AssignProperties_From_ManagedClusterStorageProfile(source.StorageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfile() to populate field StorageProfile") + } + cluster.StorageProfile = &storageProfile + } else { + cluster.StorageProfile = nil + } + + // SupportPlan + if source.SupportPlan != nil { + supportPlan := KubernetesSupportPlan(*source.SupportPlan) + cluster.SupportPlan = &supportPlan + } else { + cluster.SupportPlan = nil + } + + // Tags + cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting ClusterUpgradeSettings + err := upgradeSetting.AssignProperties_From_ClusterUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ClusterUpgradeSettings() to populate field UpgradeSettings") + } + cluster.UpgradeSettings = &upgradeSetting + } else { + cluster.UpgradeSettings = nil + } + + // WindowsProfile + if source.WindowsProfile != nil { + var windowsProfile ManagedClusterWindowsProfile + err := windowsProfile.AssignProperties_From_ManagedClusterWindowsProfile(source.WindowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWindowsProfile() to populate field WindowsProfile") + } + cluster.WindowsProfile = &windowsProfile + } else { + cluster.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if source.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile + err := workloadAutoScalerProfile.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(source.WorkloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile() to populate field WorkloadAutoScalerProfile") + } + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + cluster.WorkloadAutoScalerProfile = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster_Spec populates the provided destination ManagedCluster_Spec from our ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) AssignProperties_To_ManagedCluster_Spec(destination *v20231001s.ManagedCluster_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AadProfile + if cluster.AadProfile != nil { + var aadProfile v20231001s.ManagedClusterAADProfile + err := cluster.AadProfile.AssignProperties_To_ManagedClusterAADProfile(&aadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAADProfile() to populate field AadProfile") + } + destination.AadProfile = &aadProfile + } else { + destination.AadProfile = nil + } + + // AddonProfiles + if cluster.AddonProfiles != nil { + addonProfileMap := make(map[string]v20231001s.ManagedClusterAddonProfile, len(cluster.AddonProfiles)) + for addonProfileKey, addonProfileValue := range cluster.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile v20231001s.ManagedClusterAddonProfile + err := addonProfileValue.AssignProperties_To_ManagedClusterAddonProfile(&addonProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAddonProfile() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + destination.AddonProfiles = addonProfileMap + } else { + destination.AddonProfiles = nil + } + + // AgentPoolProfiles + if cluster.AgentPoolProfiles != nil { + agentPoolProfileList := make([]v20231001s.ManagedClusterAgentPoolProfile, len(cluster.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range cluster.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile v20231001s.ManagedClusterAgentPoolProfile + err := agentPoolProfileItem.AssignProperties_To_ManagedClusterAgentPoolProfile(&agentPoolProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAgentPoolProfile() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + destination.AgentPoolProfiles = agentPoolProfileList + } else { + destination.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if cluster.ApiServerAccessProfile != nil { + var apiServerAccessProfile v20231001s.ManagedClusterAPIServerAccessProfile + err := cluster.ApiServerAccessProfile.AssignProperties_To_ManagedClusterAPIServerAccessProfile(&apiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAPIServerAccessProfile() to populate field ApiServerAccessProfile") + } + destination.ApiServerAccessProfile = &apiServerAccessProfile + } else { + destination.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if cluster.AutoScalerProfile != nil { + var autoScalerProfile v20231001s.ManagedClusterProperties_AutoScalerProfile + err := cluster.AutoScalerProfile.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(&autoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterProperties_AutoScalerProfile() to populate field AutoScalerProfile") + } + destination.AutoScalerProfile = &autoScalerProfile + } else { + destination.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if cluster.AutoUpgradeProfile != nil { + var autoUpgradeProfile v20231001s.ManagedClusterAutoUpgradeProfile + err := cluster.AutoUpgradeProfile.AssignProperties_To_ManagedClusterAutoUpgradeProfile(&autoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAutoUpgradeProfile() to populate field AutoUpgradeProfile") + } + destination.AutoUpgradeProfile = &autoUpgradeProfile + } else { + destination.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if cluster.AzureMonitorProfile != nil { + var azureMonitorProfile v20231001s.ManagedClusterAzureMonitorProfile + err := cluster.AzureMonitorProfile.AssignProperties_To_ManagedClusterAzureMonitorProfile(&azureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfile() to populate field AzureMonitorProfile") + } + destination.AzureMonitorProfile = &azureMonitorProfile + } else { + destination.AzureMonitorProfile = nil + } + + // AzureName + destination.AzureName = cluster.AzureName + + // DisableLocalAccounts + if cluster.DisableLocalAccounts != nil { + disableLocalAccount := *cluster.DisableLocalAccounts + destination.DisableLocalAccounts = &disableLocalAccount + } else { + destination.DisableLocalAccounts = nil + } + + // DiskEncryptionSetReference + if cluster.DiskEncryptionSetReference != nil { + diskEncryptionSetReference := cluster.DiskEncryptionSetReference.Copy() + destination.DiskEncryptionSetReference = &diskEncryptionSetReference + } else { + destination.DiskEncryptionSetReference = nil + } + + // DnsPrefix + destination.DnsPrefix = genruntime.ClonePointerToString(cluster.DnsPrefix) + + // EnablePodSecurityPolicy + if cluster.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *cluster.EnablePodSecurityPolicy + destination.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + destination.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if cluster.EnableRBAC != nil { + enableRBAC := *cluster.EnableRBAC + destination.EnableRBAC = &enableRBAC + } else { + destination.EnableRBAC = nil + } + + // ExtendedLocation + if cluster.ExtendedLocation != nil { + var extendedLocation v20231001s.ExtendedLocation + err := cluster.ExtendedLocation.AssignProperties_To_ExtendedLocation(&extendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ExtendedLocation() to populate field ExtendedLocation") + } + destination.ExtendedLocation = &extendedLocation + } else { + destination.ExtendedLocation = nil + } + + // FqdnSubdomain + destination.FqdnSubdomain = genruntime.ClonePointerToString(cluster.FqdnSubdomain) + + // HttpProxyConfig + if cluster.HttpProxyConfig != nil { + var httpProxyConfig v20231001s.ManagedClusterHTTPProxyConfig + err := cluster.HttpProxyConfig.AssignProperties_To_ManagedClusterHTTPProxyConfig(&httpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterHTTPProxyConfig() to populate field HttpProxyConfig") + } + destination.HttpProxyConfig = &httpProxyConfig + } else { + destination.HttpProxyConfig = nil + } + + // Identity + if cluster.Identity != nil { + var identity v20231001s.ManagedClusterIdentity + err := cluster.Identity.AssignProperties_To_ManagedClusterIdentity(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // IdentityProfile + if cluster.IdentityProfile != nil { + identityProfileMap := make(map[string]v20231001s.UserAssignedIdentity, len(cluster.IdentityProfile)) + for identityProfileKey, identityProfileValue := range cluster.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile v20231001s.UserAssignedIdentity + err := identityProfileValue.AssignProperties_To_UserAssignedIdentity(&identityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + destination.IdentityProfile = identityProfileMap + } else { + destination.IdentityProfile = nil + } + + // KubernetesVersion + destination.KubernetesVersion = genruntime.ClonePointerToString(cluster.KubernetesVersion) + + // LinuxProfile + if cluster.LinuxProfile != nil { + var linuxProfile v20231001s.ContainerServiceLinuxProfile + err := cluster.LinuxProfile.AssignProperties_To_ContainerServiceLinuxProfile(&linuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceLinuxProfile() to populate field LinuxProfile") + } + destination.LinuxProfile = &linuxProfile + } else { + destination.LinuxProfile = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(cluster.Location) + + // NetworkProfile + if cluster.NetworkProfile != nil { + var networkProfile v20231001s.ContainerServiceNetworkProfile + err := cluster.NetworkProfile.AssignProperties_To_ContainerServiceNetworkProfile(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceNetworkProfile() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeResourceGroup + destination.NodeResourceGroup = genruntime.ClonePointerToString(cluster.NodeResourceGroup) + + // OidcIssuerProfile + if cluster.OidcIssuerProfile != nil { + var oidcIssuerProfile v20231001s.ManagedClusterOIDCIssuerProfile + err := cluster.OidcIssuerProfile.AssignProperties_To_ManagedClusterOIDCIssuerProfile(&oidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOIDCIssuerProfile() to populate field OidcIssuerProfile") + } + destination.OidcIssuerProfile = &oidcIssuerProfile + } else { + destination.OidcIssuerProfile = nil + } + + // OperatorSpec + if cluster.OperatorSpec != nil { + var operatorSpec v20231001s.ManagedClusterOperatorSpec + err := cluster.OperatorSpec.AssignProperties_To_ManagedClusterOperatorSpec(&operatorSpec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorSpec() to populate field OperatorSpec") + } + destination.OperatorSpec = &operatorSpec + } else { + destination.OperatorSpec = nil + } + + // OriginalVersion + destination.OriginalVersion = cluster.OriginalVersion() + + // Owner + if cluster.Owner != nil { + owner := cluster.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // PodIdentityProfile + if cluster.PodIdentityProfile != nil { + var podIdentityProfile v20231001s.ManagedClusterPodIdentityProfile + err := cluster.PodIdentityProfile.AssignProperties_To_ManagedClusterPodIdentityProfile(&podIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProfile() to populate field PodIdentityProfile") + } + destination.PodIdentityProfile = &podIdentityProfile + } else { + destination.PodIdentityProfile = nil + } + + // PrivateLinkResources + if cluster.PrivateLinkResources != nil { + privateLinkResourceList := make([]v20231001s.PrivateLinkResource, len(cluster.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range cluster.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource v20231001s.PrivateLinkResource + err := privateLinkResourceItem.AssignProperties_To_PrivateLinkResource(&privateLinkResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateLinkResource() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + destination.PrivateLinkResources = privateLinkResourceList + } else { + destination.PrivateLinkResources = nil + } + + // PublicNetworkAccess + if cluster.PublicNetworkAccess != nil { + publicNetworkAccess := string(*cluster.PublicNetworkAccess) + destination.PublicNetworkAccess = &publicNetworkAccess + } else { + destination.PublicNetworkAccess = nil + } + + // SecurityProfile + if cluster.SecurityProfile != nil { + var securityProfile v20231001s.ManagedClusterSecurityProfile + err := cluster.SecurityProfile.AssignProperties_To_ManagedClusterSecurityProfile(&securityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfile() to populate field SecurityProfile") + } + destination.SecurityProfile = &securityProfile + } else { + destination.SecurityProfile = nil + } + + // ServiceMeshProfile + if cluster.ServiceMeshProfile != nil { + var serviceMeshProfile v20231001s.ServiceMeshProfile + err := cluster.ServiceMeshProfile.AssignProperties_To_ServiceMeshProfile(&serviceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ServiceMeshProfile() to populate field ServiceMeshProfile") + } + destination.ServiceMeshProfile = &serviceMeshProfile + } else { + destination.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if cluster.ServicePrincipalProfile != nil { + var servicePrincipalProfile v20231001s.ManagedClusterServicePrincipalProfile + err := cluster.ServicePrincipalProfile.AssignProperties_To_ManagedClusterServicePrincipalProfile(&servicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterServicePrincipalProfile() to populate field ServicePrincipalProfile") + } + destination.ServicePrincipalProfile = &servicePrincipalProfile + } else { + destination.ServicePrincipalProfile = nil + } + + // Sku + if cluster.Sku != nil { + var sku v20231001s.ManagedClusterSKU + err := cluster.Sku.AssignProperties_To_ManagedClusterSKU(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSKU() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // StorageProfile + if cluster.StorageProfile != nil { + var storageProfile v20231001s.ManagedClusterStorageProfile + err := cluster.StorageProfile.AssignProperties_To_ManagedClusterStorageProfile(&storageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfile() to populate field StorageProfile") + } + destination.StorageProfile = &storageProfile + } else { + destination.StorageProfile = nil + } + + // SupportPlan + if cluster.SupportPlan != nil { + supportPlan := string(*cluster.SupportPlan) + destination.SupportPlan = &supportPlan + } else { + destination.SupportPlan = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(cluster.Tags) + + // UpgradeSettings + if cluster.UpgradeSettings != nil { + var upgradeSetting v20231001s.ClusterUpgradeSettings + err := cluster.UpgradeSettings.AssignProperties_To_ClusterUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ClusterUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // WindowsProfile + if cluster.WindowsProfile != nil { + var windowsProfile v20231001s.ManagedClusterWindowsProfile + err := cluster.WindowsProfile.AssignProperties_To_ManagedClusterWindowsProfile(&windowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWindowsProfile() to populate field WindowsProfile") + } + destination.WindowsProfile = &windowsProfile + } else { + destination.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if cluster.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile v20231001s.ManagedClusterWorkloadAutoScalerProfile + err := cluster.WorkloadAutoScalerProfile.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(&workloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile() to populate field WorkloadAutoScalerProfile") + } + destination.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + destination.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedCluster_STATUS populates our ManagedCluster_Spec from the provided source ManagedCluster_STATUS +func (cluster *ManagedCluster_Spec) Initialize_From_ManagedCluster_STATUS(source *ManagedCluster_STATUS) error { + + // AadProfile + if source.AadProfile != nil { + var aadProfile ManagedClusterAADProfile + err := aadProfile.Initialize_From_ManagedClusterAADProfile_STATUS(source.AadProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAADProfile_STATUS() to populate field AadProfile") + } + cluster.AadProfile = &aadProfile + } else { + cluster.AadProfile = nil + } + + // AddonProfiles + if source.AddonProfiles != nil { + addonProfileMap := make(map[string]ManagedClusterAddonProfile, len(source.AddonProfiles)) + for addonProfileKey, addonProfileValue := range source.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile ManagedClusterAddonProfile + err := addonProfile.Initialize_From_ManagedClusterAddonProfile_STATUS(&addonProfileValue) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + cluster.AddonProfiles = addonProfileMap + } else { + cluster.AddonProfiles = nil + } + + // AgentPoolProfiles + if source.AgentPoolProfiles != nil { + agentPoolProfileList := make([]ManagedClusterAgentPoolProfile, len(source.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile ManagedClusterAgentPoolProfile + err := agentPoolProfile.Initialize_From_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfileItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + cluster.AgentPoolProfiles = agentPoolProfileList + } else { + cluster.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if source.ApiServerAccessProfile != nil { + var apiServerAccessProfile ManagedClusterAPIServerAccessProfile + err := apiServerAccessProfile.Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS(source.ApiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") + } + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } else { + cluster.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if source.AutoScalerProfile != nil { + var autoScalerProfile ManagedClusterProperties_AutoScalerProfile + err := autoScalerProfile.Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source.AutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") + } + cluster.AutoScalerProfile = &autoScalerProfile + } else { + cluster.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if source.AutoUpgradeProfile != nil { + var autoUpgradeProfile ManagedClusterAutoUpgradeProfile + err := autoUpgradeProfile.Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS(source.AutoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") + } + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } else { + cluster.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if source.AzureMonitorProfile != nil { + var azureMonitorProfile ManagedClusterAzureMonitorProfile + err := azureMonitorProfile.Initialize_From_ManagedClusterAzureMonitorProfile_STATUS(source.AzureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") + } + cluster.AzureMonitorProfile = &azureMonitorProfile + } else { + cluster.AzureMonitorProfile = nil + } + + // DisableLocalAccounts + if source.DisableLocalAccounts != nil { + disableLocalAccount := *source.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccount + } else { + cluster.DisableLocalAccounts = nil + } + + // DnsPrefix + cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) + + // EnablePodSecurityPolicy + if source.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *source.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + cluster.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if source.EnableRBAC != nil { + enableRBAC := *source.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } else { + cluster.EnableRBAC = nil + } + + // ExtendedLocation + if source.ExtendedLocation != nil { + var extendedLocation ExtendedLocation + err := extendedLocation.Initialize_From_ExtendedLocation_STATUS(source.ExtendedLocation) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ExtendedLocation_STATUS() to populate field ExtendedLocation") + } + cluster.ExtendedLocation = &extendedLocation + } else { + cluster.ExtendedLocation = nil + } + + // FqdnSubdomain + cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) + + // HttpProxyConfig + if source.HttpProxyConfig != nil { + var httpProxyConfig ManagedClusterHTTPProxyConfig + err := httpProxyConfig.Initialize_From_ManagedClusterHTTPProxyConfig_STATUS(source.HttpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") + } + cluster.HttpProxyConfig = &httpProxyConfig + } else { + cluster.HttpProxyConfig = nil + } + + // Identity + if source.Identity != nil { + var identity ManagedClusterIdentity + err := identity.Initialize_From_ManagedClusterIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterIdentity_STATUS() to populate field Identity") + } + cluster.Identity = &identity + } else { + cluster.Identity = nil + } + + // IdentityProfile + if source.IdentityProfile != nil { + identityProfileMap := make(map[string]UserAssignedIdentity, len(source.IdentityProfile)) + for identityProfileKey, identityProfileValue := range source.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile UserAssignedIdentity + err := identityProfile.Initialize_From_UserAssignedIdentity_STATUS(&identityProfileValue) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_UserAssignedIdentity_STATUS() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + cluster.IdentityProfile = identityProfileMap + } else { + cluster.IdentityProfile = nil + } + + // KubernetesVersion + cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + + // LinuxProfile + if source.LinuxProfile != nil { + var linuxProfile ContainerServiceLinuxProfile + err := linuxProfile.Initialize_From_ContainerServiceLinuxProfile_STATUS(source.LinuxProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") + } + cluster.LinuxProfile = &linuxProfile + } else { + cluster.LinuxProfile = nil + } + + // Location + cluster.Location = genruntime.ClonePointerToString(source.Location) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile ContainerServiceNetworkProfile + err := networkProfile.Initialize_From_ContainerServiceNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") + } + cluster.NetworkProfile = &networkProfile + } else { + cluster.NetworkProfile = nil + } + + // NodeResourceGroup + cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + + // OidcIssuerProfile + if source.OidcIssuerProfile != nil { + var oidcIssuerProfile ManagedClusterOIDCIssuerProfile + err := oidcIssuerProfile.Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS(source.OidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") + } + cluster.OidcIssuerProfile = &oidcIssuerProfile + } else { + cluster.OidcIssuerProfile = nil + } + + // PodIdentityProfile + if source.PodIdentityProfile != nil { + var podIdentityProfile ManagedClusterPodIdentityProfile + err := podIdentityProfile.Initialize_From_ManagedClusterPodIdentityProfile_STATUS(source.PodIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") + } + cluster.PodIdentityProfile = &podIdentityProfile + } else { + cluster.PodIdentityProfile = nil + } + + // PrivateLinkResources + if source.PrivateLinkResources != nil { + privateLinkResourceList := make([]PrivateLinkResource, len(source.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource PrivateLinkResource + err := privateLinkResource.Initialize_From_PrivateLinkResource_STATUS(&privateLinkResourceItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + cluster.PrivateLinkResources = privateLinkResourceList + } else { + cluster.PrivateLinkResources = nil + } + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ManagedClusterProperties_PublicNetworkAccess(*source.PublicNetworkAccess) + cluster.PublicNetworkAccess = &publicNetworkAccess + } else { + cluster.PublicNetworkAccess = nil + } + + // SecurityProfile + if source.SecurityProfile != nil { + var securityProfile ManagedClusterSecurityProfile + err := securityProfile.Initialize_From_ManagedClusterSecurityProfile_STATUS(source.SecurityProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") + } + cluster.SecurityProfile = &securityProfile + } else { + cluster.SecurityProfile = nil + } + + // ServiceMeshProfile + if source.ServiceMeshProfile != nil { + var serviceMeshProfile ServiceMeshProfile + err := serviceMeshProfile.Initialize_From_ServiceMeshProfile_STATUS(source.ServiceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ServiceMeshProfile_STATUS() to populate field ServiceMeshProfile") + } + cluster.ServiceMeshProfile = &serviceMeshProfile + } else { + cluster.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if source.ServicePrincipalProfile != nil { + var servicePrincipalProfile ManagedClusterServicePrincipalProfile + err := servicePrincipalProfile.Initialize_From_ManagedClusterServicePrincipalProfile_STATUS(source.ServicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") + } + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } else { + cluster.ServicePrincipalProfile = nil + } + + // Sku + if source.Sku != nil { + var sku ManagedClusterSKU + err := sku.Initialize_From_ManagedClusterSKU_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSKU_STATUS() to populate field Sku") + } + cluster.Sku = &sku + } else { + cluster.Sku = nil + } + + // StorageProfile + if source.StorageProfile != nil { + var storageProfile ManagedClusterStorageProfile + err := storageProfile.Initialize_From_ManagedClusterStorageProfile_STATUS(source.StorageProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") + } + cluster.StorageProfile = &storageProfile + } else { + cluster.StorageProfile = nil + } + + // SupportPlan + if source.SupportPlan != nil { + supportPlan := KubernetesSupportPlan(*source.SupportPlan) + cluster.SupportPlan = &supportPlan + } else { + cluster.SupportPlan = nil + } + + // Tags + cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting ClusterUpgradeSettings + err := upgradeSetting.Initialize_From_ClusterUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ClusterUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + cluster.UpgradeSettings = &upgradeSetting + } else { + cluster.UpgradeSettings = nil + } + + // WindowsProfile + if source.WindowsProfile != nil { + var windowsProfile ManagedClusterWindowsProfile + err := windowsProfile.Initialize_From_ManagedClusterWindowsProfile_STATUS(source.WindowsProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") + } + cluster.WindowsProfile = &windowsProfile + } else { + cluster.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if source.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile + err := workloadAutoScalerProfile.Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source.WorkloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") + } + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + cluster.WorkloadAutoScalerProfile = nil + } + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (cluster *ManagedCluster_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (cluster *ManagedCluster_Spec) SetAzureName(azureName string) { cluster.AzureName = azureName } + +// Managed cluster. +type ManagedCluster_STATUS struct { + // AadProfile: The Azure Active Directory configuration. + AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` + + // AddonProfiles: The profile of managed cluster add-on. + AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` + + // AgentPoolProfiles: The agent pool properties. + AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` + + // ApiServerAccessProfile: The access profile for managed cluster API server. + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` + + // AutoScalerProfile: Parameters to be applied to the cluster-autoscaler when enabled + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` + + // AutoUpgradeProfile: The auto upgrade configuration. + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` + + // AzureMonitorProfile: Azure Monitor addon profiles for monitoring the managed cluster. + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` + + // AzurePortalFQDN: The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some + // responses, which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure + // Portal to function properly. + AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // CurrentKubernetesVersion: If kubernetesVersion was a fully specified version , this field will be + // exactly equal to it. If kubernetesVersion was , this field will contain the full + // version being used. + CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` + + // DisableLocalAccounts: If set to true, getting static credentials will be disabled for this cluster. This must only be + // used on Managed Clusters that are AAD enabled. For more details see [disable local + // accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview). + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + + // DiskEncryptionSetID: This is of the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` + + // DnsPrefix: This cannot be updated once the Managed Cluster has been created. + DnsPrefix *string `json:"dnsPrefix,omitempty"` + + // EnablePodSecurityPolicy: (DEPRECATED) Whether to enable Kubernetes pod security policy (preview). PodSecurityPolicy was + // deprecated in Kubernetes v1.21, and removed from Kubernetes in v1.25. Learn more at https://aka.ms/k8s/psp and + // https://aka.ms/aks/psp. + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + + // EnableRBAC: Whether to enable Kubernetes Role-Based Access Control. + EnableRBAC *bool `json:"enableRBAC,omitempty"` + + // ExtendedLocation: The extended location of the Virtual Machine. + ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` + + // Fqdn: The FQDN of the master pool. + Fqdn *string `json:"fqdn,omitempty"` + + // FqdnSubdomain: This cannot be updated once the Managed Cluster has been created. + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + + // HttpProxyConfig: Configurations for provisioning the cluster with HTTP proxy servers. + HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` + + // Id: Fully qualified resource ID for the resource. E.g. + // "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + Id *string `json:"id,omitempty"` + + // Identity: The identity of the managed cluster, if configured. + Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` + + // IdentityProfile: Identities associated with the cluster. + IdentityProfile map[string]UserAssignedIdentity_STATUS `json:"identityProfile,omitempty"` + + // KubernetesVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All + // upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or + // 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS + // cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details. + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + + // LinuxProfile: The profile for Linux VMs in the Managed Cluster. + LinuxProfile *ContainerServiceLinuxProfile_STATUS `json:"linuxProfile,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // MaxAgentPools: The max number of agent pools for the managed cluster. + MaxAgentPools *int `json:"maxAgentPools,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // NetworkProfile: The network configuration profile. + NetworkProfile *ContainerServiceNetworkProfile_STATUS `json:"networkProfile,omitempty"` + + // NodeResourceGroup: The name of the resource group containing agent pool nodes. + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + + // OidcIssuerProfile: The OIDC issuer profile of the Managed Cluster. + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_STATUS `json:"oidcIssuerProfile,omitempty"` + + // PodIdentityProfile: See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more + // details on AAD pod identity integration. + PodIdentityProfile *ManagedClusterPodIdentityProfile_STATUS `json:"podIdentityProfile,omitempty"` + + // PowerState: The Power State of the cluster. + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + + // PrivateFQDN: The FQDN of private cluster. + PrivateFQDN *string `json:"privateFQDN,omitempty"` + + // PrivateLinkResources: Private link resources associated with the cluster. + PrivateLinkResources []PrivateLinkResource_STATUS `json:"privateLinkResources,omitempty"` + + // ProvisioningState: The current provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // PublicNetworkAccess: Allow or deny public network access for AKS + PublicNetworkAccess *ManagedClusterProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"` + + // ResourceUID: The resourceUID uniquely identifies ManagedClusters that reuse ARM ResourceIds (i.e: create, delete, create + // sequence) + ResourceUID *string `json:"resourceUID,omitempty"` + + // SecurityProfile: Security profile for the managed cluster. + SecurityProfile *ManagedClusterSecurityProfile_STATUS `json:"securityProfile,omitempty"` + + // ServiceMeshProfile: Service mesh profile for a managed cluster. + ServiceMeshProfile *ServiceMeshProfile_STATUS `json:"serviceMeshProfile,omitempty"` + + // ServicePrincipalProfile: Information about a service principal identity for the cluster to use for manipulating Azure + // APIs. + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_STATUS `json:"servicePrincipalProfile,omitempty"` + + // Sku: The managed cluster SKU. + Sku *ManagedClusterSKU_STATUS `json:"sku,omitempty"` + + // StorageProfile: Storage profile for the managed cluster. + StorageProfile *ManagedClusterStorageProfile_STATUS `json:"storageProfile,omitempty"` + + // SupportPlan: The support plan for the Managed Cluster. If unspecified, the default is 'KubernetesOfficial'. + SupportPlan *KubernetesSupportPlan_STATUS `json:"supportPlan,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading a cluster. + UpgradeSettings *ClusterUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + + // WindowsProfile: The profile for Windows VMs in the Managed Cluster. + WindowsProfile *ManagedClusterWindowsProfile_STATUS `json:"windowsProfile,omitempty"` + + // WorkloadAutoScalerProfile: Workload Auto-scaler profile for the managed cluster. + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_STATUS `json:"workloadAutoScalerProfile,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ManagedCluster_STATUS{} + +// ConvertStatusFrom populates our ManagedCluster_STATUS from the provided source +func (cluster *ManagedCluster_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20231001s.ManagedCluster_STATUS) + if ok { + // Populate our instance from source + return cluster.AssignProperties_From_ManagedCluster_STATUS(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedCluster_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = cluster.AssignProperties_From_ManagedCluster_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20231001s.ManagedCluster_STATUS) + if ok { + // Populate destination from our instance + return cluster.AssignProperties_To_ManagedCluster_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedCluster_STATUS{} + err := cluster.AssignProperties_To_ManagedCluster_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } + + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } + + return nil +} + +var _ genruntime.FromARMConverter = &ManagedCluster_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (cluster *ManagedCluster_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedCluster_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (cluster *ManagedCluster_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedCluster_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedCluster_STATUS_ARM, got %T", armInput) + } + + // Set property "AadProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AadProfile != nil { + var aadProfile1 ManagedClusterAADProfile_STATUS + err := aadProfile1.PopulateFromARM(owner, *typedInput.Properties.AadProfile) + if err != nil { + return err + } + aadProfile := aadProfile1 + cluster.AadProfile = &aadProfile + } + } + + // Set property "AddonProfiles": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AddonProfiles != nil { + cluster.AddonProfiles = make(map[string]ManagedClusterAddonProfile_STATUS, len(typedInput.Properties.AddonProfiles)) + for key, value := range typedInput.Properties.AddonProfiles { + var value1 ManagedClusterAddonProfile_STATUS + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + cluster.AddonProfiles[key] = value1 + } + } + } + + // Set property "AgentPoolProfiles": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AgentPoolProfiles { + var item1 ManagedClusterAgentPoolProfile_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + cluster.AgentPoolProfiles = append(cluster.AgentPoolProfiles, item1) + } + } + + // Set property "ApiServerAccessProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ApiServerAccessProfile != nil { + var apiServerAccessProfile1 ManagedClusterAPIServerAccessProfile_STATUS + err := apiServerAccessProfile1.PopulateFromARM(owner, *typedInput.Properties.ApiServerAccessProfile) + if err != nil { + return err + } + apiServerAccessProfile := apiServerAccessProfile1 + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } + } + + // Set property "AutoScalerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AutoScalerProfile != nil { + var autoScalerProfile1 ManagedClusterProperties_AutoScalerProfile_STATUS + err := autoScalerProfile1.PopulateFromARM(owner, *typedInput.Properties.AutoScalerProfile) + if err != nil { + return err + } + autoScalerProfile := autoScalerProfile1 + cluster.AutoScalerProfile = &autoScalerProfile + } + } + + // Set property "AutoUpgradeProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AutoUpgradeProfile != nil { + var autoUpgradeProfile1 ManagedClusterAutoUpgradeProfile_STATUS + err := autoUpgradeProfile1.PopulateFromARM(owner, *typedInput.Properties.AutoUpgradeProfile) + if err != nil { + return err + } + autoUpgradeProfile := autoUpgradeProfile1 + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } + } + + // Set property "AzureMonitorProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AzureMonitorProfile != nil { + var azureMonitorProfile1 ManagedClusterAzureMonitorProfile_STATUS + err := azureMonitorProfile1.PopulateFromARM(owner, *typedInput.Properties.AzureMonitorProfile) + if err != nil { + return err + } + azureMonitorProfile := azureMonitorProfile1 + cluster.AzureMonitorProfile = &azureMonitorProfile + } + } + + // Set property "AzurePortalFQDN": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AzurePortalFQDN != nil { + azurePortalFQDN := *typedInput.Properties.AzurePortalFQDN + cluster.AzurePortalFQDN = &azurePortalFQDN + } + } + + // no assignment for property "Conditions" + + // Set property "CurrentKubernetesVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CurrentKubernetesVersion != nil { + currentKubernetesVersion := *typedInput.Properties.CurrentKubernetesVersion + cluster.CurrentKubernetesVersion = ¤tKubernetesVersion + } + } + + // Set property "DisableLocalAccounts": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DisableLocalAccounts != nil { + disableLocalAccounts := *typedInput.Properties.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccounts + } + } + + // Set property "DiskEncryptionSetID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DiskEncryptionSetID != nil { + diskEncryptionSetID := *typedInput.Properties.DiskEncryptionSetID + cluster.DiskEncryptionSetID = &diskEncryptionSetID + } + } + + // Set property "DnsPrefix": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DnsPrefix != nil { + dnsPrefix := *typedInput.Properties.DnsPrefix + cluster.DnsPrefix = &dnsPrefix + } + } + + // Set property "EnablePodSecurityPolicy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *typedInput.Properties.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } + } + + // Set property "EnableRBAC": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableRBAC != nil { + enableRBAC := *typedInput.Properties.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } + } + + // Set property "ExtendedLocation": + if typedInput.ExtendedLocation != nil { + var extendedLocation1 ExtendedLocation_STATUS + err := extendedLocation1.PopulateFromARM(owner, *typedInput.ExtendedLocation) + if err != nil { + return err + } + extendedLocation := extendedLocation1 + cluster.ExtendedLocation = &extendedLocation + } + + // Set property "Fqdn": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Fqdn != nil { + fqdn := *typedInput.Properties.Fqdn + cluster.Fqdn = &fqdn + } + } + + // Set property "FqdnSubdomain": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.FqdnSubdomain != nil { + fqdnSubdomain := *typedInput.Properties.FqdnSubdomain + cluster.FqdnSubdomain = &fqdnSubdomain + } + } + + // Set property "HttpProxyConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.HttpProxyConfig != nil { + var httpProxyConfig1 ManagedClusterHTTPProxyConfig_STATUS + err := httpProxyConfig1.PopulateFromARM(owner, *typedInput.Properties.HttpProxyConfig) + if err != nil { + return err + } + httpProxyConfig := httpProxyConfig1 + cluster.HttpProxyConfig = &httpProxyConfig + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + cluster.Id = &id + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity1 ManagedClusterIdentity_STATUS + err := identity1.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity := identity1 + cluster.Identity = &identity + } + + // Set property "IdentityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.IdentityProfile != nil { + cluster.IdentityProfile = make(map[string]UserAssignedIdentity_STATUS, len(typedInput.Properties.IdentityProfile)) + for key, value := range typedInput.Properties.IdentityProfile { + var value1 UserAssignedIdentity_STATUS + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + cluster.IdentityProfile[key] = value1 + } + } + } + + // Set property "KubernetesVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubernetesVersion != nil { + kubernetesVersion := *typedInput.Properties.KubernetesVersion + cluster.KubernetesVersion = &kubernetesVersion + } + } + + // Set property "LinuxProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.LinuxProfile != nil { + var linuxProfile1 ContainerServiceLinuxProfile_STATUS + err := linuxProfile1.PopulateFromARM(owner, *typedInput.Properties.LinuxProfile) + if err != nil { + return err + } + linuxProfile := linuxProfile1 + cluster.LinuxProfile = &linuxProfile + } + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + cluster.Location = &location + } + + // Set property "MaxAgentPools": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MaxAgentPools != nil { + maxAgentPools := *typedInput.Properties.MaxAgentPools + cluster.MaxAgentPools = &maxAgentPools + } + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + cluster.Name = &name + } + + // Set property "NetworkProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NetworkProfile != nil { + var networkProfile1 ContainerServiceNetworkProfile_STATUS + err := networkProfile1.PopulateFromARM(owner, *typedInput.Properties.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + cluster.NetworkProfile = &networkProfile + } + } + + // Set property "NodeResourceGroup": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodeResourceGroup != nil { + nodeResourceGroup := *typedInput.Properties.NodeResourceGroup + cluster.NodeResourceGroup = &nodeResourceGroup + } + } + + // Set property "OidcIssuerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OidcIssuerProfile != nil { + var oidcIssuerProfile1 ManagedClusterOIDCIssuerProfile_STATUS + err := oidcIssuerProfile1.PopulateFromARM(owner, *typedInput.Properties.OidcIssuerProfile) + if err != nil { + return err + } + oidcIssuerProfile := oidcIssuerProfile1 + cluster.OidcIssuerProfile = &oidcIssuerProfile + } + } + + // Set property "PodIdentityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PodIdentityProfile != nil { + var podIdentityProfile1 ManagedClusterPodIdentityProfile_STATUS + err := podIdentityProfile1.PopulateFromARM(owner, *typedInput.Properties.PodIdentityProfile) + if err != nil { + return err + } + podIdentityProfile := podIdentityProfile1 + cluster.PodIdentityProfile = &podIdentityProfile + } + } + + // Set property "PowerState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PowerState != nil { + var powerState1 PowerState_STATUS + err := powerState1.PopulateFromARM(owner, *typedInput.Properties.PowerState) + if err != nil { + return err + } + powerState := powerState1 + cluster.PowerState = &powerState + } + } + + // Set property "PrivateFQDN": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PrivateFQDN != nil { + privateFQDN := *typedInput.Properties.PrivateFQDN + cluster.PrivateFQDN = &privateFQDN + } + } + + // Set property "PrivateLinkResources": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PrivateLinkResources { + var item1 PrivateLinkResource_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + cluster.PrivateLinkResources = append(cluster.PrivateLinkResources, item1) + } + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + provisioningState := *typedInput.Properties.ProvisioningState + cluster.ProvisioningState = &provisioningState + } + } + + // Set property "PublicNetworkAccess": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicNetworkAccess != nil { + publicNetworkAccess := *typedInput.Properties.PublicNetworkAccess + cluster.PublicNetworkAccess = &publicNetworkAccess + } + } + + // Set property "ResourceUID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ResourceUID != nil { + resourceUID := *typedInput.Properties.ResourceUID + cluster.ResourceUID = &resourceUID + } + } + + // Set property "SecurityProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SecurityProfile != nil { + var securityProfile1 ManagedClusterSecurityProfile_STATUS + err := securityProfile1.PopulateFromARM(owner, *typedInput.Properties.SecurityProfile) + if err != nil { + return err + } + securityProfile := securityProfile1 + cluster.SecurityProfile = &securityProfile + } + } + + // Set property "ServiceMeshProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ServiceMeshProfile != nil { + var serviceMeshProfile1 ServiceMeshProfile_STATUS + err := serviceMeshProfile1.PopulateFromARM(owner, *typedInput.Properties.ServiceMeshProfile) + if err != nil { + return err + } + serviceMeshProfile := serviceMeshProfile1 + cluster.ServiceMeshProfile = &serviceMeshProfile + } + } + + // Set property "ServicePrincipalProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ServicePrincipalProfile != nil { + var servicePrincipalProfile1 ManagedClusterServicePrincipalProfile_STATUS + err := servicePrincipalProfile1.PopulateFromARM(owner, *typedInput.Properties.ServicePrincipalProfile) + if err != nil { + return err + } + servicePrincipalProfile := servicePrincipalProfile1 + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } + } + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ManagedClusterSKU_STATUS + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + cluster.Sku = &sku + } + + // Set property "StorageProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.StorageProfile != nil { + var storageProfile1 ManagedClusterStorageProfile_STATUS + err := storageProfile1.PopulateFromARM(owner, *typedInput.Properties.StorageProfile) + if err != nil { + return err + } + storageProfile := storageProfile1 + cluster.StorageProfile = &storageProfile + } + } + + // Set property "SupportPlan": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SupportPlan != nil { + supportPlan := *typedInput.Properties.SupportPlan + cluster.SupportPlan = &supportPlan + } + } + + // Set property "SystemData": + if typedInput.SystemData != nil { + var systemData1 SystemData_STATUS + err := systemData1.PopulateFromARM(owner, *typedInput.SystemData) + if err != nil { + return err + } + systemData := systemData1 + cluster.SystemData = &systemData + } + + // Set property "Tags": + if typedInput.Tags != nil { + cluster.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + cluster.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + cluster.Type = &typeVar + } + + // Set property "UpgradeSettings": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpgradeSettings != nil { + var upgradeSettings1 ClusterUpgradeSettings_STATUS + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.Properties.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + cluster.UpgradeSettings = &upgradeSettings + } + } + + // Set property "WindowsProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WindowsProfile != nil { + var windowsProfile1 ManagedClusterWindowsProfile_STATUS + err := windowsProfile1.PopulateFromARM(owner, *typedInput.Properties.WindowsProfile) + if err != nil { + return err + } + windowsProfile := windowsProfile1 + cluster.WindowsProfile = &windowsProfile + } + } + + // Set property "WorkloadAutoScalerProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile1 ManagedClusterWorkloadAutoScalerProfile_STATUS + err := workloadAutoScalerProfile1.PopulateFromARM(owner, *typedInput.Properties.WorkloadAutoScalerProfile) + if err != nil { + return err + } + workloadAutoScalerProfile := workloadAutoScalerProfile1 + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } + } + + // No error + return nil +} + +// AssignProperties_From_ManagedCluster_STATUS populates our ManagedCluster_STATUS from the provided source ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) AssignProperties_From_ManagedCluster_STATUS(source *v20231001s.ManagedCluster_STATUS) error { + + // AadProfile + if source.AadProfile != nil { + var aadProfile ManagedClusterAADProfile_STATUS + err := aadProfile.AssignProperties_From_ManagedClusterAADProfile_STATUS(source.AadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAADProfile_STATUS() to populate field AadProfile") + } + cluster.AadProfile = &aadProfile + } else { + cluster.AadProfile = nil + } + + // AddonProfiles + if source.AddonProfiles != nil { + addonProfileMap := make(map[string]ManagedClusterAddonProfile_STATUS, len(source.AddonProfiles)) + for addonProfileKey, addonProfileValue := range source.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile ManagedClusterAddonProfile_STATUS + err := addonProfile.AssignProperties_From_ManagedClusterAddonProfile_STATUS(&addonProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + cluster.AddonProfiles = addonProfileMap + } else { + cluster.AddonProfiles = nil + } + + // AgentPoolProfiles + if source.AgentPoolProfiles != nil { + agentPoolProfileList := make([]ManagedClusterAgentPoolProfile_STATUS, len(source.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range source.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile ManagedClusterAgentPoolProfile_STATUS + err := agentPoolProfile.AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfileItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + cluster.AgentPoolProfiles = agentPoolProfileList + } else { + cluster.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if source.ApiServerAccessProfile != nil { + var apiServerAccessProfile ManagedClusterAPIServerAccessProfile_STATUS + err := apiServerAccessProfile.AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(source.ApiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") + } + cluster.ApiServerAccessProfile = &apiServerAccessProfile + } else { + cluster.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if source.AutoScalerProfile != nil { + var autoScalerProfile ManagedClusterProperties_AutoScalerProfile_STATUS + err := autoScalerProfile.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source.AutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") + } + cluster.AutoScalerProfile = &autoScalerProfile + } else { + cluster.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if source.AutoUpgradeProfile != nil { + var autoUpgradeProfile ManagedClusterAutoUpgradeProfile_STATUS + err := autoUpgradeProfile.AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(source.AutoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") + } + cluster.AutoUpgradeProfile = &autoUpgradeProfile + } else { + cluster.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if source.AzureMonitorProfile != nil { + var azureMonitorProfile ManagedClusterAzureMonitorProfile_STATUS + err := azureMonitorProfile.AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(source.AzureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") + } + cluster.AzureMonitorProfile = &azureMonitorProfile + } else { + cluster.AzureMonitorProfile = nil + } + + // AzurePortalFQDN + cluster.AzurePortalFQDN = genruntime.ClonePointerToString(source.AzurePortalFQDN) + + // Conditions + cluster.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // CurrentKubernetesVersion + cluster.CurrentKubernetesVersion = genruntime.ClonePointerToString(source.CurrentKubernetesVersion) + + // DisableLocalAccounts + if source.DisableLocalAccounts != nil { + disableLocalAccount := *source.DisableLocalAccounts + cluster.DisableLocalAccounts = &disableLocalAccount + } else { + cluster.DisableLocalAccounts = nil + } + + // DiskEncryptionSetID + cluster.DiskEncryptionSetID = genruntime.ClonePointerToString(source.DiskEncryptionSetID) + + // DnsPrefix + cluster.DnsPrefix = genruntime.ClonePointerToString(source.DnsPrefix) + + // EnablePodSecurityPolicy + if source.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *source.EnablePodSecurityPolicy + cluster.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + cluster.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if source.EnableRBAC != nil { + enableRBAC := *source.EnableRBAC + cluster.EnableRBAC = &enableRBAC + } else { + cluster.EnableRBAC = nil + } + + // ExtendedLocation + if source.ExtendedLocation != nil { + var extendedLocation ExtendedLocation_STATUS + err := extendedLocation.AssignProperties_From_ExtendedLocation_STATUS(source.ExtendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ExtendedLocation_STATUS() to populate field ExtendedLocation") + } + cluster.ExtendedLocation = &extendedLocation + } else { + cluster.ExtendedLocation = nil + } + + // Fqdn + cluster.Fqdn = genruntime.ClonePointerToString(source.Fqdn) + + // FqdnSubdomain + cluster.FqdnSubdomain = genruntime.ClonePointerToString(source.FqdnSubdomain) + + // HttpProxyConfig + if source.HttpProxyConfig != nil { + var httpProxyConfig ManagedClusterHTTPProxyConfig_STATUS + err := httpProxyConfig.AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(source.HttpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") + } + cluster.HttpProxyConfig = &httpProxyConfig + } else { + cluster.HttpProxyConfig = nil + } + + // Id + cluster.Id = genruntime.ClonePointerToString(source.Id) + + // Identity + if source.Identity != nil { + var identity ManagedClusterIdentity_STATUS + err := identity.AssignProperties_From_ManagedClusterIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity_STATUS() to populate field Identity") + } + cluster.Identity = &identity + } else { + cluster.Identity = nil + } + + // IdentityProfile + if source.IdentityProfile != nil { + identityProfileMap := make(map[string]UserAssignedIdentity_STATUS, len(source.IdentityProfile)) + for identityProfileKey, identityProfileValue := range source.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile UserAssignedIdentity_STATUS + err := identityProfile.AssignProperties_From_UserAssignedIdentity_STATUS(&identityProfileValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + cluster.IdentityProfile = identityProfileMap + } else { + cluster.IdentityProfile = nil + } + + // KubernetesVersion + cluster.KubernetesVersion = genruntime.ClonePointerToString(source.KubernetesVersion) + + // LinuxProfile + if source.LinuxProfile != nil { + var linuxProfile ContainerServiceLinuxProfile_STATUS + err := linuxProfile.AssignProperties_From_ContainerServiceLinuxProfile_STATUS(source.LinuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") + } + cluster.LinuxProfile = &linuxProfile + } else { + cluster.LinuxProfile = nil + } + + // Location + cluster.Location = genruntime.ClonePointerToString(source.Location) + + // MaxAgentPools + cluster.MaxAgentPools = genruntime.ClonePointerToInt(source.MaxAgentPools) + + // Name + cluster.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile ContainerServiceNetworkProfile_STATUS + err := networkProfile.AssignProperties_From_ContainerServiceNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") + } + cluster.NetworkProfile = &networkProfile + } else { + cluster.NetworkProfile = nil + } + + // NodeResourceGroup + cluster.NodeResourceGroup = genruntime.ClonePointerToString(source.NodeResourceGroup) + + // OidcIssuerProfile + if source.OidcIssuerProfile != nil { + var oidcIssuerProfile ManagedClusterOIDCIssuerProfile_STATUS + err := oidcIssuerProfile.AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(source.OidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") + } + cluster.OidcIssuerProfile = &oidcIssuerProfile + } else { + cluster.OidcIssuerProfile = nil + } + + // PodIdentityProfile + if source.PodIdentityProfile != nil { + var podIdentityProfile ManagedClusterPodIdentityProfile_STATUS + err := podIdentityProfile.AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(source.PodIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") + } + cluster.PodIdentityProfile = &podIdentityProfile + } else { + cluster.PodIdentityProfile = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + cluster.PowerState = &powerState + } else { + cluster.PowerState = nil + } + + // PrivateFQDN + cluster.PrivateFQDN = genruntime.ClonePointerToString(source.PrivateFQDN) + + // PrivateLinkResources + if source.PrivateLinkResources != nil { + privateLinkResourceList := make([]PrivateLinkResource_STATUS, len(source.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range source.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource PrivateLinkResource_STATUS + err := privateLinkResource.AssignProperties_From_PrivateLinkResource_STATUS(&privateLinkResourceItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + cluster.PrivateLinkResources = privateLinkResourceList + } else { + cluster.PrivateLinkResources = nil + } + + // ProvisioningState + cluster.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ManagedClusterProperties_PublicNetworkAccess_STATUS(*source.PublicNetworkAccess) + cluster.PublicNetworkAccess = &publicNetworkAccess + } else { + cluster.PublicNetworkAccess = nil + } + + // ResourceUID + cluster.ResourceUID = genruntime.ClonePointerToString(source.ResourceUID) + + // SecurityProfile + if source.SecurityProfile != nil { + var securityProfile ManagedClusterSecurityProfile_STATUS + err := securityProfile.AssignProperties_From_ManagedClusterSecurityProfile_STATUS(source.SecurityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") + } + cluster.SecurityProfile = &securityProfile + } else { + cluster.SecurityProfile = nil + } + + // ServiceMeshProfile + if source.ServiceMeshProfile != nil { + var serviceMeshProfile ServiceMeshProfile_STATUS + err := serviceMeshProfile.AssignProperties_From_ServiceMeshProfile_STATUS(source.ServiceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ServiceMeshProfile_STATUS() to populate field ServiceMeshProfile") + } + cluster.ServiceMeshProfile = &serviceMeshProfile + } else { + cluster.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if source.ServicePrincipalProfile != nil { + var servicePrincipalProfile ManagedClusterServicePrincipalProfile_STATUS + err := servicePrincipalProfile.AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(source.ServicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") + } + cluster.ServicePrincipalProfile = &servicePrincipalProfile + } else { + cluster.ServicePrincipalProfile = nil + } + + // Sku + if source.Sku != nil { + var sku ManagedClusterSKU_STATUS + err := sku.AssignProperties_From_ManagedClusterSKU_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSKU_STATUS() to populate field Sku") + } + cluster.Sku = &sku + } else { + cluster.Sku = nil + } + + // StorageProfile + if source.StorageProfile != nil { + var storageProfile ManagedClusterStorageProfile_STATUS + err := storageProfile.AssignProperties_From_ManagedClusterStorageProfile_STATUS(source.StorageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") + } + cluster.StorageProfile = &storageProfile + } else { + cluster.StorageProfile = nil + } + + // SupportPlan + if source.SupportPlan != nil { + supportPlan := KubernetesSupportPlan_STATUS(*source.SupportPlan) + cluster.SupportPlan = &supportPlan + } else { + cluster.SupportPlan = nil + } + + // SystemData + if source.SystemData != nil { + var systemDatum SystemData_STATUS + err := systemDatum.AssignProperties_From_SystemData_STATUS(source.SystemData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SystemData_STATUS() to populate field SystemData") + } + cluster.SystemData = &systemDatum + } else { + cluster.SystemData = nil + } + + // Tags + cluster.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + cluster.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting ClusterUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_ClusterUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ClusterUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + cluster.UpgradeSettings = &upgradeSetting + } else { + cluster.UpgradeSettings = nil + } + + // WindowsProfile + if source.WindowsProfile != nil { + var windowsProfile ManagedClusterWindowsProfile_STATUS + err := windowsProfile.AssignProperties_From_ManagedClusterWindowsProfile_STATUS(source.WindowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") + } + cluster.WindowsProfile = &windowsProfile + } else { + cluster.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if source.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile ManagedClusterWorkloadAutoScalerProfile_STATUS + err := workloadAutoScalerProfile.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source.WorkloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") + } + cluster.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + cluster.WorkloadAutoScalerProfile = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedCluster_STATUS populates the provided destination ManagedCluster_STATUS from our ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) AssignProperties_To_ManagedCluster_STATUS(destination *v20231001s.ManagedCluster_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AadProfile + if cluster.AadProfile != nil { + var aadProfile v20231001s.ManagedClusterAADProfile_STATUS + err := cluster.AadProfile.AssignProperties_To_ManagedClusterAADProfile_STATUS(&aadProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAADProfile_STATUS() to populate field AadProfile") + } + destination.AadProfile = &aadProfile + } else { + destination.AadProfile = nil + } + + // AddonProfiles + if cluster.AddonProfiles != nil { + addonProfileMap := make(map[string]v20231001s.ManagedClusterAddonProfile_STATUS, len(cluster.AddonProfiles)) + for addonProfileKey, addonProfileValue := range cluster.AddonProfiles { + // Shadow the loop variable to avoid aliasing + addonProfileValue := addonProfileValue + var addonProfile v20231001s.ManagedClusterAddonProfile_STATUS + err := addonProfileValue.AssignProperties_To_ManagedClusterAddonProfile_STATUS(&addonProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAddonProfile_STATUS() to populate field AddonProfiles") + } + addonProfileMap[addonProfileKey] = addonProfile + } + destination.AddonProfiles = addonProfileMap + } else { + destination.AddonProfiles = nil + } + + // AgentPoolProfiles + if cluster.AgentPoolProfiles != nil { + agentPoolProfileList := make([]v20231001s.ManagedClusterAgentPoolProfile_STATUS, len(cluster.AgentPoolProfiles)) + for agentPoolProfileIndex, agentPoolProfileItem := range cluster.AgentPoolProfiles { + // Shadow the loop variable to avoid aliasing + agentPoolProfileItem := agentPoolProfileItem + var agentPoolProfile v20231001s.ManagedClusterAgentPoolProfile_STATUS + err := agentPoolProfileItem.AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(&agentPoolProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS() to populate field AgentPoolProfiles") + } + agentPoolProfileList[agentPoolProfileIndex] = agentPoolProfile + } + destination.AgentPoolProfiles = agentPoolProfileList + } else { + destination.AgentPoolProfiles = nil + } + + // ApiServerAccessProfile + if cluster.ApiServerAccessProfile != nil { + var apiServerAccessProfile v20231001s.ManagedClusterAPIServerAccessProfile_STATUS + err := cluster.ApiServerAccessProfile.AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(&apiServerAccessProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS() to populate field ApiServerAccessProfile") + } + destination.ApiServerAccessProfile = &apiServerAccessProfile + } else { + destination.ApiServerAccessProfile = nil + } + + // AutoScalerProfile + if cluster.AutoScalerProfile != nil { + var autoScalerProfile v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS + err := cluster.AutoScalerProfile.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(&autoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS() to populate field AutoScalerProfile") + } + destination.AutoScalerProfile = &autoScalerProfile + } else { + destination.AutoScalerProfile = nil + } + + // AutoUpgradeProfile + if cluster.AutoUpgradeProfile != nil { + var autoUpgradeProfile v20231001s.ManagedClusterAutoUpgradeProfile_STATUS + err := cluster.AutoUpgradeProfile.AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(&autoUpgradeProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS() to populate field AutoUpgradeProfile") + } + destination.AutoUpgradeProfile = &autoUpgradeProfile + } else { + destination.AutoUpgradeProfile = nil + } + + // AzureMonitorProfile + if cluster.AzureMonitorProfile != nil { + var azureMonitorProfile v20231001s.ManagedClusterAzureMonitorProfile_STATUS + err := cluster.AzureMonitorProfile.AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(&azureMonitorProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS() to populate field AzureMonitorProfile") + } + destination.AzureMonitorProfile = &azureMonitorProfile + } else { + destination.AzureMonitorProfile = nil + } + + // AzurePortalFQDN + destination.AzurePortalFQDN = genruntime.ClonePointerToString(cluster.AzurePortalFQDN) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(cluster.Conditions) + + // CurrentKubernetesVersion + destination.CurrentKubernetesVersion = genruntime.ClonePointerToString(cluster.CurrentKubernetesVersion) + + // DisableLocalAccounts + if cluster.DisableLocalAccounts != nil { + disableLocalAccount := *cluster.DisableLocalAccounts + destination.DisableLocalAccounts = &disableLocalAccount + } else { + destination.DisableLocalAccounts = nil + } + + // DiskEncryptionSetID + destination.DiskEncryptionSetID = genruntime.ClonePointerToString(cluster.DiskEncryptionSetID) + + // DnsPrefix + destination.DnsPrefix = genruntime.ClonePointerToString(cluster.DnsPrefix) + + // EnablePodSecurityPolicy + if cluster.EnablePodSecurityPolicy != nil { + enablePodSecurityPolicy := *cluster.EnablePodSecurityPolicy + destination.EnablePodSecurityPolicy = &enablePodSecurityPolicy + } else { + destination.EnablePodSecurityPolicy = nil + } + + // EnableRBAC + if cluster.EnableRBAC != nil { + enableRBAC := *cluster.EnableRBAC + destination.EnableRBAC = &enableRBAC + } else { + destination.EnableRBAC = nil + } + + // ExtendedLocation + if cluster.ExtendedLocation != nil { + var extendedLocation v20231001s.ExtendedLocation_STATUS + err := cluster.ExtendedLocation.AssignProperties_To_ExtendedLocation_STATUS(&extendedLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ExtendedLocation_STATUS() to populate field ExtendedLocation") + } + destination.ExtendedLocation = &extendedLocation + } else { + destination.ExtendedLocation = nil + } + + // Fqdn + destination.Fqdn = genruntime.ClonePointerToString(cluster.Fqdn) + + // FqdnSubdomain + destination.FqdnSubdomain = genruntime.ClonePointerToString(cluster.FqdnSubdomain) + + // HttpProxyConfig + if cluster.HttpProxyConfig != nil { + var httpProxyConfig v20231001s.ManagedClusterHTTPProxyConfig_STATUS + err := cluster.HttpProxyConfig.AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(&httpProxyConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS() to populate field HttpProxyConfig") + } + destination.HttpProxyConfig = &httpProxyConfig + } else { + destination.HttpProxyConfig = nil + } + + // Id + destination.Id = genruntime.ClonePointerToString(cluster.Id) + + // Identity + if cluster.Identity != nil { + var identity v20231001s.ManagedClusterIdentity_STATUS + err := cluster.Identity.AssignProperties_To_ManagedClusterIdentity_STATUS(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // IdentityProfile + if cluster.IdentityProfile != nil { + identityProfileMap := make(map[string]v20231001s.UserAssignedIdentity_STATUS, len(cluster.IdentityProfile)) + for identityProfileKey, identityProfileValue := range cluster.IdentityProfile { + // Shadow the loop variable to avoid aliasing + identityProfileValue := identityProfileValue + var identityProfile v20231001s.UserAssignedIdentity_STATUS + err := identityProfileValue.AssignProperties_To_UserAssignedIdentity_STATUS(&identityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field IdentityProfile") + } + identityProfileMap[identityProfileKey] = identityProfile + } + destination.IdentityProfile = identityProfileMap + } else { + destination.IdentityProfile = nil + } + + // KubernetesVersion + destination.KubernetesVersion = genruntime.ClonePointerToString(cluster.KubernetesVersion) + + // LinuxProfile + if cluster.LinuxProfile != nil { + var linuxProfile v20231001s.ContainerServiceLinuxProfile_STATUS + err := cluster.LinuxProfile.AssignProperties_To_ContainerServiceLinuxProfile_STATUS(&linuxProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceLinuxProfile_STATUS() to populate field LinuxProfile") + } + destination.LinuxProfile = &linuxProfile + } else { + destination.LinuxProfile = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(cluster.Location) + + // MaxAgentPools + destination.MaxAgentPools = genruntime.ClonePointerToInt(cluster.MaxAgentPools) + + // Name + destination.Name = genruntime.ClonePointerToString(cluster.Name) + + // NetworkProfile + if cluster.NetworkProfile != nil { + var networkProfile v20231001s.ContainerServiceNetworkProfile_STATUS + err := cluster.NetworkProfile.AssignProperties_To_ContainerServiceNetworkProfile_STATUS(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceNetworkProfile_STATUS() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeResourceGroup + destination.NodeResourceGroup = genruntime.ClonePointerToString(cluster.NodeResourceGroup) + + // OidcIssuerProfile + if cluster.OidcIssuerProfile != nil { + var oidcIssuerProfile v20231001s.ManagedClusterOIDCIssuerProfile_STATUS + err := cluster.OidcIssuerProfile.AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(&oidcIssuerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS() to populate field OidcIssuerProfile") + } + destination.OidcIssuerProfile = &oidcIssuerProfile + } else { + destination.OidcIssuerProfile = nil + } + + // PodIdentityProfile + if cluster.PodIdentityProfile != nil { + var podIdentityProfile v20231001s.ManagedClusterPodIdentityProfile_STATUS + err := cluster.PodIdentityProfile.AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(&podIdentityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS() to populate field PodIdentityProfile") + } + destination.PodIdentityProfile = &podIdentityProfile + } else { + destination.PodIdentityProfile = nil + } + + // PowerState + if cluster.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := cluster.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // PrivateFQDN + destination.PrivateFQDN = genruntime.ClonePointerToString(cluster.PrivateFQDN) + + // PrivateLinkResources + if cluster.PrivateLinkResources != nil { + privateLinkResourceList := make([]v20231001s.PrivateLinkResource_STATUS, len(cluster.PrivateLinkResources)) + for privateLinkResourceIndex, privateLinkResourceItem := range cluster.PrivateLinkResources { + // Shadow the loop variable to avoid aliasing + privateLinkResourceItem := privateLinkResourceItem + var privateLinkResource v20231001s.PrivateLinkResource_STATUS + err := privateLinkResourceItem.AssignProperties_To_PrivateLinkResource_STATUS(&privateLinkResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateLinkResource_STATUS() to populate field PrivateLinkResources") + } + privateLinkResourceList[privateLinkResourceIndex] = privateLinkResource + } + destination.PrivateLinkResources = privateLinkResourceList + } else { + destination.PrivateLinkResources = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(cluster.ProvisioningState) + + // PublicNetworkAccess + if cluster.PublicNetworkAccess != nil { + publicNetworkAccess := string(*cluster.PublicNetworkAccess) + destination.PublicNetworkAccess = &publicNetworkAccess + } else { + destination.PublicNetworkAccess = nil + } + + // ResourceUID + destination.ResourceUID = genruntime.ClonePointerToString(cluster.ResourceUID) + + // SecurityProfile + if cluster.SecurityProfile != nil { + var securityProfile v20231001s.ManagedClusterSecurityProfile_STATUS + err := cluster.SecurityProfile.AssignProperties_To_ManagedClusterSecurityProfile_STATUS(&securityProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfile_STATUS() to populate field SecurityProfile") + } + destination.SecurityProfile = &securityProfile + } else { + destination.SecurityProfile = nil + } + + // ServiceMeshProfile + if cluster.ServiceMeshProfile != nil { + var serviceMeshProfile v20231001s.ServiceMeshProfile_STATUS + err := cluster.ServiceMeshProfile.AssignProperties_To_ServiceMeshProfile_STATUS(&serviceMeshProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ServiceMeshProfile_STATUS() to populate field ServiceMeshProfile") + } + destination.ServiceMeshProfile = &serviceMeshProfile + } else { + destination.ServiceMeshProfile = nil + } + + // ServicePrincipalProfile + if cluster.ServicePrincipalProfile != nil { + var servicePrincipalProfile v20231001s.ManagedClusterServicePrincipalProfile_STATUS + err := cluster.ServicePrincipalProfile.AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(&servicePrincipalProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS() to populate field ServicePrincipalProfile") + } + destination.ServicePrincipalProfile = &servicePrincipalProfile + } else { + destination.ServicePrincipalProfile = nil + } + + // Sku + if cluster.Sku != nil { + var sku v20231001s.ManagedClusterSKU_STATUS + err := cluster.Sku.AssignProperties_To_ManagedClusterSKU_STATUS(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSKU_STATUS() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // StorageProfile + if cluster.StorageProfile != nil { + var storageProfile v20231001s.ManagedClusterStorageProfile_STATUS + err := cluster.StorageProfile.AssignProperties_To_ManagedClusterStorageProfile_STATUS(&storageProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfile_STATUS() to populate field StorageProfile") + } + destination.StorageProfile = &storageProfile + } else { + destination.StorageProfile = nil + } + + // SupportPlan + if cluster.SupportPlan != nil { + supportPlan := string(*cluster.SupportPlan) + destination.SupportPlan = &supportPlan + } else { + destination.SupportPlan = nil + } + + // SystemData + if cluster.SystemData != nil { + var systemDatum v20231001s.SystemData_STATUS + err := cluster.SystemData.AssignProperties_To_SystemData_STATUS(&systemDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SystemData_STATUS() to populate field SystemData") + } + destination.SystemData = &systemDatum + } else { + destination.SystemData = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(cluster.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(cluster.Type) + + // UpgradeSettings + if cluster.UpgradeSettings != nil { + var upgradeSetting v20231001s.ClusterUpgradeSettings_STATUS + err := cluster.UpgradeSettings.AssignProperties_To_ClusterUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ClusterUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // WindowsProfile + if cluster.WindowsProfile != nil { + var windowsProfile v20231001s.ManagedClusterWindowsProfile_STATUS + err := cluster.WindowsProfile.AssignProperties_To_ManagedClusterWindowsProfile_STATUS(&windowsProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWindowsProfile_STATUS() to populate field WindowsProfile") + } + destination.WindowsProfile = &windowsProfile + } else { + destination.WindowsProfile = nil + } + + // WorkloadAutoScalerProfile + if cluster.WorkloadAutoScalerProfile != nil { + var workloadAutoScalerProfile v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS + err := cluster.WorkloadAutoScalerProfile.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(&workloadAutoScalerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS() to populate field WorkloadAutoScalerProfile") + } + destination.WorkloadAutoScalerProfile = &workloadAutoScalerProfile + } else { + destination.WorkloadAutoScalerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Settings for upgrading a cluster. +type ClusterUpgradeSettings struct { + // OverrideSettings: Settings for overrides. + OverrideSettings *UpgradeOverrideSettings `json:"overrideSettings,omitempty"` +} + +var _ genruntime.ARMTransformer = &ClusterUpgradeSettings{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (settings *ClusterUpgradeSettings) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if settings == nil { + return nil, nil + } + result := &ClusterUpgradeSettings_ARM{} + + // Set property "OverrideSettings": + if settings.OverrideSettings != nil { + overrideSettings_ARM, err := (*settings.OverrideSettings).ConvertToARM(resolved) + if err != nil { + return nil, err + } + overrideSettings := *overrideSettings_ARM.(*UpgradeOverrideSettings_ARM) + result.OverrideSettings = &overrideSettings + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *ClusterUpgradeSettings) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ClusterUpgradeSettings_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *ClusterUpgradeSettings) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ClusterUpgradeSettings_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ClusterUpgradeSettings_ARM, got %T", armInput) + } + + // Set property "OverrideSettings": + if typedInput.OverrideSettings != nil { + var overrideSettings1 UpgradeOverrideSettings + err := overrideSettings1.PopulateFromARM(owner, *typedInput.OverrideSettings) + if err != nil { + return err + } + overrideSettings := overrideSettings1 + settings.OverrideSettings = &overrideSettings + } + + // No error + return nil +} + +// AssignProperties_From_ClusterUpgradeSettings populates our ClusterUpgradeSettings from the provided source ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_From_ClusterUpgradeSettings(source *v20231001s.ClusterUpgradeSettings) error { + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings populates the provided destination ClusterUpgradeSettings from our ClusterUpgradeSettings +func (settings *ClusterUpgradeSettings) AssignProperties_To_ClusterUpgradeSettings(destination *v20231001s.ClusterUpgradeSettings) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20231001s.UpgradeOverrideSettings + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ClusterUpgradeSettings_STATUS populates our ClusterUpgradeSettings from the provided source ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings) Initialize_From_ClusterUpgradeSettings_STATUS(source *ClusterUpgradeSettings_STATUS) error { + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings + err := overrideSetting.Initialize_From_UpgradeOverrideSettings_STATUS(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // No error + return nil +} + +// Settings for upgrading a cluster. +type ClusterUpgradeSettings_STATUS struct { + // OverrideSettings: Settings for overrides. + OverrideSettings *UpgradeOverrideSettings_STATUS `json:"overrideSettings,omitempty"` +} + +var _ genruntime.FromARMConverter = &ClusterUpgradeSettings_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *ClusterUpgradeSettings_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ClusterUpgradeSettings_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *ClusterUpgradeSettings_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ClusterUpgradeSettings_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ClusterUpgradeSettings_STATUS_ARM, got %T", armInput) + } + + // Set property "OverrideSettings": + if typedInput.OverrideSettings != nil { + var overrideSettings1 UpgradeOverrideSettings_STATUS + err := overrideSettings1.PopulateFromARM(owner, *typedInput.OverrideSettings) + if err != nil { + return err + } + overrideSettings := overrideSettings1 + settings.OverrideSettings = &overrideSettings + } + + // No error + return nil +} + +// AssignProperties_From_ClusterUpgradeSettings_STATUS populates our ClusterUpgradeSettings_STATUS from the provided source ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_From_ClusterUpgradeSettings_STATUS(source *v20231001s.ClusterUpgradeSettings_STATUS) error { + + // OverrideSettings + if source.OverrideSettings != nil { + var overrideSetting UpgradeOverrideSettings_STATUS + err := overrideSetting.AssignProperties_From_UpgradeOverrideSettings_STATUS(source.OverrideSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + settings.OverrideSettings = &overrideSetting + } else { + settings.OverrideSettings = nil + } + + // No error + return nil +} + +// AssignProperties_To_ClusterUpgradeSettings_STATUS populates the provided destination ClusterUpgradeSettings_STATUS from our ClusterUpgradeSettings_STATUS +func (settings *ClusterUpgradeSettings_STATUS) AssignProperties_To_ClusterUpgradeSettings_STATUS(destination *v20231001s.ClusterUpgradeSettings_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // OverrideSettings + if settings.OverrideSettings != nil { + var overrideSetting v20231001s.UpgradeOverrideSettings_STATUS + err := settings.OverrideSettings.AssignProperties_To_UpgradeOverrideSettings_STATUS(&overrideSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UpgradeOverrideSettings_STATUS() to populate field OverrideSettings") + } + destination.OverrideSettings = &overrideSetting + } else { + destination.OverrideSettings = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile struct { + // +kubebuilder:validation:Required + // +kubebuilder:validation:Pattern="^[A-Za-z][-A-Za-z0-9_]*$" + // AdminUsername: The administrator username to use for Linux VMs. + AdminUsername *string `json:"adminUsername,omitempty"` + + // +kubebuilder:validation:Required + // Ssh: The SSH configuration for Linux-based VMs running on Azure. + Ssh *ContainerServiceSshConfiguration `json:"ssh,omitempty"` +} + +var _ genruntime.ARMTransformer = &ContainerServiceLinuxProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ContainerServiceLinuxProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ContainerServiceLinuxProfile_ARM{} + + // Set property "AdminUsername": + if profile.AdminUsername != nil { + adminUsername := *profile.AdminUsername + result.AdminUsername = &adminUsername + } + + // Set property "Ssh": + if profile.Ssh != nil { + ssh_ARM, err := (*profile.Ssh).ConvertToARM(resolved) + if err != nil { + return nil, err + } + ssh := *ssh_ARM.(*ContainerServiceSshConfiguration_ARM) + result.Ssh = &ssh + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ContainerServiceLinuxProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceLinuxProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ContainerServiceLinuxProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceLinuxProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceLinuxProfile_ARM, got %T", armInput) + } + + // Set property "AdminUsername": + if typedInput.AdminUsername != nil { + adminUsername := *typedInput.AdminUsername + profile.AdminUsername = &adminUsername + } + + // Set property "Ssh": + if typedInput.Ssh != nil { + var ssh1 ContainerServiceSshConfiguration + err := ssh1.PopulateFromARM(owner, *typedInput.Ssh) + if err != nil { + return err + } + ssh := ssh1 + profile.Ssh = &ssh + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceLinuxProfile populates our ContainerServiceLinuxProfile from the provided source ContainerServiceLinuxProfile +func (profile *ContainerServiceLinuxProfile) AssignProperties_From_ContainerServiceLinuxProfile(source *v20231001s.ContainerServiceLinuxProfile) error { + + // AdminUsername + if source.AdminUsername != nil { + adminUsername := *source.AdminUsername + profile.AdminUsername = &adminUsername + } else { + profile.AdminUsername = nil + } + + // Ssh + if source.Ssh != nil { + var ssh ContainerServiceSshConfiguration + err := ssh.AssignProperties_From_ContainerServiceSshConfiguration(source.Ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshConfiguration() to populate field Ssh") + } + profile.Ssh = &ssh + } else { + profile.Ssh = nil + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceLinuxProfile populates the provided destination ContainerServiceLinuxProfile from our ContainerServiceLinuxProfile +func (profile *ContainerServiceLinuxProfile) AssignProperties_To_ContainerServiceLinuxProfile(destination *v20231001s.ContainerServiceLinuxProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminUsername + if profile.AdminUsername != nil { + adminUsername := *profile.AdminUsername + destination.AdminUsername = &adminUsername + } else { + destination.AdminUsername = nil + } + + // Ssh + if profile.Ssh != nil { + var ssh v20231001s.ContainerServiceSshConfiguration + err := profile.Ssh.AssignProperties_To_ContainerServiceSshConfiguration(&ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshConfiguration() to populate field Ssh") + } + destination.Ssh = &ssh + } else { + destination.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ContainerServiceLinuxProfile_STATUS populates our ContainerServiceLinuxProfile from the provided source ContainerServiceLinuxProfile_STATUS +func (profile *ContainerServiceLinuxProfile) Initialize_From_ContainerServiceLinuxProfile_STATUS(source *ContainerServiceLinuxProfile_STATUS) error { + + // AdminUsername + if source.AdminUsername != nil { + adminUsername := *source.AdminUsername + profile.AdminUsername = &adminUsername + } else { + profile.AdminUsername = nil + } + + // Ssh + if source.Ssh != nil { + var ssh ContainerServiceSshConfiguration + err := ssh.Initialize_From_ContainerServiceSshConfiguration_STATUS(source.Ssh) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") + } + profile.Ssh = &ssh + } else { + profile.Ssh = nil + } + + // No error + return nil +} + +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile_STATUS struct { + // AdminUsername: The administrator username to use for Linux VMs. + AdminUsername *string `json:"adminUsername,omitempty"` + + // Ssh: The SSH configuration for Linux-based VMs running on Azure. + Ssh *ContainerServiceSshConfiguration_STATUS `json:"ssh,omitempty"` +} + +var _ genruntime.FromARMConverter = &ContainerServiceLinuxProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ContainerServiceLinuxProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceLinuxProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ContainerServiceLinuxProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceLinuxProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceLinuxProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AdminUsername": + if typedInput.AdminUsername != nil { + adminUsername := *typedInput.AdminUsername + profile.AdminUsername = &adminUsername + } + + // Set property "Ssh": + if typedInput.Ssh != nil { + var ssh1 ContainerServiceSshConfiguration_STATUS + err := ssh1.PopulateFromARM(owner, *typedInput.Ssh) + if err != nil { + return err + } + ssh := ssh1 + profile.Ssh = &ssh + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceLinuxProfile_STATUS populates our ContainerServiceLinuxProfile_STATUS from the provided source ContainerServiceLinuxProfile_STATUS +func (profile *ContainerServiceLinuxProfile_STATUS) AssignProperties_From_ContainerServiceLinuxProfile_STATUS(source *v20231001s.ContainerServiceLinuxProfile_STATUS) error { + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // Ssh + if source.Ssh != nil { + var ssh ContainerServiceSshConfiguration_STATUS + err := ssh.AssignProperties_From_ContainerServiceSshConfiguration_STATUS(source.Ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") + } + profile.Ssh = &ssh + } else { + profile.Ssh = nil + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceLinuxProfile_STATUS populates the provided destination ContainerServiceLinuxProfile_STATUS from our ContainerServiceLinuxProfile_STATUS +func (profile *ContainerServiceLinuxProfile_STATUS) AssignProperties_To_ContainerServiceLinuxProfile_STATUS(destination *v20231001s.ContainerServiceLinuxProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // Ssh + if profile.Ssh != nil { + var ssh v20231001s.ContainerServiceSshConfiguration_STATUS + err := profile.Ssh.AssignProperties_To_ContainerServiceSshConfiguration_STATUS(&ssh) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshConfiguration_STATUS() to populate field Ssh") + } + destination.Ssh = &ssh + } else { + destination.Ssh = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile of network configuration. +type ContainerServiceNetworkProfile struct { + // +kubebuilder:validation:Pattern="^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" + // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address + // range specified in serviceCidr. + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + + // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value + // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. + IpFamilies []ContainerServiceNetworkProfile_IpFamilies `json:"ipFamilies,omitempty"` + + // LoadBalancerProfile: Profile of the cluster load balancer. + LoadBalancerProfile *ManagedClusterLoadBalancerProfile `json:"loadBalancerProfile,omitempty"` + + // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer + // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load + // balancer SKUs. + LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku `json:"loadBalancerSku,omitempty"` + + // NatGatewayProfile: Profile of the cluster NAT gateway. + NatGatewayProfile *ManagedClusterNATGatewayProfile `json:"natGatewayProfile,omitempty"` + + // NetworkDataplane: Network dataplane used in the Kubernetes cluster. + NetworkDataplane *ContainerServiceNetworkProfile_NetworkDataplane `json:"networkDataplane,omitempty"` + + // NetworkMode: This cannot be specified if networkPlugin is anything other than 'azure'. + NetworkMode *ContainerServiceNetworkProfile_NetworkMode `json:"networkMode,omitempty"` + + // NetworkPlugin: Network plugin used for building the Kubernetes network. + NetworkPlugin *NetworkPlugin `json:"networkPlugin,omitempty"` + + // NetworkPluginMode: The mode the network plugin should use. + NetworkPluginMode *ContainerServiceNetworkProfile_NetworkPluginMode `json:"networkPluginMode,omitempty"` + + // NetworkPolicy: Network policy used for building the Kubernetes network. + NetworkPolicy *ContainerServiceNetworkProfile_NetworkPolicy `json:"networkPolicy,omitempty"` + + // OutboundType: This can only be set at cluster creation time and cannot be changed later. For more information see + // [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype). + OutboundType *ContainerServiceNetworkProfile_OutboundType `json:"outboundType,omitempty"` + + // +kubebuilder:validation:Pattern="^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$" + // PodCidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + PodCidr *string `json:"podCidr,omitempty"` + + // PodCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. + PodCidrs []string `json:"podCidrs,omitempty"` + + // +kubebuilder:validation:Pattern="^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$" + // ServiceCidr: A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP + // ranges. + ServiceCidr *string `json:"serviceCidr,omitempty"` + + // ServiceCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. They must not overlap with any Subnet IP ranges. + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +var _ genruntime.ARMTransformer = &ContainerServiceNetworkProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ContainerServiceNetworkProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ContainerServiceNetworkProfile_ARM{} + + // Set property "DnsServiceIP": + if profile.DnsServiceIP != nil { + dnsServiceIP := *profile.DnsServiceIP + result.DnsServiceIP = &dnsServiceIP + } + + // Set property "IpFamilies": + for _, item := range profile.IpFamilies { + result.IpFamilies = append(result.IpFamilies, item) + } + + // Set property "LoadBalancerProfile": + if profile.LoadBalancerProfile != nil { + loadBalancerProfile_ARM, err := (*profile.LoadBalancerProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + loadBalancerProfile := *loadBalancerProfile_ARM.(*ManagedClusterLoadBalancerProfile_ARM) + result.LoadBalancerProfile = &loadBalancerProfile + } + + // Set property "LoadBalancerSku": + if profile.LoadBalancerSku != nil { + loadBalancerSku := *profile.LoadBalancerSku + result.LoadBalancerSku = &loadBalancerSku + } + + // Set property "NatGatewayProfile": + if profile.NatGatewayProfile != nil { + natGatewayProfile_ARM, err := (*profile.NatGatewayProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + natGatewayProfile := *natGatewayProfile_ARM.(*ManagedClusterNATGatewayProfile_ARM) + result.NatGatewayProfile = &natGatewayProfile + } + + // Set property "NetworkDataplane": + if profile.NetworkDataplane != nil { + networkDataplane := *profile.NetworkDataplane + result.NetworkDataplane = &networkDataplane + } + + // Set property "NetworkMode": + if profile.NetworkMode != nil { + networkMode := *profile.NetworkMode + result.NetworkMode = &networkMode + } + + // Set property "NetworkPlugin": + if profile.NetworkPlugin != nil { + networkPlugin := *profile.NetworkPlugin + result.NetworkPlugin = &networkPlugin + } + + // Set property "NetworkPluginMode": + if profile.NetworkPluginMode != nil { + networkPluginMode := *profile.NetworkPluginMode + result.NetworkPluginMode = &networkPluginMode + } + + // Set property "NetworkPolicy": + if profile.NetworkPolicy != nil { + networkPolicy := *profile.NetworkPolicy + result.NetworkPolicy = &networkPolicy + } + + // Set property "OutboundType": + if profile.OutboundType != nil { + outboundType := *profile.OutboundType + result.OutboundType = &outboundType + } + + // Set property "PodCidr": + if profile.PodCidr != nil { + podCidr := *profile.PodCidr + result.PodCidr = &podCidr + } + + // Set property "PodCidrs": + for _, item := range profile.PodCidrs { + result.PodCidrs = append(result.PodCidrs, item) + } + + // Set property "ServiceCidr": + if profile.ServiceCidr != nil { + serviceCidr := *profile.ServiceCidr + result.ServiceCidr = &serviceCidr + } + + // Set property "ServiceCidrs": + for _, item := range profile.ServiceCidrs { + result.ServiceCidrs = append(result.ServiceCidrs, item) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ContainerServiceNetworkProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceNetworkProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ContainerServiceNetworkProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceNetworkProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceNetworkProfile_ARM, got %T", armInput) + } + + // Set property "DnsServiceIP": + if typedInput.DnsServiceIP != nil { + dnsServiceIP := *typedInput.DnsServiceIP + profile.DnsServiceIP = &dnsServiceIP + } + + // Set property "IpFamilies": + for _, item := range typedInput.IpFamilies { + profile.IpFamilies = append(profile.IpFamilies, item) + } + + // Set property "LoadBalancerProfile": + if typedInput.LoadBalancerProfile != nil { + var loadBalancerProfile1 ManagedClusterLoadBalancerProfile + err := loadBalancerProfile1.PopulateFromARM(owner, *typedInput.LoadBalancerProfile) + if err != nil { + return err + } + loadBalancerProfile := loadBalancerProfile1 + profile.LoadBalancerProfile = &loadBalancerProfile + } + + // Set property "LoadBalancerSku": + if typedInput.LoadBalancerSku != nil { + loadBalancerSku := *typedInput.LoadBalancerSku + profile.LoadBalancerSku = &loadBalancerSku + } + + // Set property "NatGatewayProfile": + if typedInput.NatGatewayProfile != nil { + var natGatewayProfile1 ManagedClusterNATGatewayProfile + err := natGatewayProfile1.PopulateFromARM(owner, *typedInput.NatGatewayProfile) + if err != nil { + return err + } + natGatewayProfile := natGatewayProfile1 + profile.NatGatewayProfile = &natGatewayProfile + } + + // Set property "NetworkDataplane": + if typedInput.NetworkDataplane != nil { + networkDataplane := *typedInput.NetworkDataplane + profile.NetworkDataplane = &networkDataplane + } + + // Set property "NetworkMode": + if typedInput.NetworkMode != nil { + networkMode := *typedInput.NetworkMode + profile.NetworkMode = &networkMode + } + + // Set property "NetworkPlugin": + if typedInput.NetworkPlugin != nil { + networkPlugin := *typedInput.NetworkPlugin + profile.NetworkPlugin = &networkPlugin + } + + // Set property "NetworkPluginMode": + if typedInput.NetworkPluginMode != nil { + networkPluginMode := *typedInput.NetworkPluginMode + profile.NetworkPluginMode = &networkPluginMode + } + + // Set property "NetworkPolicy": + if typedInput.NetworkPolicy != nil { + networkPolicy := *typedInput.NetworkPolicy + profile.NetworkPolicy = &networkPolicy + } + + // Set property "OutboundType": + if typedInput.OutboundType != nil { + outboundType := *typedInput.OutboundType + profile.OutboundType = &outboundType + } + + // Set property "PodCidr": + if typedInput.PodCidr != nil { + podCidr := *typedInput.PodCidr + profile.PodCidr = &podCidr + } + + // Set property "PodCidrs": + for _, item := range typedInput.PodCidrs { + profile.PodCidrs = append(profile.PodCidrs, item) + } + + // Set property "ServiceCidr": + if typedInput.ServiceCidr != nil { + serviceCidr := *typedInput.ServiceCidr + profile.ServiceCidr = &serviceCidr + } + + // Set property "ServiceCidrs": + for _, item := range typedInput.ServiceCidrs { + profile.ServiceCidrs = append(profile.ServiceCidrs, item) + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceNetworkProfile populates our ContainerServiceNetworkProfile from the provided source ContainerServiceNetworkProfile +func (profile *ContainerServiceNetworkProfile) AssignProperties_From_ContainerServiceNetworkProfile(source *v20231001s.ContainerServiceNetworkProfile) error { + + // DnsServiceIP + if source.DnsServiceIP != nil { + dnsServiceIP := *source.DnsServiceIP + profile.DnsServiceIP = &dnsServiceIP + } else { + profile.DnsServiceIP = nil + } + + // IpFamilies + if source.IpFamilies != nil { + ipFamilyList := make([]ContainerServiceNetworkProfile_IpFamilies, len(source.IpFamilies)) + for ipFamilyIndex, ipFamilyItem := range source.IpFamilies { + // Shadow the loop variable to avoid aliasing + ipFamilyItem := ipFamilyItem + ipFamilyList[ipFamilyIndex] = ContainerServiceNetworkProfile_IpFamilies(ipFamilyItem) + } + profile.IpFamilies = ipFamilyList + } else { + profile.IpFamilies = nil + } + + // LoadBalancerProfile + if source.LoadBalancerProfile != nil { + var loadBalancerProfile ManagedClusterLoadBalancerProfile + err := loadBalancerProfile.AssignProperties_From_ManagedClusterLoadBalancerProfile(source.LoadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile() to populate field LoadBalancerProfile") + } + profile.LoadBalancerProfile = &loadBalancerProfile + } else { + profile.LoadBalancerProfile = nil + } + + // LoadBalancerSku + if source.LoadBalancerSku != nil { + loadBalancerSku := ContainerServiceNetworkProfile_LoadBalancerSku(*source.LoadBalancerSku) + profile.LoadBalancerSku = &loadBalancerSku + } else { + profile.LoadBalancerSku = nil + } + + // NatGatewayProfile + if source.NatGatewayProfile != nil { + var natGatewayProfile ManagedClusterNATGatewayProfile + err := natGatewayProfile.AssignProperties_From_ManagedClusterNATGatewayProfile(source.NatGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterNATGatewayProfile() to populate field NatGatewayProfile") + } + profile.NatGatewayProfile = &natGatewayProfile + } else { + profile.NatGatewayProfile = nil + } + + // NetworkDataplane + if source.NetworkDataplane != nil { + networkDataplane := ContainerServiceNetworkProfile_NetworkDataplane(*source.NetworkDataplane) + profile.NetworkDataplane = &networkDataplane + } else { + profile.NetworkDataplane = nil + } + + // NetworkMode + if source.NetworkMode != nil { + networkMode := ContainerServiceNetworkProfile_NetworkMode(*source.NetworkMode) + profile.NetworkMode = &networkMode + } else { + profile.NetworkMode = nil + } + + // NetworkPlugin + if source.NetworkPlugin != nil { + networkPlugin := NetworkPlugin(*source.NetworkPlugin) + profile.NetworkPlugin = &networkPlugin + } else { + profile.NetworkPlugin = nil + } + + // NetworkPluginMode + if source.NetworkPluginMode != nil { + networkPluginMode := ContainerServiceNetworkProfile_NetworkPluginMode(*source.NetworkPluginMode) + profile.NetworkPluginMode = &networkPluginMode + } else { + profile.NetworkPluginMode = nil + } + + // NetworkPolicy + if source.NetworkPolicy != nil { + networkPolicy := ContainerServiceNetworkProfile_NetworkPolicy(*source.NetworkPolicy) + profile.NetworkPolicy = &networkPolicy + } else { + profile.NetworkPolicy = nil + } + + // OutboundType + if source.OutboundType != nil { + outboundType := ContainerServiceNetworkProfile_OutboundType(*source.OutboundType) + profile.OutboundType = &outboundType + } else { + profile.OutboundType = nil + } + + // PodCidr + if source.PodCidr != nil { + podCidr := *source.PodCidr + profile.PodCidr = &podCidr + } else { + profile.PodCidr = nil + } + + // PodCidrs + profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) + + // ServiceCidr + if source.ServiceCidr != nil { + serviceCidr := *source.ServiceCidr + profile.ServiceCidr = &serviceCidr + } else { + profile.ServiceCidr = nil + } + + // ServiceCidrs + profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceNetworkProfile populates the provided destination ContainerServiceNetworkProfile from our ContainerServiceNetworkProfile +func (profile *ContainerServiceNetworkProfile) AssignProperties_To_ContainerServiceNetworkProfile(destination *v20231001s.ContainerServiceNetworkProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DnsServiceIP + if profile.DnsServiceIP != nil { + dnsServiceIP := *profile.DnsServiceIP + destination.DnsServiceIP = &dnsServiceIP + } else { + destination.DnsServiceIP = nil + } + + // IpFamilies + if profile.IpFamilies != nil { + ipFamilyList := make([]string, len(profile.IpFamilies)) + for ipFamilyIndex, ipFamilyItem := range profile.IpFamilies { + // Shadow the loop variable to avoid aliasing + ipFamilyItem := ipFamilyItem + ipFamilyList[ipFamilyIndex] = string(ipFamilyItem) + } + destination.IpFamilies = ipFamilyList + } else { + destination.IpFamilies = nil + } + + // LoadBalancerProfile + if profile.LoadBalancerProfile != nil { + var loadBalancerProfile v20231001s.ManagedClusterLoadBalancerProfile + err := profile.LoadBalancerProfile.AssignProperties_To_ManagedClusterLoadBalancerProfile(&loadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile() to populate field LoadBalancerProfile") + } + destination.LoadBalancerProfile = &loadBalancerProfile + } else { + destination.LoadBalancerProfile = nil + } + + // LoadBalancerSku + if profile.LoadBalancerSku != nil { + loadBalancerSku := string(*profile.LoadBalancerSku) + destination.LoadBalancerSku = &loadBalancerSku + } else { + destination.LoadBalancerSku = nil + } + + // NatGatewayProfile + if profile.NatGatewayProfile != nil { + var natGatewayProfile v20231001s.ManagedClusterNATGatewayProfile + err := profile.NatGatewayProfile.AssignProperties_To_ManagedClusterNATGatewayProfile(&natGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterNATGatewayProfile() to populate field NatGatewayProfile") + } + destination.NatGatewayProfile = &natGatewayProfile + } else { + destination.NatGatewayProfile = nil + } + + // NetworkDataplane + if profile.NetworkDataplane != nil { + networkDataplane := string(*profile.NetworkDataplane) + destination.NetworkDataplane = &networkDataplane + } else { + destination.NetworkDataplane = nil + } + + // NetworkMode + if profile.NetworkMode != nil { + networkMode := string(*profile.NetworkMode) + destination.NetworkMode = &networkMode + } else { + destination.NetworkMode = nil + } + + // NetworkPlugin + if profile.NetworkPlugin != nil { + networkPlugin := string(*profile.NetworkPlugin) + destination.NetworkPlugin = &networkPlugin + } else { + destination.NetworkPlugin = nil + } + + // NetworkPluginMode + if profile.NetworkPluginMode != nil { + networkPluginMode := string(*profile.NetworkPluginMode) + destination.NetworkPluginMode = &networkPluginMode + } else { + destination.NetworkPluginMode = nil + } + + // NetworkPolicy + if profile.NetworkPolicy != nil { + networkPolicy := string(*profile.NetworkPolicy) + destination.NetworkPolicy = &networkPolicy + } else { + destination.NetworkPolicy = nil + } + + // OutboundType + if profile.OutboundType != nil { + outboundType := string(*profile.OutboundType) + destination.OutboundType = &outboundType + } else { + destination.OutboundType = nil + } + + // PodCidr + if profile.PodCidr != nil { + podCidr := *profile.PodCidr + destination.PodCidr = &podCidr + } else { + destination.PodCidr = nil + } + + // PodCidrs + destination.PodCidrs = genruntime.CloneSliceOfString(profile.PodCidrs) + + // ServiceCidr + if profile.ServiceCidr != nil { + serviceCidr := *profile.ServiceCidr + destination.ServiceCidr = &serviceCidr + } else { + destination.ServiceCidr = nil + } + + // ServiceCidrs + destination.ServiceCidrs = genruntime.CloneSliceOfString(profile.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ContainerServiceNetworkProfile_STATUS populates our ContainerServiceNetworkProfile from the provided source ContainerServiceNetworkProfile_STATUS +func (profile *ContainerServiceNetworkProfile) Initialize_From_ContainerServiceNetworkProfile_STATUS(source *ContainerServiceNetworkProfile_STATUS) error { + + // DnsServiceIP + if source.DnsServiceIP != nil { + dnsServiceIP := *source.DnsServiceIP + profile.DnsServiceIP = &dnsServiceIP + } else { + profile.DnsServiceIP = nil + } + + // IpFamilies + if source.IpFamilies != nil { + ipFamilyList := make([]ContainerServiceNetworkProfile_IpFamilies, len(source.IpFamilies)) + for ipFamilyIndex, ipFamilyItem := range source.IpFamilies { + // Shadow the loop variable to avoid aliasing + ipFamilyItem := ipFamilyItem + ipFamily := ContainerServiceNetworkProfile_IpFamilies(ipFamilyItem) + ipFamilyList[ipFamilyIndex] = ipFamily + } + profile.IpFamilies = ipFamilyList + } else { + profile.IpFamilies = nil + } + + // LoadBalancerProfile + if source.LoadBalancerProfile != nil { + var loadBalancerProfile ManagedClusterLoadBalancerProfile + err := loadBalancerProfile.Initialize_From_ManagedClusterLoadBalancerProfile_STATUS(source.LoadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") + } + profile.LoadBalancerProfile = &loadBalancerProfile + } else { + profile.LoadBalancerProfile = nil + } + + // LoadBalancerSku + if source.LoadBalancerSku != nil { + loadBalancerSku := ContainerServiceNetworkProfile_LoadBalancerSku(*source.LoadBalancerSku) + profile.LoadBalancerSku = &loadBalancerSku + } else { + profile.LoadBalancerSku = nil + } + + // NatGatewayProfile + if source.NatGatewayProfile != nil { + var natGatewayProfile ManagedClusterNATGatewayProfile + err := natGatewayProfile.Initialize_From_ManagedClusterNATGatewayProfile_STATUS(source.NatGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") + } + profile.NatGatewayProfile = &natGatewayProfile + } else { + profile.NatGatewayProfile = nil + } + + // NetworkDataplane + if source.NetworkDataplane != nil { + networkDataplane := ContainerServiceNetworkProfile_NetworkDataplane(*source.NetworkDataplane) + profile.NetworkDataplane = &networkDataplane + } else { + profile.NetworkDataplane = nil + } + + // NetworkMode + if source.NetworkMode != nil { + networkMode := ContainerServiceNetworkProfile_NetworkMode(*source.NetworkMode) + profile.NetworkMode = &networkMode + } else { + profile.NetworkMode = nil + } + + // NetworkPlugin + if source.NetworkPlugin != nil { + networkPlugin := NetworkPlugin(*source.NetworkPlugin) + profile.NetworkPlugin = &networkPlugin + } else { + profile.NetworkPlugin = nil + } + + // NetworkPluginMode + if source.NetworkPluginMode != nil { + networkPluginMode := ContainerServiceNetworkProfile_NetworkPluginMode(*source.NetworkPluginMode) + profile.NetworkPluginMode = &networkPluginMode + } else { + profile.NetworkPluginMode = nil + } + + // NetworkPolicy + if source.NetworkPolicy != nil { + networkPolicy := ContainerServiceNetworkProfile_NetworkPolicy(*source.NetworkPolicy) + profile.NetworkPolicy = &networkPolicy + } else { + profile.NetworkPolicy = nil + } + + // OutboundType + if source.OutboundType != nil { + outboundType := ContainerServiceNetworkProfile_OutboundType(*source.OutboundType) + profile.OutboundType = &outboundType + } else { + profile.OutboundType = nil + } + + // PodCidr + if source.PodCidr != nil { + podCidr := *source.PodCidr + profile.PodCidr = &podCidr + } else { + profile.PodCidr = nil + } + + // PodCidrs + profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) + + // ServiceCidr + if source.ServiceCidr != nil { + serviceCidr := *source.ServiceCidr + profile.ServiceCidr = &serviceCidr + } else { + profile.ServiceCidr = nil + } + + // ServiceCidrs + profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) + + // No error + return nil +} + +// Profile of network configuration. +type ContainerServiceNetworkProfile_STATUS struct { + // DnsServiceIP: An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address + // range specified in serviceCidr. + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + + // IpFamilies: IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value + // is IPv4. For dual-stack, the expected values are IPv4 and IPv6. + IpFamilies []ContainerServiceNetworkProfile_IpFamilies_STATUS `json:"ipFamilies,omitempty"` + + // LoadBalancerProfile: Profile of the cluster load balancer. + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` + + // LoadBalancerSku: The default is 'standard'. See [Azure Load Balancer + // SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load + // balancer SKUs. + LoadBalancerSku *ContainerServiceNetworkProfile_LoadBalancerSku_STATUS `json:"loadBalancerSku,omitempty"` + + // NatGatewayProfile: Profile of the cluster NAT gateway. + NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS `json:"natGatewayProfile,omitempty"` + + // NetworkDataplane: Network dataplane used in the Kubernetes cluster. + NetworkDataplane *ContainerServiceNetworkProfile_NetworkDataplane_STATUS `json:"networkDataplane,omitempty"` + + // NetworkMode: This cannot be specified if networkPlugin is anything other than 'azure'. + NetworkMode *ContainerServiceNetworkProfile_NetworkMode_STATUS `json:"networkMode,omitempty"` + + // NetworkPlugin: Network plugin used for building the Kubernetes network. + NetworkPlugin *ContainerServiceNetworkProfile_NetworkPlugin_STATUS `json:"networkPlugin,omitempty"` + + // NetworkPluginMode: The mode the network plugin should use. + NetworkPluginMode *ContainerServiceNetworkProfile_NetworkPluginMode_STATUS `json:"networkPluginMode,omitempty"` + + // NetworkPolicy: Network policy used for building the Kubernetes network. + NetworkPolicy *ContainerServiceNetworkProfile_NetworkPolicy_STATUS `json:"networkPolicy,omitempty"` + + // OutboundType: This can only be set at cluster creation time and cannot be changed later. For more information see + // [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype). + OutboundType *ContainerServiceNetworkProfile_OutboundType_STATUS `json:"outboundType,omitempty"` + + // PodCidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. + PodCidr *string `json:"podCidr,omitempty"` + + // PodCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. + PodCidrs []string `json:"podCidrs,omitempty"` + + // ServiceCidr: A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP + // ranges. + ServiceCidr *string `json:"serviceCidr,omitempty"` + + // ServiceCidrs: One IPv4 CIDR is expected for single-stack networking. Two CIDRs, one for each IP family (IPv4/IPv6), is + // expected for dual-stack networking. They must not overlap with any Subnet IP ranges. + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +var _ genruntime.FromARMConverter = &ContainerServiceNetworkProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ContainerServiceNetworkProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceNetworkProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ContainerServiceNetworkProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceNetworkProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceNetworkProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "DnsServiceIP": + if typedInput.DnsServiceIP != nil { + dnsServiceIP := *typedInput.DnsServiceIP + profile.DnsServiceIP = &dnsServiceIP + } + + // Set property "IpFamilies": + for _, item := range typedInput.IpFamilies { + profile.IpFamilies = append(profile.IpFamilies, item) + } + + // Set property "LoadBalancerProfile": + if typedInput.LoadBalancerProfile != nil { + var loadBalancerProfile1 ManagedClusterLoadBalancerProfile_STATUS + err := loadBalancerProfile1.PopulateFromARM(owner, *typedInput.LoadBalancerProfile) + if err != nil { + return err + } + loadBalancerProfile := loadBalancerProfile1 + profile.LoadBalancerProfile = &loadBalancerProfile + } + + // Set property "LoadBalancerSku": + if typedInput.LoadBalancerSku != nil { + loadBalancerSku := *typedInput.LoadBalancerSku + profile.LoadBalancerSku = &loadBalancerSku + } + + // Set property "NatGatewayProfile": + if typedInput.NatGatewayProfile != nil { + var natGatewayProfile1 ManagedClusterNATGatewayProfile_STATUS + err := natGatewayProfile1.PopulateFromARM(owner, *typedInput.NatGatewayProfile) + if err != nil { + return err + } + natGatewayProfile := natGatewayProfile1 + profile.NatGatewayProfile = &natGatewayProfile + } + + // Set property "NetworkDataplane": + if typedInput.NetworkDataplane != nil { + networkDataplane := *typedInput.NetworkDataplane + profile.NetworkDataplane = &networkDataplane + } + + // Set property "NetworkMode": + if typedInput.NetworkMode != nil { + networkMode := *typedInput.NetworkMode + profile.NetworkMode = &networkMode + } + + // Set property "NetworkPlugin": + if typedInput.NetworkPlugin != nil { + networkPlugin := *typedInput.NetworkPlugin + profile.NetworkPlugin = &networkPlugin + } + + // Set property "NetworkPluginMode": + if typedInput.NetworkPluginMode != nil { + networkPluginMode := *typedInput.NetworkPluginMode + profile.NetworkPluginMode = &networkPluginMode + } + + // Set property "NetworkPolicy": + if typedInput.NetworkPolicy != nil { + networkPolicy := *typedInput.NetworkPolicy + profile.NetworkPolicy = &networkPolicy + } + + // Set property "OutboundType": + if typedInput.OutboundType != nil { + outboundType := *typedInput.OutboundType + profile.OutboundType = &outboundType + } + + // Set property "PodCidr": + if typedInput.PodCidr != nil { + podCidr := *typedInput.PodCidr + profile.PodCidr = &podCidr + } + + // Set property "PodCidrs": + for _, item := range typedInput.PodCidrs { + profile.PodCidrs = append(profile.PodCidrs, item) + } + + // Set property "ServiceCidr": + if typedInput.ServiceCidr != nil { + serviceCidr := *typedInput.ServiceCidr + profile.ServiceCidr = &serviceCidr + } + + // Set property "ServiceCidrs": + for _, item := range typedInput.ServiceCidrs { + profile.ServiceCidrs = append(profile.ServiceCidrs, item) + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceNetworkProfile_STATUS populates our ContainerServiceNetworkProfile_STATUS from the provided source ContainerServiceNetworkProfile_STATUS +func (profile *ContainerServiceNetworkProfile_STATUS) AssignProperties_From_ContainerServiceNetworkProfile_STATUS(source *v20231001s.ContainerServiceNetworkProfile_STATUS) error { + + // DnsServiceIP + profile.DnsServiceIP = genruntime.ClonePointerToString(source.DnsServiceIP) + + // IpFamilies + if source.IpFamilies != nil { + ipFamilyList := make([]ContainerServiceNetworkProfile_IpFamilies_STATUS, len(source.IpFamilies)) + for ipFamilyIndex, ipFamilyItem := range source.IpFamilies { + // Shadow the loop variable to avoid aliasing + ipFamilyItem := ipFamilyItem + ipFamilyList[ipFamilyIndex] = ContainerServiceNetworkProfile_IpFamilies_STATUS(ipFamilyItem) + } + profile.IpFamilies = ipFamilyList + } else { + profile.IpFamilies = nil + } + + // LoadBalancerProfile + if source.LoadBalancerProfile != nil { + var loadBalancerProfile ManagedClusterLoadBalancerProfile_STATUS + err := loadBalancerProfile.AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(source.LoadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") + } + profile.LoadBalancerProfile = &loadBalancerProfile + } else { + profile.LoadBalancerProfile = nil + } + + // LoadBalancerSku + if source.LoadBalancerSku != nil { + loadBalancerSku := ContainerServiceNetworkProfile_LoadBalancerSku_STATUS(*source.LoadBalancerSku) + profile.LoadBalancerSku = &loadBalancerSku + } else { + profile.LoadBalancerSku = nil + } + + // NatGatewayProfile + if source.NatGatewayProfile != nil { + var natGatewayProfile ManagedClusterNATGatewayProfile_STATUS + err := natGatewayProfile.AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(source.NatGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") + } + profile.NatGatewayProfile = &natGatewayProfile + } else { + profile.NatGatewayProfile = nil + } + + // NetworkDataplane + if source.NetworkDataplane != nil { + networkDataplane := ContainerServiceNetworkProfile_NetworkDataplane_STATUS(*source.NetworkDataplane) + profile.NetworkDataplane = &networkDataplane + } else { + profile.NetworkDataplane = nil + } + + // NetworkMode + if source.NetworkMode != nil { + networkMode := ContainerServiceNetworkProfile_NetworkMode_STATUS(*source.NetworkMode) + profile.NetworkMode = &networkMode + } else { + profile.NetworkMode = nil + } + + // NetworkPlugin + if source.NetworkPlugin != nil { + networkPlugin := ContainerServiceNetworkProfile_NetworkPlugin_STATUS(*source.NetworkPlugin) + profile.NetworkPlugin = &networkPlugin + } else { + profile.NetworkPlugin = nil + } + + // NetworkPluginMode + if source.NetworkPluginMode != nil { + networkPluginMode := ContainerServiceNetworkProfile_NetworkPluginMode_STATUS(*source.NetworkPluginMode) + profile.NetworkPluginMode = &networkPluginMode + } else { + profile.NetworkPluginMode = nil + } + + // NetworkPolicy + if source.NetworkPolicy != nil { + networkPolicy := ContainerServiceNetworkProfile_NetworkPolicy_STATUS(*source.NetworkPolicy) + profile.NetworkPolicy = &networkPolicy + } else { + profile.NetworkPolicy = nil + } + + // OutboundType + if source.OutboundType != nil { + outboundType := ContainerServiceNetworkProfile_OutboundType_STATUS(*source.OutboundType) + profile.OutboundType = &outboundType + } else { + profile.OutboundType = nil + } + + // PodCidr + profile.PodCidr = genruntime.ClonePointerToString(source.PodCidr) + + // PodCidrs + profile.PodCidrs = genruntime.CloneSliceOfString(source.PodCidrs) + + // ServiceCidr + profile.ServiceCidr = genruntime.ClonePointerToString(source.ServiceCidr) + + // ServiceCidrs + profile.ServiceCidrs = genruntime.CloneSliceOfString(source.ServiceCidrs) + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceNetworkProfile_STATUS populates the provided destination ContainerServiceNetworkProfile_STATUS from our ContainerServiceNetworkProfile_STATUS +func (profile *ContainerServiceNetworkProfile_STATUS) AssignProperties_To_ContainerServiceNetworkProfile_STATUS(destination *v20231001s.ContainerServiceNetworkProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DnsServiceIP + destination.DnsServiceIP = genruntime.ClonePointerToString(profile.DnsServiceIP) + + // IpFamilies + if profile.IpFamilies != nil { + ipFamilyList := make([]string, len(profile.IpFamilies)) + for ipFamilyIndex, ipFamilyItem := range profile.IpFamilies { + // Shadow the loop variable to avoid aliasing + ipFamilyItem := ipFamilyItem + ipFamilyList[ipFamilyIndex] = string(ipFamilyItem) + } + destination.IpFamilies = ipFamilyList + } else { + destination.IpFamilies = nil + } + + // LoadBalancerProfile + if profile.LoadBalancerProfile != nil { + var loadBalancerProfile v20231001s.ManagedClusterLoadBalancerProfile_STATUS + err := profile.LoadBalancerProfile.AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(&loadBalancerProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS() to populate field LoadBalancerProfile") + } + destination.LoadBalancerProfile = &loadBalancerProfile + } else { + destination.LoadBalancerProfile = nil + } + + // LoadBalancerSku + if profile.LoadBalancerSku != nil { + loadBalancerSku := string(*profile.LoadBalancerSku) + destination.LoadBalancerSku = &loadBalancerSku + } else { + destination.LoadBalancerSku = nil + } + + // NatGatewayProfile + if profile.NatGatewayProfile != nil { + var natGatewayProfile v20231001s.ManagedClusterNATGatewayProfile_STATUS + err := profile.NatGatewayProfile.AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(&natGatewayProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS() to populate field NatGatewayProfile") + } + destination.NatGatewayProfile = &natGatewayProfile + } else { + destination.NatGatewayProfile = nil + } + + // NetworkDataplane + if profile.NetworkDataplane != nil { + networkDataplane := string(*profile.NetworkDataplane) + destination.NetworkDataplane = &networkDataplane + } else { + destination.NetworkDataplane = nil + } + + // NetworkMode + if profile.NetworkMode != nil { + networkMode := string(*profile.NetworkMode) + destination.NetworkMode = &networkMode + } else { + destination.NetworkMode = nil + } + + // NetworkPlugin + if profile.NetworkPlugin != nil { + networkPlugin := string(*profile.NetworkPlugin) + destination.NetworkPlugin = &networkPlugin + } else { + destination.NetworkPlugin = nil + } + + // NetworkPluginMode + if profile.NetworkPluginMode != nil { + networkPluginMode := string(*profile.NetworkPluginMode) + destination.NetworkPluginMode = &networkPluginMode + } else { + destination.NetworkPluginMode = nil + } + + // NetworkPolicy + if profile.NetworkPolicy != nil { + networkPolicy := string(*profile.NetworkPolicy) + destination.NetworkPolicy = &networkPolicy + } else { + destination.NetworkPolicy = nil + } + + // OutboundType + if profile.OutboundType != nil { + outboundType := string(*profile.OutboundType) + destination.OutboundType = &outboundType + } else { + destination.OutboundType = nil + } + + // PodCidr + destination.PodCidr = genruntime.ClonePointerToString(profile.PodCidr) + + // PodCidrs + destination.PodCidrs = genruntime.CloneSliceOfString(profile.PodCidrs) + + // ServiceCidr + destination.ServiceCidr = genruntime.ClonePointerToString(profile.ServiceCidr) + + // ServiceCidrs + destination.ServiceCidrs = genruntime.CloneSliceOfString(profile.ServiceCidrs) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The complex type of the extended location. +type ExtendedLocation struct { + // Name: The name of the extended location. + Name *string `json:"name,omitempty"` + + // Type: The type of the extended location. + Type *ExtendedLocationType `json:"type,omitempty"` +} + +var _ genruntime.ARMTransformer = &ExtendedLocation{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (location *ExtendedLocation) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if location == nil { + return nil, nil + } + result := &ExtendedLocation_ARM{} + + // Set property "Name": + if location.Name != nil { + name := *location.Name + result.Name = &name + } + + // Set property "Type": + if location.Type != nil { + typeVar := *location.Type + result.Type = &typeVar + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (location *ExtendedLocation) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ExtendedLocation_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (location *ExtendedLocation) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ExtendedLocation_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ExtendedLocation_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + location.Name = &name + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + location.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_ExtendedLocation populates our ExtendedLocation from the provided source ExtendedLocation +func (location *ExtendedLocation) AssignProperties_From_ExtendedLocation(source *v20231001s.ExtendedLocation) error { + + // Name + location.Name = genruntime.ClonePointerToString(source.Name) + + // Type + if source.Type != nil { + typeVar := ExtendedLocationType(*source.Type) + location.Type = &typeVar + } else { + location.Type = nil + } + + // No error + return nil +} + +// AssignProperties_To_ExtendedLocation populates the provided destination ExtendedLocation from our ExtendedLocation +func (location *ExtendedLocation) AssignProperties_To_ExtendedLocation(destination *v20231001s.ExtendedLocation) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + destination.Name = genruntime.ClonePointerToString(location.Name) + + // Type + if location.Type != nil { + typeVar := string(*location.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ExtendedLocation_STATUS populates our ExtendedLocation from the provided source ExtendedLocation_STATUS +func (location *ExtendedLocation) Initialize_From_ExtendedLocation_STATUS(source *ExtendedLocation_STATUS) error { + + // Name + location.Name = genruntime.ClonePointerToString(source.Name) + + // Type + if source.Type != nil { + typeVar := ExtendedLocationType(*source.Type) + location.Type = &typeVar + } else { + location.Type = nil + } + + // No error + return nil +} + +// The complex type of the extended location. +type ExtendedLocation_STATUS struct { + // Name: The name of the extended location. + Name *string `json:"name,omitempty"` + + // Type: The type of the extended location. + Type *ExtendedLocationType_STATUS `json:"type,omitempty"` +} + +var _ genruntime.FromARMConverter = &ExtendedLocation_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (location *ExtendedLocation_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ExtendedLocation_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (location *ExtendedLocation_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ExtendedLocation_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ExtendedLocation_STATUS_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + location.Name = &name + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + location.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_ExtendedLocation_STATUS populates our ExtendedLocation_STATUS from the provided source ExtendedLocation_STATUS +func (location *ExtendedLocation_STATUS) AssignProperties_From_ExtendedLocation_STATUS(source *v20231001s.ExtendedLocation_STATUS) error { + + // Name + location.Name = genruntime.ClonePointerToString(source.Name) + + // Type + if source.Type != nil { + typeVar := ExtendedLocationType_STATUS(*source.Type) + location.Type = &typeVar + } else { + location.Type = nil + } + + // No error + return nil +} + +// AssignProperties_To_ExtendedLocation_STATUS populates the provided destination ExtendedLocation_STATUS from our ExtendedLocation_STATUS +func (location *ExtendedLocation_STATUS) AssignProperties_To_ExtendedLocation_STATUS(destination *v20231001s.ExtendedLocation_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + destination.Name = genruntime.ClonePointerToString(location.Name) + + // Type + if location.Type != nil { + typeVar := string(*location.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Different support tiers for AKS managed clusters +// +kubebuilder:validation:Enum={"AKSLongTermSupport","KubernetesOfficial"} +type KubernetesSupportPlan string + +const ( + KubernetesSupportPlan_AKSLongTermSupport = KubernetesSupportPlan("AKSLongTermSupport") + KubernetesSupportPlan_KubernetesOfficial = KubernetesSupportPlan("KubernetesOfficial") +) + +// Different support tiers for AKS managed clusters +type KubernetesSupportPlan_STATUS string + +const ( + KubernetesSupportPlan_STATUS_AKSLongTermSupport = KubernetesSupportPlan_STATUS("AKSLongTermSupport") + KubernetesSupportPlan_STATUS_KubernetesOfficial = KubernetesSupportPlan_STATUS("KubernetesOfficial") +) + +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile struct { + // AdminGroupObjectIDs: The list of AAD group object IDs that will have admin role of the cluster. + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + + // ClientAppID: (DEPRECATED) The client AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ClientAppID *string `json:"clientAppID,omitempty"` + + // EnableAzureRBAC: Whether to enable Azure RBAC for Kubernetes authorization. + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + + // Managed: Whether to enable managed AAD. + Managed *bool `json:"managed,omitempty"` + + // ServerAppID: (DEPRECATED) The server AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppID *string `json:"serverAppID,omitempty"` + + // ServerAppSecret: (DEPRECATED) The server AAD application secret. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + + // TenantID: The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment + // subscription. + TenantID *string `json:"tenantID,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAADProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAADProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAADProfile_ARM{} + + // Set property "AdminGroupObjectIDs": + for _, item := range profile.AdminGroupObjectIDs { + result.AdminGroupObjectIDs = append(result.AdminGroupObjectIDs, item) + } + + // Set property "ClientAppID": + if profile.ClientAppID != nil { + clientAppID := *profile.ClientAppID + result.ClientAppID = &clientAppID + } + + // Set property "EnableAzureRBAC": + if profile.EnableAzureRBAC != nil { + enableAzureRBAC := *profile.EnableAzureRBAC + result.EnableAzureRBAC = &enableAzureRBAC + } + + // Set property "Managed": + if profile.Managed != nil { + managed := *profile.Managed + result.Managed = &managed + } + + // Set property "ServerAppID": + if profile.ServerAppID != nil { + serverAppID := *profile.ServerAppID + result.ServerAppID = &serverAppID + } + + // Set property "ServerAppSecret": + if profile.ServerAppSecret != nil { + serverAppSecret := *profile.ServerAppSecret + result.ServerAppSecret = &serverAppSecret + } + + // Set property "TenantID": + if profile.TenantID != nil { + tenantID := *profile.TenantID + result.TenantID = &tenantID + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAADProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAADProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAADProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAADProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAADProfile_ARM, got %T", armInput) + } + + // Set property "AdminGroupObjectIDs": + for _, item := range typedInput.AdminGroupObjectIDs { + profile.AdminGroupObjectIDs = append(profile.AdminGroupObjectIDs, item) + } + + // Set property "ClientAppID": + if typedInput.ClientAppID != nil { + clientAppID := *typedInput.ClientAppID + profile.ClientAppID = &clientAppID + } + + // Set property "EnableAzureRBAC": + if typedInput.EnableAzureRBAC != nil { + enableAzureRBAC := *typedInput.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } + + // Set property "Managed": + if typedInput.Managed != nil { + managed := *typedInput.Managed + profile.Managed = &managed + } + + // Set property "ServerAppID": + if typedInput.ServerAppID != nil { + serverAppID := *typedInput.ServerAppID + profile.ServerAppID = &serverAppID + } + + // Set property "ServerAppSecret": + if typedInput.ServerAppSecret != nil { + serverAppSecret := *typedInput.ServerAppSecret + profile.ServerAppSecret = &serverAppSecret + } + + // Set property "TenantID": + if typedInput.TenantID != nil { + tenantID := *typedInput.TenantID + profile.TenantID = &tenantID + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAADProfile populates our ManagedClusterAADProfile from the provided source ManagedClusterAADProfile +func (profile *ManagedClusterAADProfile) AssignProperties_From_ManagedClusterAADProfile(source *v20231001s.ManagedClusterAADProfile) error { + + // AdminGroupObjectIDs + profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) + + // ClientAppID + profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) + + // EnableAzureRBAC + if source.EnableAzureRBAC != nil { + enableAzureRBAC := *source.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } else { + profile.EnableAzureRBAC = nil + } + + // Managed + if source.Managed != nil { + managed := *source.Managed + profile.Managed = &managed + } else { + profile.Managed = nil + } + + // ServerAppID + profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) + + // ServerAppSecret + profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) + + // TenantID + profile.TenantID = genruntime.ClonePointerToString(source.TenantID) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAADProfile populates the provided destination ManagedClusterAADProfile from our ManagedClusterAADProfile +func (profile *ManagedClusterAADProfile) AssignProperties_To_ManagedClusterAADProfile(destination *v20231001s.ManagedClusterAADProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminGroupObjectIDs + destination.AdminGroupObjectIDs = genruntime.CloneSliceOfString(profile.AdminGroupObjectIDs) + + // ClientAppID + destination.ClientAppID = genruntime.ClonePointerToString(profile.ClientAppID) + + // EnableAzureRBAC + if profile.EnableAzureRBAC != nil { + enableAzureRBAC := *profile.EnableAzureRBAC + destination.EnableAzureRBAC = &enableAzureRBAC + } else { + destination.EnableAzureRBAC = nil + } + + // Managed + if profile.Managed != nil { + managed := *profile.Managed + destination.Managed = &managed + } else { + destination.Managed = nil + } + + // ServerAppID + destination.ServerAppID = genruntime.ClonePointerToString(profile.ServerAppID) + + // ServerAppSecret + destination.ServerAppSecret = genruntime.ClonePointerToString(profile.ServerAppSecret) + + // TenantID + destination.TenantID = genruntime.ClonePointerToString(profile.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAADProfile_STATUS populates our ManagedClusterAADProfile from the provided source ManagedClusterAADProfile_STATUS +func (profile *ManagedClusterAADProfile) Initialize_From_ManagedClusterAADProfile_STATUS(source *ManagedClusterAADProfile_STATUS) error { + + // AdminGroupObjectIDs + profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) + + // ClientAppID + profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) + + // EnableAzureRBAC + if source.EnableAzureRBAC != nil { + enableAzureRBAC := *source.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } else { + profile.EnableAzureRBAC = nil + } + + // Managed + if source.Managed != nil { + managed := *source.Managed + profile.Managed = &managed + } else { + profile.Managed = nil + } + + // ServerAppID + profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) + + // ServerAppSecret + profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) + + // TenantID + profile.TenantID = genruntime.ClonePointerToString(source.TenantID) + + // No error + return nil +} + +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile_STATUS struct { + // AdminGroupObjectIDs: The list of AAD group object IDs that will have admin role of the cluster. + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + + // ClientAppID: (DEPRECATED) The client AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ClientAppID *string `json:"clientAppID,omitempty"` + + // EnableAzureRBAC: Whether to enable Azure RBAC for Kubernetes authorization. + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + + // Managed: Whether to enable managed AAD. + Managed *bool `json:"managed,omitempty"` + + // ServerAppID: (DEPRECATED) The server AAD application ID. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppID *string `json:"serverAppID,omitempty"` + + // ServerAppSecret: (DEPRECATED) The server AAD application secret. Learn more at https://aka.ms/aks/aad-legacy. + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + + // TenantID: The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment + // subscription. + TenantID *string `json:"tenantID,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAADProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAADProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAADProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAADProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAADProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAADProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AdminGroupObjectIDs": + for _, item := range typedInput.AdminGroupObjectIDs { + profile.AdminGroupObjectIDs = append(profile.AdminGroupObjectIDs, item) + } + + // Set property "ClientAppID": + if typedInput.ClientAppID != nil { + clientAppID := *typedInput.ClientAppID + profile.ClientAppID = &clientAppID + } + + // Set property "EnableAzureRBAC": + if typedInput.EnableAzureRBAC != nil { + enableAzureRBAC := *typedInput.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } + + // Set property "Managed": + if typedInput.Managed != nil { + managed := *typedInput.Managed + profile.Managed = &managed + } + + // Set property "ServerAppID": + if typedInput.ServerAppID != nil { + serverAppID := *typedInput.ServerAppID + profile.ServerAppID = &serverAppID + } + + // Set property "ServerAppSecret": + if typedInput.ServerAppSecret != nil { + serverAppSecret := *typedInput.ServerAppSecret + profile.ServerAppSecret = &serverAppSecret + } + + // Set property "TenantID": + if typedInput.TenantID != nil { + tenantID := *typedInput.TenantID + profile.TenantID = &tenantID + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAADProfile_STATUS populates our ManagedClusterAADProfile_STATUS from the provided source ManagedClusterAADProfile_STATUS +func (profile *ManagedClusterAADProfile_STATUS) AssignProperties_From_ManagedClusterAADProfile_STATUS(source *v20231001s.ManagedClusterAADProfile_STATUS) error { + + // AdminGroupObjectIDs + profile.AdminGroupObjectIDs = genruntime.CloneSliceOfString(source.AdminGroupObjectIDs) + + // ClientAppID + profile.ClientAppID = genruntime.ClonePointerToString(source.ClientAppID) + + // EnableAzureRBAC + if source.EnableAzureRBAC != nil { + enableAzureRBAC := *source.EnableAzureRBAC + profile.EnableAzureRBAC = &enableAzureRBAC + } else { + profile.EnableAzureRBAC = nil + } + + // Managed + if source.Managed != nil { + managed := *source.Managed + profile.Managed = &managed + } else { + profile.Managed = nil + } + + // ServerAppID + profile.ServerAppID = genruntime.ClonePointerToString(source.ServerAppID) + + // ServerAppSecret + profile.ServerAppSecret = genruntime.ClonePointerToString(source.ServerAppSecret) + + // TenantID + profile.TenantID = genruntime.ClonePointerToString(source.TenantID) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAADProfile_STATUS populates the provided destination ManagedClusterAADProfile_STATUS from our ManagedClusterAADProfile_STATUS +func (profile *ManagedClusterAADProfile_STATUS) AssignProperties_To_ManagedClusterAADProfile_STATUS(destination *v20231001s.ManagedClusterAADProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminGroupObjectIDs + destination.AdminGroupObjectIDs = genruntime.CloneSliceOfString(profile.AdminGroupObjectIDs) + + // ClientAppID + destination.ClientAppID = genruntime.ClonePointerToString(profile.ClientAppID) + + // EnableAzureRBAC + if profile.EnableAzureRBAC != nil { + enableAzureRBAC := *profile.EnableAzureRBAC + destination.EnableAzureRBAC = &enableAzureRBAC + } else { + destination.EnableAzureRBAC = nil + } + + // Managed + if profile.Managed != nil { + managed := *profile.Managed + destination.Managed = &managed + } else { + destination.Managed = nil + } + + // ServerAppID + destination.ServerAppID = genruntime.ClonePointerToString(profile.ServerAppID) + + // ServerAppSecret + destination.ServerAppSecret = genruntime.ClonePointerToString(profile.ServerAppSecret) + + // TenantID + destination.TenantID = genruntime.ClonePointerToString(profile.TenantID) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile struct { + // Config: Key-value pairs for configuring an add-on. + Config map[string]string `json:"config,omitempty"` + + // +kubebuilder:validation:Required + // Enabled: Whether the add-on is enabled or not. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAddonProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAddonProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAddonProfile_ARM{} + + // Set property "Config": + if profile.Config != nil { + result.Config = make(map[string]string, len(profile.Config)) + for key, value := range profile.Config { + result.Config[key] = value + } + } + + // Set property "Enabled": + if profile.Enabled != nil { + enabled := *profile.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAddonProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAddonProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAddonProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAddonProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAddonProfile_ARM, got %T", armInput) + } + + // Set property "Config": + if typedInput.Config != nil { + profile.Config = make(map[string]string, len(typedInput.Config)) + for key, value := range typedInput.Config { + profile.Config[key] = value + } + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAddonProfile populates our ManagedClusterAddonProfile from the provided source ManagedClusterAddonProfile +func (profile *ManagedClusterAddonProfile) AssignProperties_From_ManagedClusterAddonProfile(source *v20231001s.ManagedClusterAddonProfile) error { + + // Config + profile.Config = genruntime.CloneMapOfStringToString(source.Config) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAddonProfile populates the provided destination ManagedClusterAddonProfile from our ManagedClusterAddonProfile +func (profile *ManagedClusterAddonProfile) AssignProperties_To_ManagedClusterAddonProfile(destination *v20231001s.ManagedClusterAddonProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Config + destination.Config = genruntime.CloneMapOfStringToString(profile.Config) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAddonProfile_STATUS populates our ManagedClusterAddonProfile from the provided source ManagedClusterAddonProfile_STATUS +func (profile *ManagedClusterAddonProfile) Initialize_From_ManagedClusterAddonProfile_STATUS(source *ManagedClusterAddonProfile_STATUS) error { + + // Config + profile.Config = genruntime.CloneMapOfStringToString(source.Config) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // No error + return nil +} + +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile_STATUS struct { + // Config: Key-value pairs for configuring an add-on. + Config map[string]string `json:"config,omitempty"` + + // Enabled: Whether the add-on is enabled or not. + Enabled *bool `json:"enabled,omitempty"` + + // Identity: Information of user assigned identity used by this add-on. + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAddonProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAddonProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAddonProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAddonProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAddonProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAddonProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Config": + if typedInput.Config != nil { + profile.Config = make(map[string]string, len(typedInput.Config)) + for key, value := range typedInput.Config { + profile.Config[key] = value + } + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity1 UserAssignedIdentity_STATUS + err := identity1.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity := identity1 + profile.Identity = &identity + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAddonProfile_STATUS populates our ManagedClusterAddonProfile_STATUS from the provided source ManagedClusterAddonProfile_STATUS +func (profile *ManagedClusterAddonProfile_STATUS) AssignProperties_From_ManagedClusterAddonProfile_STATUS(source *v20231001s.ManagedClusterAddonProfile_STATUS) error { + + // Config + profile.Config = genruntime.CloneMapOfStringToString(source.Config) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // Identity + if source.Identity != nil { + var identity UserAssignedIdentity_STATUS + err := identity.AssignProperties_From_UserAssignedIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field Identity") + } + profile.Identity = &identity + } else { + profile.Identity = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAddonProfile_STATUS populates the provided destination ManagedClusterAddonProfile_STATUS from our ManagedClusterAddonProfile_STATUS +func (profile *ManagedClusterAddonProfile_STATUS) AssignProperties_To_ManagedClusterAddonProfile_STATUS(destination *v20231001s.ManagedClusterAddonProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Config + destination.Config = genruntime.CloneMapOfStringToString(profile.Config) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Identity + if profile.Identity != nil { + var identity v20231001s.UserAssignedIdentity_STATUS + err := profile.Identity.AssignProperties_To_UserAssignedIdentity_STATUS(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // CapacityReservationGroupReference: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupReference *genruntime.ResourceReference `armReference:"CapacityReservationGroupID" json:"capacityReservationGroupReference,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData `json:"creationData,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile `json:"gpuInstanceProfile,omitempty"` + + // HostGroupReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode `json:"mode,omitempty"` + + // +kubebuilder:validation:Required + // +kubebuilder:validation:Pattern="^[a-z][a-z0-9]{0,11}$" + // Name: Windows agent pool names must be 6 characters or less. + Name *string `json:"name,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile `json:"networkProfile,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints,omitempty"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *ContainerServiceOSDisk `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType `json:"osType,omitempty"` + + // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). + // This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState `json:"powerState,omitempty"` + + // ProximityPlacementGroupReference: The ID for Proximity Placement Group. + ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of Agent Pool. + Type *AgentPoolType `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is + // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAgentPoolProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAgentPoolProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAgentPoolProfile_ARM{} + + // Set property "AvailabilityZones": + for _, item := range profile.AvailabilityZones { + result.AvailabilityZones = append(result.AvailabilityZones, item) + } + + // Set property "CapacityReservationGroupID": + if profile.CapacityReservationGroupReference != nil { + capacityReservationGroupReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.CapacityReservationGroupReference) + if err != nil { + return nil, err + } + capacityReservationGroupReference := capacityReservationGroupReferenceARMID + result.CapacityReservationGroupID = &capacityReservationGroupReference + } + + // Set property "Count": + if profile.Count != nil { + count := *profile.Count + result.Count = &count + } + + // Set property "CreationData": + if profile.CreationData != nil { + creationData_ARM, err := (*profile.CreationData).ConvertToARM(resolved) + if err != nil { + return nil, err + } + creationData := *creationData_ARM.(*CreationData_ARM) + result.CreationData = &creationData + } + + // Set property "EnableAutoScaling": + if profile.EnableAutoScaling != nil { + enableAutoScaling := *profile.EnableAutoScaling + result.EnableAutoScaling = &enableAutoScaling + } + + // Set property "EnableEncryptionAtHost": + if profile.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *profile.EnableEncryptionAtHost + result.EnableEncryptionAtHost = &enableEncryptionAtHost + } + + // Set property "EnableFIPS": + if profile.EnableFIPS != nil { + enableFIPS := *profile.EnableFIPS + result.EnableFIPS = &enableFIPS + } + + // Set property "EnableNodePublicIP": + if profile.EnableNodePublicIP != nil { + enableNodePublicIP := *profile.EnableNodePublicIP + result.EnableNodePublicIP = &enableNodePublicIP + } + + // Set property "EnableUltraSSD": + if profile.EnableUltraSSD != nil { + enableUltraSSD := *profile.EnableUltraSSD + result.EnableUltraSSD = &enableUltraSSD + } + + // Set property "GpuInstanceProfile": + if profile.GpuInstanceProfile != nil { + gpuInstanceProfile := *profile.GpuInstanceProfile + result.GpuInstanceProfile = &gpuInstanceProfile + } + + // Set property "HostGroupID": + if profile.HostGroupReference != nil { + hostGroupReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.HostGroupReference) + if err != nil { + return nil, err + } + hostGroupReference := hostGroupReferenceARMID + result.HostGroupID = &hostGroupReference + } + + // Set property "KubeletConfig": + if profile.KubeletConfig != nil { + kubeletConfig_ARM, err := (*profile.KubeletConfig).ConvertToARM(resolved) + if err != nil { + return nil, err + } + kubeletConfig := *kubeletConfig_ARM.(*KubeletConfig_ARM) + result.KubeletConfig = &kubeletConfig + } + + // Set property "KubeletDiskType": + if profile.KubeletDiskType != nil { + kubeletDiskType := *profile.KubeletDiskType + result.KubeletDiskType = &kubeletDiskType + } + + // Set property "LinuxOSConfig": + if profile.LinuxOSConfig != nil { + linuxOSConfig_ARM, err := (*profile.LinuxOSConfig).ConvertToARM(resolved) + if err != nil { + return nil, err + } + linuxOSConfig := *linuxOSConfig_ARM.(*LinuxOSConfig_ARM) + result.LinuxOSConfig = &linuxOSConfig + } + + // Set property "MaxCount": + if profile.MaxCount != nil { + maxCount := *profile.MaxCount + result.MaxCount = &maxCount + } + + // Set property "MaxPods": + if profile.MaxPods != nil { + maxPods := *profile.MaxPods + result.MaxPods = &maxPods + } + + // Set property "MinCount": + if profile.MinCount != nil { + minCount := *profile.MinCount + result.MinCount = &minCount + } + + // Set property "Mode": + if profile.Mode != nil { + mode := *profile.Mode + result.Mode = &mode + } + + // Set property "Name": + if profile.Name != nil { + name := *profile.Name + result.Name = &name + } + + // Set property "NetworkProfile": + if profile.NetworkProfile != nil { + networkProfile_ARM, err := (*profile.NetworkProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + networkProfile := *networkProfile_ARM.(*AgentPoolNetworkProfile_ARM) + result.NetworkProfile = &networkProfile + } + + // Set property "NodeLabels": + if profile.NodeLabels != nil { + result.NodeLabels = make(map[string]string, len(profile.NodeLabels)) + for key, value := range profile.NodeLabels { + result.NodeLabels[key] = value + } + } else { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.NodeLabels = make(map[string]string) + } + + // Set property "NodePublicIPPrefixID": + if profile.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.NodePublicIPPrefixReference) + if err != nil { + return nil, err + } + nodePublicIPPrefixReference := nodePublicIPPrefixReferenceARMID + result.NodePublicIPPrefixID = &nodePublicIPPrefixReference + } + + // Set property "NodeTaints": + for _, item := range profile.NodeTaints { + result.NodeTaints = append(result.NodeTaints, item) + } + if result.NodeTaints == nil { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.NodeTaints = []string{} + } + + // Set property "OrchestratorVersion": + if profile.OrchestratorVersion != nil { + orchestratorVersion := *profile.OrchestratorVersion + result.OrchestratorVersion = &orchestratorVersion + } + + // Set property "OsDiskSizeGB": + if profile.OsDiskSizeGB != nil { + osDiskSizeGB := *profile.OsDiskSizeGB + result.OsDiskSizeGB = &osDiskSizeGB + } + + // Set property "OsDiskType": + if profile.OsDiskType != nil { + osDiskType := *profile.OsDiskType + result.OsDiskType = &osDiskType + } + + // Set property "OsSKU": + if profile.OsSKU != nil { + osSKU := *profile.OsSKU + result.OsSKU = &osSKU + } + + // Set property "OsType": + if profile.OsType != nil { + osType := *profile.OsType + result.OsType = &osType + } + + // Set property "PodSubnetID": + if profile.PodSubnetReference != nil { + podSubnetReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.PodSubnetReference) + if err != nil { + return nil, err + } + podSubnetReference := podSubnetReferenceARMID + result.PodSubnetID = &podSubnetReference + } + + // Set property "PowerState": + if profile.PowerState != nil { + powerState_ARM, err := (*profile.PowerState).ConvertToARM(resolved) + if err != nil { + return nil, err + } + powerState := *powerState_ARM.(*PowerState_ARM) + result.PowerState = &powerState + } + + // Set property "ProximityPlacementGroupID": + if profile.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.ProximityPlacementGroupReference) + if err != nil { + return nil, err + } + proximityPlacementGroupReference := proximityPlacementGroupReferenceARMID + result.ProximityPlacementGroupID = &proximityPlacementGroupReference + } + + // Set property "ScaleDownMode": + if profile.ScaleDownMode != nil { + scaleDownMode := *profile.ScaleDownMode + result.ScaleDownMode = &scaleDownMode + } + + // Set property "ScaleSetEvictionPolicy": + if profile.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *profile.ScaleSetEvictionPolicy + result.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + + // Set property "ScaleSetPriority": + if profile.ScaleSetPriority != nil { + scaleSetPriority := *profile.ScaleSetPriority + result.ScaleSetPriority = &scaleSetPriority + } + + // Set property "SpotMaxPrice": + if profile.SpotMaxPrice != nil { + spotMaxPrice := *profile.SpotMaxPrice + result.SpotMaxPrice = &spotMaxPrice + } + + // Set property "Tags": + if profile.Tags != nil { + result.Tags = make(map[string]string, len(profile.Tags)) + for key, value := range profile.Tags { + result.Tags[key] = value + } + } else { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.Tags = make(map[string]string) + } + + // Set property "Type": + if profile.Type != nil { + typeVar := *profile.Type + result.Type = &typeVar + } + + // Set property "UpgradeSettings": + if profile.UpgradeSettings != nil { + upgradeSettings_ARM, err := (*profile.UpgradeSettings).ConvertToARM(resolved) + if err != nil { + return nil, err + } + upgradeSettings := *upgradeSettings_ARM.(*AgentPoolUpgradeSettings_ARM) + result.UpgradeSettings = &upgradeSettings + } + + // Set property "VmSize": + if profile.VmSize != nil { + vmSize := *profile.VmSize + result.VmSize = &vmSize + } + + // Set property "VnetSubnetID": + if profile.VnetSubnetReference != nil { + vnetSubnetReferenceARMID, err := resolved.ResolvedReferences.Lookup(*profile.VnetSubnetReference) + if err != nil { + return nil, err + } + vnetSubnetReference := vnetSubnetReferenceARMID + result.VnetSubnetID = &vnetSubnetReference + } + + // Set property "WorkloadRuntime": + if profile.WorkloadRuntime != nil { + workloadRuntime := *profile.WorkloadRuntime + result.WorkloadRuntime = &workloadRuntime + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAgentPoolProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAgentPoolProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAgentPoolProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAgentPoolProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAgentPoolProfile_ARM, got %T", armInput) + } + + // Set property "AvailabilityZones": + for _, item := range typedInput.AvailabilityZones { + profile.AvailabilityZones = append(profile.AvailabilityZones, item) + } + + // no assignment for property "CapacityReservationGroupReference" + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + profile.Count = &count + } + + // Set property "CreationData": + if typedInput.CreationData != nil { + var creationData1 CreationData + err := creationData1.PopulateFromARM(owner, *typedInput.CreationData) + if err != nil { + return err + } + creationData := creationData1 + profile.CreationData = &creationData + } + + // Set property "EnableAutoScaling": + if typedInput.EnableAutoScaling != nil { + enableAutoScaling := *typedInput.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } + + // Set property "EnableEncryptionAtHost": + if typedInput.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *typedInput.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } + + // Set property "EnableFIPS": + if typedInput.EnableFIPS != nil { + enableFIPS := *typedInput.EnableFIPS + profile.EnableFIPS = &enableFIPS + } + + // Set property "EnableNodePublicIP": + if typedInput.EnableNodePublicIP != nil { + enableNodePublicIP := *typedInput.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } + + // Set property "EnableUltraSSD": + if typedInput.EnableUltraSSD != nil { + enableUltraSSD := *typedInput.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } + + // Set property "GpuInstanceProfile": + if typedInput.GpuInstanceProfile != nil { + gpuInstanceProfile := *typedInput.GpuInstanceProfile + profile.GpuInstanceProfile = &gpuInstanceProfile + } + + // no assignment for property "HostGroupReference" + + // Set property "KubeletConfig": + if typedInput.KubeletConfig != nil { + var kubeletConfig1 KubeletConfig + err := kubeletConfig1.PopulateFromARM(owner, *typedInput.KubeletConfig) + if err != nil { + return err + } + kubeletConfig := kubeletConfig1 + profile.KubeletConfig = &kubeletConfig + } + + // Set property "KubeletDiskType": + if typedInput.KubeletDiskType != nil { + kubeletDiskType := *typedInput.KubeletDiskType + profile.KubeletDiskType = &kubeletDiskType + } + + // Set property "LinuxOSConfig": + if typedInput.LinuxOSConfig != nil { + var linuxOSConfig1 LinuxOSConfig + err := linuxOSConfig1.PopulateFromARM(owner, *typedInput.LinuxOSConfig) + if err != nil { + return err + } + linuxOSConfig := linuxOSConfig1 + profile.LinuxOSConfig = &linuxOSConfig + } + + // Set property "MaxCount": + if typedInput.MaxCount != nil { + maxCount := *typedInput.MaxCount + profile.MaxCount = &maxCount + } + + // Set property "MaxPods": + if typedInput.MaxPods != nil { + maxPods := *typedInput.MaxPods + profile.MaxPods = &maxPods + } + + // Set property "MinCount": + if typedInput.MinCount != nil { + minCount := *typedInput.MinCount + profile.MinCount = &minCount + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + profile.Mode = &mode + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + profile.Name = &name + } + + // Set property "NetworkProfile": + if typedInput.NetworkProfile != nil { + var networkProfile1 AgentPoolNetworkProfile + err := networkProfile1.PopulateFromARM(owner, *typedInput.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + profile.NetworkProfile = &networkProfile + } + + // Set property "NodeLabels": + if typedInput.NodeLabels != nil { + profile.NodeLabels = make(map[string]string, len(typedInput.NodeLabels)) + for key, value := range typedInput.NodeLabels { + profile.NodeLabels[key] = value + } + } + + // no assignment for property "NodePublicIPPrefixReference" + + // Set property "NodeTaints": + for _, item := range typedInput.NodeTaints { + profile.NodeTaints = append(profile.NodeTaints, item) + } + + // Set property "OrchestratorVersion": + if typedInput.OrchestratorVersion != nil { + orchestratorVersion := *typedInput.OrchestratorVersion + profile.OrchestratorVersion = &orchestratorVersion + } + + // Set property "OsDiskSizeGB": + if typedInput.OsDiskSizeGB != nil { + osDiskSizeGB := *typedInput.OsDiskSizeGB + profile.OsDiskSizeGB = &osDiskSizeGB + } + + // Set property "OsDiskType": + if typedInput.OsDiskType != nil { + osDiskType := *typedInput.OsDiskType + profile.OsDiskType = &osDiskType + } + + // Set property "OsSKU": + if typedInput.OsSKU != nil { + osSKU := *typedInput.OsSKU + profile.OsSKU = &osSKU + } + + // Set property "OsType": + if typedInput.OsType != nil { + osType := *typedInput.OsType + profile.OsType = &osType + } + + // no assignment for property "PodSubnetReference" + + // Set property "PowerState": + if typedInput.PowerState != nil { + var powerState1 PowerState + err := powerState1.PopulateFromARM(owner, *typedInput.PowerState) + if err != nil { + return err + } + powerState := powerState1 + profile.PowerState = &powerState + } + + // no assignment for property "ProximityPlacementGroupReference" + + // Set property "ScaleDownMode": + if typedInput.ScaleDownMode != nil { + scaleDownMode := *typedInput.ScaleDownMode + profile.ScaleDownMode = &scaleDownMode + } + + // Set property "ScaleSetEvictionPolicy": + if typedInput.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *typedInput.ScaleSetEvictionPolicy + profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + + // Set property "ScaleSetPriority": + if typedInput.ScaleSetPriority != nil { + scaleSetPriority := *typedInput.ScaleSetPriority + profile.ScaleSetPriority = &scaleSetPriority + } + + // Set property "SpotMaxPrice": + if typedInput.SpotMaxPrice != nil { + spotMaxPrice := *typedInput.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } + + // Set property "Tags": + if typedInput.Tags != nil { + profile.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + profile.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + profile.Type = &typeVar + } + + // Set property "UpgradeSettings": + if typedInput.UpgradeSettings != nil { + var upgradeSettings1 AgentPoolUpgradeSettings + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + profile.UpgradeSettings = &upgradeSettings + } + + // Set property "VmSize": + if typedInput.VmSize != nil { + vmSize := *typedInput.VmSize + profile.VmSize = &vmSize + } + + // no assignment for property "VnetSubnetReference" + + // Set property "WorkloadRuntime": + if typedInput.WorkloadRuntime != nil { + workloadRuntime := *typedInput.WorkloadRuntime + profile.WorkloadRuntime = &workloadRuntime + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAgentPoolProfile populates our ManagedClusterAgentPoolProfile from the provided source ManagedClusterAgentPoolProfile +func (profile *ManagedClusterAgentPoolProfile) AssignProperties_From_ManagedClusterAgentPoolProfile(source *v20231001s.ManagedClusterAgentPoolProfile) error { + + // AvailabilityZones + profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // CapacityReservationGroupReference + if source.CapacityReservationGroupReference != nil { + capacityReservationGroupReference := source.CapacityReservationGroupReference.Copy() + profile.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + profile.CapacityReservationGroupReference = nil + } + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.AssignProperties_From_CreationData(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData() to populate field CreationData") + } + profile.CreationData = &creationDatum + } else { + profile.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } else { + profile.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + profile.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + profile.EnableFIPS = &enableFIPS + } else { + profile.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } else { + profile.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } else { + profile.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) + profile.GpuInstanceProfile = &gpuInstanceProfile + } else { + profile.GpuInstanceProfile = nil + } + + // HostGroupReference + if source.HostGroupReference != nil { + hostGroupReference := source.HostGroupReference.Copy() + profile.HostGroupReference = &hostGroupReference + } else { + profile.HostGroupReference = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.AssignProperties_From_KubeletConfig(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig() to populate field KubeletConfig") + } + profile.KubeletConfig = &kubeletConfig + } else { + profile.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) + profile.KubeletDiskType = &kubeletDiskType + } else { + profile.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig() to populate field LinuxOSConfig") + } + profile.LinuxOSConfig = &linuxOSConfig + } else { + profile.LinuxOSConfig = nil + } + + // MaxCount + profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // Name + if source.Name != nil { + name := *source.Name + profile.Name = &name + } else { + profile.Name = nil + } + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile + err := networkProfile.AssignProperties_From_AgentPoolNetworkProfile(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolNetworkProfile() to populate field NetworkProfile") + } + profile.NetworkProfile = &networkProfile + } else { + profile.NetworkProfile = nil + } + + // NodeLabels + profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixReference + if source.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := source.NodePublicIPPrefixReference.Copy() + profile.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + profile.NodePublicIPPrefixReference = nil + } + + // NodeTaints + profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + if source.OsDiskSizeGB != nil { + osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) + profile.OsDiskSizeGB = &osDiskSizeGB + } else { + profile.OsDiskSizeGB = nil + } + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType(*source.OsDiskType) + profile.OsDiskType = &osDiskType + } else { + profile.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU(*source.OsSKU) + profile.OsSKU = &osSKU + } else { + profile.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType(*source.OsType) + profile.OsType = &osType + } else { + profile.OsType = nil + } + + // PodSubnetReference + if source.PodSubnetReference != nil { + podSubnetReference := source.PodSubnetReference.Copy() + profile.PodSubnetReference = &podSubnetReference + } else { + profile.PodSubnetReference = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.AssignProperties_From_PowerState(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState() to populate field PowerState") + } + profile.PowerState = &powerState + } else { + profile.PowerState = nil + } + + // ProximityPlacementGroupReference + if source.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := source.ProximityPlacementGroupReference.Copy() + profile.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + profile.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode(*source.ScaleDownMode) + profile.ScaleDownMode = &scaleDownMode + } else { + profile.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) + profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + profile.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) + profile.ScaleSetPriority = &scaleSetPriority + } else { + profile.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } else { + profile.SpotMaxPrice = nil + } + + // Tags + profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + if source.Type != nil { + typeVar := AgentPoolType(*source.Type) + profile.Type = &typeVar + } else { + profile.Type = nil + } + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + profile.UpgradeSettings = &upgradeSetting + } else { + profile.UpgradeSettings = nil + } + + // VmSize + profile.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetReference + if source.VnetSubnetReference != nil { + vnetSubnetReference := source.VnetSubnetReference.Copy() + profile.VnetSubnetReference = &vnetSubnetReference + } else { + profile.VnetSubnetReference = nil + } + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) + profile.WorkloadRuntime = &workloadRuntime + } else { + profile.WorkloadRuntime = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAgentPoolProfile populates the provided destination ManagedClusterAgentPoolProfile from our ManagedClusterAgentPoolProfile +func (profile *ManagedClusterAgentPoolProfile) AssignProperties_To_ManagedClusterAgentPoolProfile(destination *v20231001s.ManagedClusterAgentPoolProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(profile.AvailabilityZones) + + // CapacityReservationGroupReference + if profile.CapacityReservationGroupReference != nil { + capacityReservationGroupReference := profile.CapacityReservationGroupReference.Copy() + destination.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + destination.CapacityReservationGroupReference = nil + } + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // CreationData + if profile.CreationData != nil { + var creationDatum v20231001s.CreationData + err := profile.CreationData.AssignProperties_To_CreationData(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // EnableAutoScaling + if profile.EnableAutoScaling != nil { + enableAutoScaling := *profile.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if profile.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *profile.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if profile.EnableFIPS != nil { + enableFIPS := *profile.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if profile.EnableNodePublicIP != nil { + enableNodePublicIP := *profile.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if profile.EnableUltraSSD != nil { + enableUltraSSD := *profile.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if profile.GpuInstanceProfile != nil { + gpuInstanceProfile := string(*profile.GpuInstanceProfile) + destination.GpuInstanceProfile = &gpuInstanceProfile + } else { + destination.GpuInstanceProfile = nil + } + + // HostGroupReference + if profile.HostGroupReference != nil { + hostGroupReference := profile.HostGroupReference.Copy() + destination.HostGroupReference = &hostGroupReference + } else { + destination.HostGroupReference = nil + } + + // KubeletConfig + if profile.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig + err := profile.KubeletConfig.AssignProperties_To_KubeletConfig(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + if profile.KubeletDiskType != nil { + kubeletDiskType := string(*profile.KubeletDiskType) + destination.KubeletDiskType = &kubeletDiskType + } else { + destination.KubeletDiskType = nil + } + + // LinuxOSConfig + if profile.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig + err := profile.LinuxOSConfig.AssignProperties_To_LinuxOSConfig(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(profile.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(profile.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(profile.MinCount) + + // Mode + if profile.Mode != nil { + mode := string(*profile.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Name + if profile.Name != nil { + name := *profile.Name + destination.Name = &name + } else { + destination.Name = nil + } + + // NetworkProfile + if profile.NetworkProfile != nil { + var networkProfile v20231001s.AgentPoolNetworkProfile + err := profile.NetworkProfile.AssignProperties_To_AgentPoolNetworkProfile(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolNetworkProfile() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(profile.NodeLabels) + + // NodePublicIPPrefixReference + if profile.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := profile.NodePublicIPPrefixReference.Copy() + destination.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + destination.NodePublicIPPrefixReference = nil + } + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(profile.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(profile.OrchestratorVersion) + + // OsDiskSizeGB + if profile.OsDiskSizeGB != nil { + osDiskSizeGB := int(*profile.OsDiskSizeGB) + destination.OsDiskSizeGB = &osDiskSizeGB + } else { + destination.OsDiskSizeGB = nil + } + + // OsDiskType + if profile.OsDiskType != nil { + osDiskType := string(*profile.OsDiskType) + destination.OsDiskType = &osDiskType + } else { + destination.OsDiskType = nil + } + + // OsSKU + if profile.OsSKU != nil { + osSKU := string(*profile.OsSKU) + destination.OsSKU = &osSKU + } else { + destination.OsSKU = nil + } + + // OsType + if profile.OsType != nil { + osType := string(*profile.OsType) + destination.OsType = &osType + } else { + destination.OsType = nil + } + + // PodSubnetReference + if profile.PodSubnetReference != nil { + podSubnetReference := profile.PodSubnetReference.Copy() + destination.PodSubnetReference = &podSubnetReference + } else { + destination.PodSubnetReference = nil + } + + // PowerState + if profile.PowerState != nil { + var powerState v20231001s.PowerState + err := profile.PowerState.AssignProperties_To_PowerState(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProximityPlacementGroupReference + if profile.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := profile.ProximityPlacementGroupReference.Copy() + destination.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + destination.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + if profile.ScaleDownMode != nil { + scaleDownMode := string(*profile.ScaleDownMode) + destination.ScaleDownMode = &scaleDownMode + } else { + destination.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if profile.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := string(*profile.ScaleSetEvictionPolicy) + destination.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + destination.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if profile.ScaleSetPriority != nil { + scaleSetPriority := string(*profile.ScaleSetPriority) + destination.ScaleSetPriority = &scaleSetPriority + } else { + destination.ScaleSetPriority = nil + } + + // SpotMaxPrice + if profile.SpotMaxPrice != nil { + spotMaxPrice := *profile.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(profile.Tags) + + // Type + if profile.Type != nil { + typeVar := string(*profile.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UpgradeSettings + if profile.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings + err := profile.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(profile.VmSize) + + // VnetSubnetReference + if profile.VnetSubnetReference != nil { + vnetSubnetReference := profile.VnetSubnetReference.Copy() + destination.VnetSubnetReference = &vnetSubnetReference + } else { + destination.VnetSubnetReference = nil + } + + // WorkloadRuntime + if profile.WorkloadRuntime != nil { + workloadRuntime := string(*profile.WorkloadRuntime) + destination.WorkloadRuntime = &workloadRuntime + } else { + destination.WorkloadRuntime = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAgentPoolProfile_STATUS populates our ManagedClusterAgentPoolProfile from the provided source ManagedClusterAgentPoolProfile_STATUS +func (profile *ManagedClusterAgentPoolProfile) Initialize_From_ManagedClusterAgentPoolProfile_STATUS(source *ManagedClusterAgentPoolProfile_STATUS) error { + + // AvailabilityZones + profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.Initialize_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_CreationData_STATUS() to populate field CreationData") + } + profile.CreationData = &creationDatum + } else { + profile.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } else { + profile.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + profile.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + profile.EnableFIPS = &enableFIPS + } else { + profile.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } else { + profile.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } else { + profile.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) + profile.GpuInstanceProfile = &gpuInstanceProfile + } else { + profile.GpuInstanceProfile = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.Initialize_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + profile.KubeletConfig = &kubeletConfig + } else { + profile.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) + profile.KubeletDiskType = &kubeletDiskType + } else { + profile.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.Initialize_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + profile.LinuxOSConfig = &linuxOSConfig + } else { + profile.LinuxOSConfig = nil + } + + // MaxCount + profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // Name + if source.Name != nil { + name := *source.Name + profile.Name = &name + } else { + profile.Name = nil + } + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile + err := networkProfile.Initialize_From_AgentPoolNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + profile.NetworkProfile = &networkProfile + } else { + profile.NetworkProfile = nil + } + + // NodeLabels + profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodeTaints + profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + if source.OsDiskSizeGB != nil { + osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) + profile.OsDiskSizeGB = &osDiskSizeGB + } else { + profile.OsDiskSizeGB = nil + } + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType(*source.OsDiskType) + profile.OsDiskType = &osDiskType + } else { + profile.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU(*source.OsSKU) + profile.OsSKU = &osSKU + } else { + profile.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType(*source.OsType) + profile.OsType = &osType + } else { + profile.OsType = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.Initialize_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PowerState_STATUS() to populate field PowerState") + } + profile.PowerState = &powerState + } else { + profile.PowerState = nil + } + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode(*source.ScaleDownMode) + profile.ScaleDownMode = &scaleDownMode + } else { + profile.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) + profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + profile.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) + profile.ScaleSetPriority = &scaleSetPriority + } else { + profile.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } else { + profile.SpotMaxPrice = nil + } + + // Tags + profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + if source.Type != nil { + typeVar := AgentPoolType(*source.Type) + profile.Type = &typeVar + } else { + profile.Type = nil + } + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.Initialize_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + profile.UpgradeSettings = &upgradeSetting + } else { + profile.UpgradeSettings = nil + } + + // VmSize + profile.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) + profile.WorkloadRuntime = &workloadRuntime + } else { + profile.WorkloadRuntime = nil + } + + // No error + return nil +} + +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile_STATUS struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // CapacityReservationGroupID: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_STATUS `json:"creationData,omitempty"` + + // CurrentOrchestratorVersion: If orchestratorVersion is a fully specified version , this field will be + // exactly equal to it. If orchestratorVersion is , this field will contain the full + // version being used. + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile_STATUS `json:"gpuInstanceProfile,omitempty"` + + // HostGroupID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupID *string `json:"hostGroupID,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType_STATUS `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode_STATUS `json:"mode,omitempty"` + + // Name: Windows agent pool names must be 6 characters or less. + Name *string `json:"name,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_STATUS `json:"networkProfile,omitempty"` + + // NodeImageVersion: The version of node image + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints,omitempty"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType_STATUS `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU_STATUS `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType_STATUS `json:"osType,omitempty"` + + // PodSubnetID: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is + // of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + + // ProvisioningState: The current deployment or provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // ProximityPlacementGroupID: The ID for Proximity Placement Group. + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode_STATUS `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy_STATUS `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority_STATUS `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of Agent Pool. + Type *AgentPoolType_STATUS `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetID: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, + // this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime_STATUS `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAgentPoolProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAgentPoolProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAgentPoolProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAgentPoolProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAgentPoolProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAgentPoolProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AvailabilityZones": + for _, item := range typedInput.AvailabilityZones { + profile.AvailabilityZones = append(profile.AvailabilityZones, item) + } + + // Set property "CapacityReservationGroupID": + if typedInput.CapacityReservationGroupID != nil { + capacityReservationGroupID := *typedInput.CapacityReservationGroupID + profile.CapacityReservationGroupID = &capacityReservationGroupID + } + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + profile.Count = &count + } + + // Set property "CreationData": + if typedInput.CreationData != nil { + var creationData1 CreationData_STATUS + err := creationData1.PopulateFromARM(owner, *typedInput.CreationData) + if err != nil { + return err + } + creationData := creationData1 + profile.CreationData = &creationData + } + + // Set property "CurrentOrchestratorVersion": + if typedInput.CurrentOrchestratorVersion != nil { + currentOrchestratorVersion := *typedInput.CurrentOrchestratorVersion + profile.CurrentOrchestratorVersion = ¤tOrchestratorVersion + } + + // Set property "EnableAutoScaling": + if typedInput.EnableAutoScaling != nil { + enableAutoScaling := *typedInput.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } + + // Set property "EnableEncryptionAtHost": + if typedInput.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *typedInput.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } + + // Set property "EnableFIPS": + if typedInput.EnableFIPS != nil { + enableFIPS := *typedInput.EnableFIPS + profile.EnableFIPS = &enableFIPS + } + + // Set property "EnableNodePublicIP": + if typedInput.EnableNodePublicIP != nil { + enableNodePublicIP := *typedInput.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } + + // Set property "EnableUltraSSD": + if typedInput.EnableUltraSSD != nil { + enableUltraSSD := *typedInput.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } + + // Set property "GpuInstanceProfile": + if typedInput.GpuInstanceProfile != nil { + gpuInstanceProfile := *typedInput.GpuInstanceProfile + profile.GpuInstanceProfile = &gpuInstanceProfile + } + + // Set property "HostGroupID": + if typedInput.HostGroupID != nil { + hostGroupID := *typedInput.HostGroupID + profile.HostGroupID = &hostGroupID + } + + // Set property "KubeletConfig": + if typedInput.KubeletConfig != nil { + var kubeletConfig1 KubeletConfig_STATUS + err := kubeletConfig1.PopulateFromARM(owner, *typedInput.KubeletConfig) + if err != nil { + return err + } + kubeletConfig := kubeletConfig1 + profile.KubeletConfig = &kubeletConfig + } + + // Set property "KubeletDiskType": + if typedInput.KubeletDiskType != nil { + kubeletDiskType := *typedInput.KubeletDiskType + profile.KubeletDiskType = &kubeletDiskType + } + + // Set property "LinuxOSConfig": + if typedInput.LinuxOSConfig != nil { + var linuxOSConfig1 LinuxOSConfig_STATUS + err := linuxOSConfig1.PopulateFromARM(owner, *typedInput.LinuxOSConfig) + if err != nil { + return err + } + linuxOSConfig := linuxOSConfig1 + profile.LinuxOSConfig = &linuxOSConfig + } + + // Set property "MaxCount": + if typedInput.MaxCount != nil { + maxCount := *typedInput.MaxCount + profile.MaxCount = &maxCount + } + + // Set property "MaxPods": + if typedInput.MaxPods != nil { + maxPods := *typedInput.MaxPods + profile.MaxPods = &maxPods + } + + // Set property "MinCount": + if typedInput.MinCount != nil { + minCount := *typedInput.MinCount + profile.MinCount = &minCount + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + profile.Mode = &mode + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + profile.Name = &name + } + + // Set property "NetworkProfile": + if typedInput.NetworkProfile != nil { + var networkProfile1 AgentPoolNetworkProfile_STATUS + err := networkProfile1.PopulateFromARM(owner, *typedInput.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + profile.NetworkProfile = &networkProfile + } + + // Set property "NodeImageVersion": + if typedInput.NodeImageVersion != nil { + nodeImageVersion := *typedInput.NodeImageVersion + profile.NodeImageVersion = &nodeImageVersion + } + + // Set property "NodeLabels": + if typedInput.NodeLabels != nil { + profile.NodeLabels = make(map[string]string, len(typedInput.NodeLabels)) + for key, value := range typedInput.NodeLabels { + profile.NodeLabels[key] = value + } + } + + // Set property "NodePublicIPPrefixID": + if typedInput.NodePublicIPPrefixID != nil { + nodePublicIPPrefixID := *typedInput.NodePublicIPPrefixID + profile.NodePublicIPPrefixID = &nodePublicIPPrefixID + } + + // Set property "NodeTaints": + for _, item := range typedInput.NodeTaints { + profile.NodeTaints = append(profile.NodeTaints, item) + } + + // Set property "OrchestratorVersion": + if typedInput.OrchestratorVersion != nil { + orchestratorVersion := *typedInput.OrchestratorVersion + profile.OrchestratorVersion = &orchestratorVersion + } + + // Set property "OsDiskSizeGB": + if typedInput.OsDiskSizeGB != nil { + osDiskSizeGB := *typedInput.OsDiskSizeGB + profile.OsDiskSizeGB = &osDiskSizeGB + } + + // Set property "OsDiskType": + if typedInput.OsDiskType != nil { + osDiskType := *typedInput.OsDiskType + profile.OsDiskType = &osDiskType + } + + // Set property "OsSKU": + if typedInput.OsSKU != nil { + osSKU := *typedInput.OsSKU + profile.OsSKU = &osSKU + } + + // Set property "OsType": + if typedInput.OsType != nil { + osType := *typedInput.OsType + profile.OsType = &osType + } + + // Set property "PodSubnetID": + if typedInput.PodSubnetID != nil { + podSubnetID := *typedInput.PodSubnetID + profile.PodSubnetID = &podSubnetID + } + + // Set property "PowerState": + if typedInput.PowerState != nil { + var powerState1 PowerState_STATUS + err := powerState1.PopulateFromARM(owner, *typedInput.PowerState) + if err != nil { + return err + } + powerState := powerState1 + profile.PowerState = &powerState + } + + // Set property "ProvisioningState": + if typedInput.ProvisioningState != nil { + provisioningState := *typedInput.ProvisioningState + profile.ProvisioningState = &provisioningState + } + + // Set property "ProximityPlacementGroupID": + if typedInput.ProximityPlacementGroupID != nil { + proximityPlacementGroupID := *typedInput.ProximityPlacementGroupID + profile.ProximityPlacementGroupID = &proximityPlacementGroupID + } + + // Set property "ScaleDownMode": + if typedInput.ScaleDownMode != nil { + scaleDownMode := *typedInput.ScaleDownMode + profile.ScaleDownMode = &scaleDownMode + } + + // Set property "ScaleSetEvictionPolicy": + if typedInput.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *typedInput.ScaleSetEvictionPolicy + profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + + // Set property "ScaleSetPriority": + if typedInput.ScaleSetPriority != nil { + scaleSetPriority := *typedInput.ScaleSetPriority + profile.ScaleSetPriority = &scaleSetPriority + } + + // Set property "SpotMaxPrice": + if typedInput.SpotMaxPrice != nil { + spotMaxPrice := *typedInput.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } + + // Set property "Tags": + if typedInput.Tags != nil { + profile.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + profile.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + profile.Type = &typeVar + } + + // Set property "UpgradeSettings": + if typedInput.UpgradeSettings != nil { + var upgradeSettings1 AgentPoolUpgradeSettings_STATUS + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + profile.UpgradeSettings = &upgradeSettings + } + + // Set property "VmSize": + if typedInput.VmSize != nil { + vmSize := *typedInput.VmSize + profile.VmSize = &vmSize + } + + // Set property "VnetSubnetID": + if typedInput.VnetSubnetID != nil { + vnetSubnetID := *typedInput.VnetSubnetID + profile.VnetSubnetID = &vnetSubnetID + } + + // Set property "WorkloadRuntime": + if typedInput.WorkloadRuntime != nil { + workloadRuntime := *typedInput.WorkloadRuntime + profile.WorkloadRuntime = &workloadRuntime + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS populates our ManagedClusterAgentPoolProfile_STATUS from the provided source ManagedClusterAgentPoolProfile_STATUS +func (profile *ManagedClusterAgentPoolProfile_STATUS) AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(source *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error { + + // AvailabilityZones + profile.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // CapacityReservationGroupID + profile.CapacityReservationGroupID = genruntime.ClonePointerToString(source.CapacityReservationGroupID) + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData_STATUS + err := creationDatum.AssignProperties_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData_STATUS() to populate field CreationData") + } + profile.CreationData = &creationDatum + } else { + profile.CreationData = nil + } + + // CurrentOrchestratorVersion + profile.CurrentOrchestratorVersion = genruntime.ClonePointerToString(source.CurrentOrchestratorVersion) + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + profile.EnableAutoScaling = &enableAutoScaling + } else { + profile.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + profile.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + profile.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + profile.EnableFIPS = &enableFIPS + } else { + profile.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + profile.EnableNodePublicIP = &enableNodePublicIP + } else { + profile.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + profile.EnableUltraSSD = &enableUltraSSD + } else { + profile.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile_STATUS(*source.GpuInstanceProfile) + profile.GpuInstanceProfile = &gpuInstanceProfile + } else { + profile.GpuInstanceProfile = nil + } + + // HostGroupID + profile.HostGroupID = genruntime.ClonePointerToString(source.HostGroupID) + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig_STATUS + err := kubeletConfig.AssignProperties_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + profile.KubeletConfig = &kubeletConfig + } else { + profile.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType_STATUS(*source.KubeletDiskType) + profile.KubeletDiskType = &kubeletDiskType + } else { + profile.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig_STATUS + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + profile.LinuxOSConfig = &linuxOSConfig + } else { + profile.LinuxOSConfig = nil + } + + // MaxCount + profile.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + profile.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + profile.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode_STATUS(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // Name + profile.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile_STATUS + err := networkProfile.AssignProperties_From_AgentPoolNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + profile.NetworkProfile = &networkProfile + } else { + profile.NetworkProfile = nil + } + + // NodeImageVersion + profile.NodeImageVersion = genruntime.ClonePointerToString(source.NodeImageVersion) + + // NodeLabels + profile.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixID + profile.NodePublicIPPrefixID = genruntime.ClonePointerToString(source.NodePublicIPPrefixID) + + // NodeTaints + profile.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + profile.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + profile.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType_STATUS(*source.OsDiskType) + profile.OsDiskType = &osDiskType + } else { + profile.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU_STATUS(*source.OsSKU) + profile.OsSKU = &osSKU + } else { + profile.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType_STATUS(*source.OsType) + profile.OsType = &osType + } else { + profile.OsType = nil + } + + // PodSubnetID + profile.PodSubnetID = genruntime.ClonePointerToString(source.PodSubnetID) + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + profile.PowerState = &powerState + } else { + profile.PowerState = nil + } + + // ProvisioningState + profile.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // ProximityPlacementGroupID + profile.ProximityPlacementGroupID = genruntime.ClonePointerToString(source.ProximityPlacementGroupID) + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode_STATUS(*source.ScaleDownMode) + profile.ScaleDownMode = &scaleDownMode + } else { + profile.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy_STATUS(*source.ScaleSetEvictionPolicy) + profile.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + profile.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority_STATUS(*source.ScaleSetPriority) + profile.ScaleSetPriority = &scaleSetPriority + } else { + profile.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + profile.SpotMaxPrice = &spotMaxPrice + } else { + profile.SpotMaxPrice = nil + } + + // Tags + profile.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + if source.Type != nil { + typeVar := AgentPoolType_STATUS(*source.Type) + profile.Type = &typeVar + } else { + profile.Type = nil + } + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + profile.UpgradeSettings = &upgradeSetting + } else { + profile.UpgradeSettings = nil + } + + // VmSize + profile.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetID + profile.VnetSubnetID = genruntime.ClonePointerToString(source.VnetSubnetID) + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime_STATUS(*source.WorkloadRuntime) + profile.WorkloadRuntime = &workloadRuntime + } else { + profile.WorkloadRuntime = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS populates the provided destination ManagedClusterAgentPoolProfile_STATUS from our ManagedClusterAgentPoolProfile_STATUS +func (profile *ManagedClusterAgentPoolProfile_STATUS) AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(destination *v20231001s.ManagedClusterAgentPoolProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(profile.AvailabilityZones) + + // CapacityReservationGroupID + destination.CapacityReservationGroupID = genruntime.ClonePointerToString(profile.CapacityReservationGroupID) + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // CreationData + if profile.CreationData != nil { + var creationDatum v20231001s.CreationData_STATUS + err := profile.CreationData.AssignProperties_To_CreationData_STATUS(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData_STATUS() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // CurrentOrchestratorVersion + destination.CurrentOrchestratorVersion = genruntime.ClonePointerToString(profile.CurrentOrchestratorVersion) + + // EnableAutoScaling + if profile.EnableAutoScaling != nil { + enableAutoScaling := *profile.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if profile.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *profile.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if profile.EnableFIPS != nil { + enableFIPS := *profile.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if profile.EnableNodePublicIP != nil { + enableNodePublicIP := *profile.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if profile.EnableUltraSSD != nil { + enableUltraSSD := *profile.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if profile.GpuInstanceProfile != nil { + gpuInstanceProfile := string(*profile.GpuInstanceProfile) + destination.GpuInstanceProfile = &gpuInstanceProfile + } else { + destination.GpuInstanceProfile = nil + } + + // HostGroupID + destination.HostGroupID = genruntime.ClonePointerToString(profile.HostGroupID) + + // KubeletConfig + if profile.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig_STATUS + err := profile.KubeletConfig.AssignProperties_To_KubeletConfig_STATUS(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig_STATUS() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + if profile.KubeletDiskType != nil { + kubeletDiskType := string(*profile.KubeletDiskType) + destination.KubeletDiskType = &kubeletDiskType + } else { + destination.KubeletDiskType = nil + } + + // LinuxOSConfig + if profile.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig_STATUS + err := profile.LinuxOSConfig.AssignProperties_To_LinuxOSConfig_STATUS(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(profile.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(profile.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(profile.MinCount) + + // Mode + if profile.Mode != nil { + mode := string(*profile.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(profile.Name) + + // NetworkProfile + if profile.NetworkProfile != nil { + var networkProfile v20231001s.AgentPoolNetworkProfile_STATUS + err := profile.NetworkProfile.AssignProperties_To_AgentPoolNetworkProfile_STATUS(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeImageVersion + destination.NodeImageVersion = genruntime.ClonePointerToString(profile.NodeImageVersion) + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(profile.NodeLabels) + + // NodePublicIPPrefixID + destination.NodePublicIPPrefixID = genruntime.ClonePointerToString(profile.NodePublicIPPrefixID) + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(profile.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(profile.OrchestratorVersion) + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(profile.OsDiskSizeGB) + + // OsDiskType + if profile.OsDiskType != nil { + osDiskType := string(*profile.OsDiskType) + destination.OsDiskType = &osDiskType + } else { + destination.OsDiskType = nil + } + + // OsSKU + if profile.OsSKU != nil { + osSKU := string(*profile.OsSKU) + destination.OsSKU = &osSKU + } else { + destination.OsSKU = nil + } + + // OsType + if profile.OsType != nil { + osType := string(*profile.OsType) + destination.OsType = &osType + } else { + destination.OsType = nil + } + + // PodSubnetID + destination.PodSubnetID = genruntime.ClonePointerToString(profile.PodSubnetID) + + // PowerState + if profile.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := profile.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(profile.ProvisioningState) + + // ProximityPlacementGroupID + destination.ProximityPlacementGroupID = genruntime.ClonePointerToString(profile.ProximityPlacementGroupID) + + // ScaleDownMode + if profile.ScaleDownMode != nil { + scaleDownMode := string(*profile.ScaleDownMode) + destination.ScaleDownMode = &scaleDownMode + } else { + destination.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if profile.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := string(*profile.ScaleSetEvictionPolicy) + destination.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + destination.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if profile.ScaleSetPriority != nil { + scaleSetPriority := string(*profile.ScaleSetPriority) + destination.ScaleSetPriority = &scaleSetPriority + } else { + destination.ScaleSetPriority = nil + } + + // SpotMaxPrice + if profile.SpotMaxPrice != nil { + spotMaxPrice := *profile.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(profile.Tags) + + // Type + if profile.Type != nil { + typeVar := string(*profile.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UpgradeSettings + if profile.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings_STATUS + err := profile.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(profile.VmSize) + + // VnetSubnetID + destination.VnetSubnetID = genruntime.ClonePointerToString(profile.VnetSubnetID) + + // WorkloadRuntime + if profile.WorkloadRuntime != nil { + workloadRuntime := string(*profile.WorkloadRuntime) + destination.WorkloadRuntime = &workloadRuntime + } else { + destination.WorkloadRuntime = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile struct { + // AuthorizedIPRanges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with + // clusters that use Public IP Per Node, or clusters that are using a Basic Load Balancer. For more information see [API + // server authorized IP ranges](https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges). + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + + // DisableRunCommand: Whether to disable run command for the cluster or not. + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + + // EnablePrivateCluster: For more details, see [Creating a private AKS + // cluster](https://docs.microsoft.com/azure/aks/private-clusters). + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + + // EnablePrivateClusterPublicFQDN: Whether to create additional public FQDN for private cluster or not. + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + + // PrivateDNSZone: The default is System. For more details see [configure private DNS + // zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone). Allowed values are 'system' and + // 'none'. + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAPIServerAccessProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAPIServerAccessProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAPIServerAccessProfile_ARM{} + + // Set property "AuthorizedIPRanges": + for _, item := range profile.AuthorizedIPRanges { + result.AuthorizedIPRanges = append(result.AuthorizedIPRanges, item) + } + + // Set property "DisableRunCommand": + if profile.DisableRunCommand != nil { + disableRunCommand := *profile.DisableRunCommand + result.DisableRunCommand = &disableRunCommand + } + + // Set property "EnablePrivateCluster": + if profile.EnablePrivateCluster != nil { + enablePrivateCluster := *profile.EnablePrivateCluster + result.EnablePrivateCluster = &enablePrivateCluster + } + + // Set property "EnablePrivateClusterPublicFQDN": + if profile.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *profile.EnablePrivateClusterPublicFQDN + result.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } + + // Set property "PrivateDNSZone": + if profile.PrivateDNSZone != nil { + privateDNSZone := *profile.PrivateDNSZone + result.PrivateDNSZone = &privateDNSZone + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAPIServerAccessProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAPIServerAccessProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAPIServerAccessProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAPIServerAccessProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAPIServerAccessProfile_ARM, got %T", armInput) + } + + // Set property "AuthorizedIPRanges": + for _, item := range typedInput.AuthorizedIPRanges { + profile.AuthorizedIPRanges = append(profile.AuthorizedIPRanges, item) + } + + // Set property "DisableRunCommand": + if typedInput.DisableRunCommand != nil { + disableRunCommand := *typedInput.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } + + // Set property "EnablePrivateCluster": + if typedInput.EnablePrivateCluster != nil { + enablePrivateCluster := *typedInput.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } + + // Set property "EnablePrivateClusterPublicFQDN": + if typedInput.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *typedInput.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } + + // Set property "PrivateDNSZone": + if typedInput.PrivateDNSZone != nil { + privateDNSZone := *typedInput.PrivateDNSZone + profile.PrivateDNSZone = &privateDNSZone + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAPIServerAccessProfile populates our ManagedClusterAPIServerAccessProfile from the provided source ManagedClusterAPIServerAccessProfile +func (profile *ManagedClusterAPIServerAccessProfile) AssignProperties_From_ManagedClusterAPIServerAccessProfile(source *v20231001s.ManagedClusterAPIServerAccessProfile) error { + + // AuthorizedIPRanges + profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) + + // DisableRunCommand + if source.DisableRunCommand != nil { + disableRunCommand := *source.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } else { + profile.DisableRunCommand = nil + } + + // EnablePrivateCluster + if source.EnablePrivateCluster != nil { + enablePrivateCluster := *source.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } else { + profile.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if source.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + profile.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAPIServerAccessProfile populates the provided destination ManagedClusterAPIServerAccessProfile from our ManagedClusterAPIServerAccessProfile +func (profile *ManagedClusterAPIServerAccessProfile) AssignProperties_To_ManagedClusterAPIServerAccessProfile(destination *v20231001s.ManagedClusterAPIServerAccessProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AuthorizedIPRanges + destination.AuthorizedIPRanges = genruntime.CloneSliceOfString(profile.AuthorizedIPRanges) + + // DisableRunCommand + if profile.DisableRunCommand != nil { + disableRunCommand := *profile.DisableRunCommand + destination.DisableRunCommand = &disableRunCommand + } else { + destination.DisableRunCommand = nil + } + + // EnablePrivateCluster + if profile.EnablePrivateCluster != nil { + enablePrivateCluster := *profile.EnablePrivateCluster + destination.EnablePrivateCluster = &enablePrivateCluster + } else { + destination.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if profile.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *profile.EnablePrivateClusterPublicFQDN + destination.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + destination.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + destination.PrivateDNSZone = genruntime.ClonePointerToString(profile.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS populates our ManagedClusterAPIServerAccessProfile from the provided source ManagedClusterAPIServerAccessProfile_STATUS +func (profile *ManagedClusterAPIServerAccessProfile) Initialize_From_ManagedClusterAPIServerAccessProfile_STATUS(source *ManagedClusterAPIServerAccessProfile_STATUS) error { + + // AuthorizedIPRanges + profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) + + // DisableRunCommand + if source.DisableRunCommand != nil { + disableRunCommand := *source.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } else { + profile.DisableRunCommand = nil + } + + // EnablePrivateCluster + if source.EnablePrivateCluster != nil { + enablePrivateCluster := *source.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } else { + profile.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if source.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + profile.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) + + // No error + return nil +} + +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile_STATUS struct { + // AuthorizedIPRanges: IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with + // clusters that use Public IP Per Node, or clusters that are using a Basic Load Balancer. For more information see [API + // server authorized IP ranges](https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges). + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + + // DisableRunCommand: Whether to disable run command for the cluster or not. + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + + // EnablePrivateCluster: For more details, see [Creating a private AKS + // cluster](https://docs.microsoft.com/azure/aks/private-clusters). + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + + // EnablePrivateClusterPublicFQDN: Whether to create additional public FQDN for private cluster or not. + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + + // PrivateDNSZone: The default is System. For more details see [configure private DNS + // zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone). Allowed values are 'system' and + // 'none'. + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAPIServerAccessProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAPIServerAccessProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAPIServerAccessProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAPIServerAccessProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AuthorizedIPRanges": + for _, item := range typedInput.AuthorizedIPRanges { + profile.AuthorizedIPRanges = append(profile.AuthorizedIPRanges, item) + } + + // Set property "DisableRunCommand": + if typedInput.DisableRunCommand != nil { + disableRunCommand := *typedInput.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } + + // Set property "EnablePrivateCluster": + if typedInput.EnablePrivateCluster != nil { + enablePrivateCluster := *typedInput.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } + + // Set property "EnablePrivateClusterPublicFQDN": + if typedInput.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *typedInput.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } + + // Set property "PrivateDNSZone": + if typedInput.PrivateDNSZone != nil { + privateDNSZone := *typedInput.PrivateDNSZone + profile.PrivateDNSZone = &privateDNSZone + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS populates our ManagedClusterAPIServerAccessProfile_STATUS from the provided source ManagedClusterAPIServerAccessProfile_STATUS +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(source *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error { + + // AuthorizedIPRanges + profile.AuthorizedIPRanges = genruntime.CloneSliceOfString(source.AuthorizedIPRanges) + + // DisableRunCommand + if source.DisableRunCommand != nil { + disableRunCommand := *source.DisableRunCommand + profile.DisableRunCommand = &disableRunCommand + } else { + profile.DisableRunCommand = nil + } + + // EnablePrivateCluster + if source.EnablePrivateCluster != nil { + enablePrivateCluster := *source.EnablePrivateCluster + profile.EnablePrivateCluster = &enablePrivateCluster + } else { + profile.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if source.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *source.EnablePrivateClusterPublicFQDN + profile.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + profile.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + profile.PrivateDNSZone = genruntime.ClonePointerToString(source.PrivateDNSZone) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS populates the provided destination ManagedClusterAPIServerAccessProfile_STATUS from our ManagedClusterAPIServerAccessProfile_STATUS +func (profile *ManagedClusterAPIServerAccessProfile_STATUS) AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(destination *v20231001s.ManagedClusterAPIServerAccessProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AuthorizedIPRanges + destination.AuthorizedIPRanges = genruntime.CloneSliceOfString(profile.AuthorizedIPRanges) + + // DisableRunCommand + if profile.DisableRunCommand != nil { + disableRunCommand := *profile.DisableRunCommand + destination.DisableRunCommand = &disableRunCommand + } else { + destination.DisableRunCommand = nil + } + + // EnablePrivateCluster + if profile.EnablePrivateCluster != nil { + enablePrivateCluster := *profile.EnablePrivateCluster + destination.EnablePrivateCluster = &enablePrivateCluster + } else { + destination.EnablePrivateCluster = nil + } + + // EnablePrivateClusterPublicFQDN + if profile.EnablePrivateClusterPublicFQDN != nil { + enablePrivateClusterPublicFQDN := *profile.EnablePrivateClusterPublicFQDN + destination.EnablePrivateClusterPublicFQDN = &enablePrivateClusterPublicFQDN + } else { + destination.EnablePrivateClusterPublicFQDN = nil + } + + // PrivateDNSZone + destination.PrivateDNSZone = genruntime.ClonePointerToString(profile.PrivateDNSZone) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile struct { + // NodeOSUpgradeChannel: Manner in which the OS on your nodes is updated. The default is NodeImage. + NodeOSUpgradeChannel *ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel `json:"nodeOSUpgradeChannel,omitempty"` + + // UpgradeChannel: For more information see [setting the AKS cluster auto-upgrade + // channel](https://docs.microsoft.com/azure/aks/upgrade-cluster#set-auto-upgrade-channel). + UpgradeChannel *ManagedClusterAutoUpgradeProfile_UpgradeChannel `json:"upgradeChannel,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAutoUpgradeProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAutoUpgradeProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAutoUpgradeProfile_ARM{} + + // Set property "NodeOSUpgradeChannel": + if profile.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := *profile.NodeOSUpgradeChannel + result.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } + + // Set property "UpgradeChannel": + if profile.UpgradeChannel != nil { + upgradeChannel := *profile.UpgradeChannel + result.UpgradeChannel = &upgradeChannel + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAutoUpgradeProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAutoUpgradeProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAutoUpgradeProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAutoUpgradeProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAutoUpgradeProfile_ARM, got %T", armInput) + } + + // Set property "NodeOSUpgradeChannel": + if typedInput.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := *typedInput.NodeOSUpgradeChannel + profile.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } + + // Set property "UpgradeChannel": + if typedInput.UpgradeChannel != nil { + upgradeChannel := *typedInput.UpgradeChannel + profile.UpgradeChannel = &upgradeChannel + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAutoUpgradeProfile populates our ManagedClusterAutoUpgradeProfile from the provided source ManagedClusterAutoUpgradeProfile +func (profile *ManagedClusterAutoUpgradeProfile) AssignProperties_From_ManagedClusterAutoUpgradeProfile(source *v20231001s.ManagedClusterAutoUpgradeProfile) error { + + // NodeOSUpgradeChannel + if source.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel(*source.NodeOSUpgradeChannel) + profile.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + profile.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + if source.UpgradeChannel != nil { + upgradeChannel := ManagedClusterAutoUpgradeProfile_UpgradeChannel(*source.UpgradeChannel) + profile.UpgradeChannel = &upgradeChannel + } else { + profile.UpgradeChannel = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAutoUpgradeProfile populates the provided destination ManagedClusterAutoUpgradeProfile from our ManagedClusterAutoUpgradeProfile +func (profile *ManagedClusterAutoUpgradeProfile) AssignProperties_To_ManagedClusterAutoUpgradeProfile(destination *v20231001s.ManagedClusterAutoUpgradeProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // NodeOSUpgradeChannel + if profile.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := string(*profile.NodeOSUpgradeChannel) + destination.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + destination.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + if profile.UpgradeChannel != nil { + upgradeChannel := string(*profile.UpgradeChannel) + destination.UpgradeChannel = &upgradeChannel + } else { + destination.UpgradeChannel = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS populates our ManagedClusterAutoUpgradeProfile from the provided source ManagedClusterAutoUpgradeProfile_STATUS +func (profile *ManagedClusterAutoUpgradeProfile) Initialize_From_ManagedClusterAutoUpgradeProfile_STATUS(source *ManagedClusterAutoUpgradeProfile_STATUS) error { + + // NodeOSUpgradeChannel + if source.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel(*source.NodeOSUpgradeChannel) + profile.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + profile.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + if source.UpgradeChannel != nil { + upgradeChannel := ManagedClusterAutoUpgradeProfile_UpgradeChannel(*source.UpgradeChannel) + profile.UpgradeChannel = &upgradeChannel + } else { + profile.UpgradeChannel = nil + } + + // No error + return nil +} + +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile_STATUS struct { + // NodeOSUpgradeChannel: Manner in which the OS on your nodes is updated. The default is NodeImage. + NodeOSUpgradeChannel *ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS `json:"nodeOSUpgradeChannel,omitempty"` + + // UpgradeChannel: For more information see [setting the AKS cluster auto-upgrade + // channel](https://docs.microsoft.com/azure/aks/upgrade-cluster#set-auto-upgrade-channel). + UpgradeChannel *ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS `json:"upgradeChannel,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAutoUpgradeProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAutoUpgradeProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAutoUpgradeProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAutoUpgradeProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "NodeOSUpgradeChannel": + if typedInput.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := *typedInput.NodeOSUpgradeChannel + profile.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } + + // Set property "UpgradeChannel": + if typedInput.UpgradeChannel != nil { + upgradeChannel := *typedInput.UpgradeChannel + profile.UpgradeChannel = &upgradeChannel + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS populates our ManagedClusterAutoUpgradeProfile_STATUS from the provided source ManagedClusterAutoUpgradeProfile_STATUS +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(source *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error { + + // NodeOSUpgradeChannel + if source.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS(*source.NodeOSUpgradeChannel) + profile.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + profile.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + if source.UpgradeChannel != nil { + upgradeChannel := ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS(*source.UpgradeChannel) + profile.UpgradeChannel = &upgradeChannel + } else { + profile.UpgradeChannel = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS populates the provided destination ManagedClusterAutoUpgradeProfile_STATUS from our ManagedClusterAutoUpgradeProfile_STATUS +func (profile *ManagedClusterAutoUpgradeProfile_STATUS) AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(destination *v20231001s.ManagedClusterAutoUpgradeProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // NodeOSUpgradeChannel + if profile.NodeOSUpgradeChannel != nil { + nodeOSUpgradeChannel := string(*profile.NodeOSUpgradeChannel) + destination.NodeOSUpgradeChannel = &nodeOSUpgradeChannel + } else { + destination.NodeOSUpgradeChannel = nil + } + + // UpgradeChannel + if profile.UpgradeChannel != nil { + upgradeChannel := string(*profile.UpgradeChannel) + destination.UpgradeChannel = &upgradeChannel + } else { + destination.UpgradeChannel = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile struct { + // Metrics: Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes + // infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See + // aka.ms/AzureManagedPrometheus for an overview. + Metrics *ManagedClusterAzureMonitorProfileMetrics `json:"metrics,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAzureMonitorProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterAzureMonitorProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterAzureMonitorProfile_ARM{} + + // Set property "Metrics": + if profile.Metrics != nil { + metrics_ARM, err := (*profile.Metrics).ConvertToARM(resolved) + if err != nil { + return nil, err + } + metrics := *metrics_ARM.(*ManagedClusterAzureMonitorProfileMetrics_ARM) + result.Metrics = &metrics + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAzureMonitorProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAzureMonitorProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfile_ARM, got %T", armInput) + } + + // Set property "Metrics": + if typedInput.Metrics != nil { + var metrics1 ManagedClusterAzureMonitorProfileMetrics + err := metrics1.PopulateFromARM(owner, *typedInput.Metrics) + if err != nil { + return err + } + metrics := metrics1 + profile.Metrics = &metrics + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfile populates our ManagedClusterAzureMonitorProfile from the provided source ManagedClusterAzureMonitorProfile +func (profile *ManagedClusterAzureMonitorProfile) AssignProperties_From_ManagedClusterAzureMonitorProfile(source *v20231001s.ManagedClusterAzureMonitorProfile) error { + + // Metrics + if source.Metrics != nil { + var metric ManagedClusterAzureMonitorProfileMetrics + err := metric.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics() to populate field Metrics") + } + profile.Metrics = &metric + } else { + profile.Metrics = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfile populates the provided destination ManagedClusterAzureMonitorProfile from our ManagedClusterAzureMonitorProfile +func (profile *ManagedClusterAzureMonitorProfile) AssignProperties_To_ManagedClusterAzureMonitorProfile(destination *v20231001s.ManagedClusterAzureMonitorProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Metrics + if profile.Metrics != nil { + var metric v20231001s.ManagedClusterAzureMonitorProfileMetrics + err := profile.Metrics.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(&metric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics() to populate field Metrics") + } + destination.Metrics = &metric + } else { + destination.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAzureMonitorProfile_STATUS populates our ManagedClusterAzureMonitorProfile from the provided source ManagedClusterAzureMonitorProfile_STATUS +func (profile *ManagedClusterAzureMonitorProfile) Initialize_From_ManagedClusterAzureMonitorProfile_STATUS(source *ManagedClusterAzureMonitorProfile_STATUS) error { + + // Metrics + if source.Metrics != nil { + var metric ManagedClusterAzureMonitorProfileMetrics + err := metric.Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") + } + profile.Metrics = &metric + } else { + profile.Metrics = nil + } + + // No error + return nil +} + +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile_STATUS struct { + // Metrics: Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes + // infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See + // aka.ms/AzureManagedPrometheus for an overview. + Metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS `json:"metrics,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAzureMonitorProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterAzureMonitorProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterAzureMonitorProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Metrics": + if typedInput.Metrics != nil { + var metrics1 ManagedClusterAzureMonitorProfileMetrics_STATUS + err := metrics1.PopulateFromARM(owner, *typedInput.Metrics) + if err != nil { + return err + } + metrics := metrics1 + profile.Metrics = &metrics + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS populates our ManagedClusterAzureMonitorProfile_STATUS from the provided source ManagedClusterAzureMonitorProfile_STATUS +func (profile *ManagedClusterAzureMonitorProfile_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error { + + // Metrics + if source.Metrics != nil { + var metric ManagedClusterAzureMonitorProfileMetrics_STATUS + err := metric.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") + } + profile.Metrics = &metric + } else { + profile.Metrics = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS populates the provided destination ManagedClusterAzureMonitorProfile_STATUS from our ManagedClusterAzureMonitorProfile_STATUS +func (profile *ManagedClusterAzureMonitorProfile_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Metrics + if profile.Metrics != nil { + var metric v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS + err := profile.Metrics.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(&metric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS() to populate field Metrics") + } + destination.Metrics = &metric + } else { + destination.Metrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig struct { + // HttpProxy: The HTTP proxy server endpoint to use. + HttpProxy *string `json:"httpProxy,omitempty"` + + // HttpsProxy: The HTTPS proxy server endpoint to use. + HttpsProxy *string `json:"httpsProxy,omitempty"` + + // NoProxy: The endpoints that should not go through proxy. + NoProxy []string `json:"noProxy,omitempty"` + + // TrustedCa: Alternative CA cert to use for connecting to proxy servers. + TrustedCa *string `json:"trustedCa,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterHTTPProxyConfig{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (config *ManagedClusterHTTPProxyConfig) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if config == nil { + return nil, nil + } + result := &ManagedClusterHTTPProxyConfig_ARM{} + + // Set property "HttpProxy": + if config.HttpProxy != nil { + httpProxy := *config.HttpProxy + result.HttpProxy = &httpProxy + } + + // Set property "HttpsProxy": + if config.HttpsProxy != nil { + httpsProxy := *config.HttpsProxy + result.HttpsProxy = &httpsProxy + } + + // Set property "NoProxy": + for _, item := range config.NoProxy { + result.NoProxy = append(result.NoProxy, item) + } + + // Set property "TrustedCa": + if config.TrustedCa != nil { + trustedCa := *config.TrustedCa + result.TrustedCa = &trustedCa + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *ManagedClusterHTTPProxyConfig) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterHTTPProxyConfig_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *ManagedClusterHTTPProxyConfig) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterHTTPProxyConfig_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterHTTPProxyConfig_ARM, got %T", armInput) + } + + // Set property "HttpProxy": + if typedInput.HttpProxy != nil { + httpProxy := *typedInput.HttpProxy + config.HttpProxy = &httpProxy + } + + // Set property "HttpsProxy": + if typedInput.HttpsProxy != nil { + httpsProxy := *typedInput.HttpsProxy + config.HttpsProxy = &httpsProxy + } + + // Set property "NoProxy": + for _, item := range typedInput.NoProxy { + config.NoProxy = append(config.NoProxy, item) + } + + // Set property "TrustedCa": + if typedInput.TrustedCa != nil { + trustedCa := *typedInput.TrustedCa + config.TrustedCa = &trustedCa + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterHTTPProxyConfig populates our ManagedClusterHTTPProxyConfig from the provided source ManagedClusterHTTPProxyConfig +func (config *ManagedClusterHTTPProxyConfig) AssignProperties_From_ManagedClusterHTTPProxyConfig(source *v20231001s.ManagedClusterHTTPProxyConfig) error { + + // HttpProxy + config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) + + // HttpsProxy + config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) + + // NoProxy + config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) + + // TrustedCa + config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterHTTPProxyConfig populates the provided destination ManagedClusterHTTPProxyConfig from our ManagedClusterHTTPProxyConfig +func (config *ManagedClusterHTTPProxyConfig) AssignProperties_To_ManagedClusterHTTPProxyConfig(destination *v20231001s.ManagedClusterHTTPProxyConfig) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // HttpProxy + destination.HttpProxy = genruntime.ClonePointerToString(config.HttpProxy) + + // HttpsProxy + destination.HttpsProxy = genruntime.ClonePointerToString(config.HttpsProxy) + + // NoProxy + destination.NoProxy = genruntime.CloneSliceOfString(config.NoProxy) + + // TrustedCa + destination.TrustedCa = genruntime.ClonePointerToString(config.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterHTTPProxyConfig_STATUS populates our ManagedClusterHTTPProxyConfig from the provided source ManagedClusterHTTPProxyConfig_STATUS +func (config *ManagedClusterHTTPProxyConfig) Initialize_From_ManagedClusterHTTPProxyConfig_STATUS(source *ManagedClusterHTTPProxyConfig_STATUS) error { + + // HttpProxy + config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) + + // HttpsProxy + config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) + + // NoProxy + config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) + + // TrustedCa + config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) + + // No error + return nil +} + +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig_STATUS struct { + // HttpProxy: The HTTP proxy server endpoint to use. + HttpProxy *string `json:"httpProxy,omitempty"` + + // HttpsProxy: The HTTPS proxy server endpoint to use. + HttpsProxy *string `json:"httpsProxy,omitempty"` + + // NoProxy: The endpoints that should not go through proxy. + NoProxy []string `json:"noProxy,omitempty"` + + // TrustedCa: Alternative CA cert to use for connecting to proxy servers. + TrustedCa *string `json:"trustedCa,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterHTTPProxyConfig_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *ManagedClusterHTTPProxyConfig_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterHTTPProxyConfig_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *ManagedClusterHTTPProxyConfig_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterHTTPProxyConfig_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterHTTPProxyConfig_STATUS_ARM, got %T", armInput) + } + + // Set property "HttpProxy": + if typedInput.HttpProxy != nil { + httpProxy := *typedInput.HttpProxy + config.HttpProxy = &httpProxy + } + + // Set property "HttpsProxy": + if typedInput.HttpsProxy != nil { + httpsProxy := *typedInput.HttpsProxy + config.HttpsProxy = &httpsProxy + } + + // Set property "NoProxy": + for _, item := range typedInput.NoProxy { + config.NoProxy = append(config.NoProxy, item) + } + + // Set property "TrustedCa": + if typedInput.TrustedCa != nil { + trustedCa := *typedInput.TrustedCa + config.TrustedCa = &trustedCa + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS populates our ManagedClusterHTTPProxyConfig_STATUS from the provided source ManagedClusterHTTPProxyConfig_STATUS +func (config *ManagedClusterHTTPProxyConfig_STATUS) AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(source *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error { + + // HttpProxy + config.HttpProxy = genruntime.ClonePointerToString(source.HttpProxy) + + // HttpsProxy + config.HttpsProxy = genruntime.ClonePointerToString(source.HttpsProxy) + + // NoProxy + config.NoProxy = genruntime.CloneSliceOfString(source.NoProxy) + + // TrustedCa + config.TrustedCa = genruntime.ClonePointerToString(source.TrustedCa) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS populates the provided destination ManagedClusterHTTPProxyConfig_STATUS from our ManagedClusterHTTPProxyConfig_STATUS +func (config *ManagedClusterHTTPProxyConfig_STATUS) AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(destination *v20231001s.ManagedClusterHTTPProxyConfig_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // HttpProxy + destination.HttpProxy = genruntime.ClonePointerToString(config.HttpProxy) + + // HttpsProxy + destination.HttpsProxy = genruntime.ClonePointerToString(config.HttpsProxy) + + // NoProxy + destination.NoProxy = genruntime.CloneSliceOfString(config.NoProxy) + + // TrustedCa + destination.TrustedCa = genruntime.ClonePointerToString(config.TrustedCa) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Identity for the managed cluster. +type ManagedClusterIdentity struct { + // DelegatedResources: The delegated identity resources assigned to this managed cluster. This can only be set by another + // Azure Resource Provider, and managed cluster only accept one delegated identity resource. Internal use only. + DelegatedResources map[string]DelegatedResource `json:"delegatedResources,omitempty"` + + // Type: For more information see [use managed identities in + // AKS](https://docs.microsoft.com/azure/aks/use-managed-identity). + Type *ManagedClusterIdentity_Type `json:"type,omitempty"` + + // UserAssignedIdentities: The keys must be ARM resource IDs in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterIdentity{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (identity *ManagedClusterIdentity) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if identity == nil { + return nil, nil + } + result := &ManagedClusterIdentity_ARM{} + + // Set property "DelegatedResources": + if identity.DelegatedResources != nil { + result.DelegatedResources = make(map[string]DelegatedResource_ARM, len(identity.DelegatedResources)) + for key, value := range identity.DelegatedResources { + value_ARM, err := value.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.DelegatedResources[key] = *value_ARM.(*DelegatedResource_ARM) + } + } + + // Set property "Type": + if identity.Type != nil { + typeVar := *identity.Type + result.Type = &typeVar + } + + // Set property "UserAssignedIdentities": + result.UserAssignedIdentities = make(map[string]UserAssignedIdentityDetails_ARM, len(identity.UserAssignedIdentities)) + for _, ident := range identity.UserAssignedIdentities { + identARMID, err := resolved.ResolvedReferences.Lookup(ident.Reference) + if err != nil { + return nil, err + } + key := identARMID + result.UserAssignedIdentities[key] = UserAssignedIdentityDetails_ARM{} + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterIdentity) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterIdentity_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterIdentity) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterIdentity_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterIdentity_ARM, got %T", armInput) + } + + // Set property "DelegatedResources": + if typedInput.DelegatedResources != nil { + identity.DelegatedResources = make(map[string]DelegatedResource, len(typedInput.DelegatedResources)) + for key, value := range typedInput.DelegatedResources { + var value1 DelegatedResource + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + identity.DelegatedResources[key] = value1 + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + identity.Type = &typeVar + } + + // no assignment for property "UserAssignedIdentities" + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterIdentity populates our ManagedClusterIdentity from the provided source ManagedClusterIdentity +func (identity *ManagedClusterIdentity) AssignProperties_From_ManagedClusterIdentity(source *v20231001s.ManagedClusterIdentity) error { + + // DelegatedResources + if source.DelegatedResources != nil { + delegatedResourceMap := make(map[string]DelegatedResource, len(source.DelegatedResources)) + for delegatedResourceKey, delegatedResourceValue := range source.DelegatedResources { + // Shadow the loop variable to avoid aliasing + delegatedResourceValue := delegatedResourceValue + var delegatedResource DelegatedResource + err := delegatedResource.AssignProperties_From_DelegatedResource(&delegatedResourceValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_DelegatedResource() to populate field DelegatedResources") + } + delegatedResourceMap[delegatedResourceKey] = delegatedResource + } + identity.DelegatedResources = delegatedResourceMap + } else { + identity.DelegatedResources = nil + } + + // Type + if source.Type != nil { + typeVar := ManagedClusterIdentity_Type(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]UserAssignedIdentityDetails, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity UserAssignedIdentityDetails + err := userAssignedIdentity.AssignProperties_From_UserAssignedIdentityDetails(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityList + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity populates the provided destination ManagedClusterIdentity from our ManagedClusterIdentity +func (identity *ManagedClusterIdentity) AssignProperties_To_ManagedClusterIdentity(destination *v20231001s.ManagedClusterIdentity) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DelegatedResources + if identity.DelegatedResources != nil { + delegatedResourceMap := make(map[string]v20231001s.DelegatedResource, len(identity.DelegatedResources)) + for delegatedResourceKey, delegatedResourceValue := range identity.DelegatedResources { + // Shadow the loop variable to avoid aliasing + delegatedResourceValue := delegatedResourceValue + var delegatedResource v20231001s.DelegatedResource + err := delegatedResourceValue.AssignProperties_To_DelegatedResource(&delegatedResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_DelegatedResource() to populate field DelegatedResources") + } + delegatedResourceMap[delegatedResourceKey] = delegatedResource + } + destination.DelegatedResources = delegatedResourceMap + } else { + destination.DelegatedResources = nil + } + + // Type + if identity.Type != nil { + typeVar := string(*identity.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.UserAssignedIdentityDetails, len(identity.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.UserAssignedIdentityDetails + err := userAssignedIdentityItem.AssignProperties_To_UserAssignedIdentityDetails(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterIdentity_STATUS populates our ManagedClusterIdentity from the provided source ManagedClusterIdentity_STATUS +func (identity *ManagedClusterIdentity) Initialize_From_ManagedClusterIdentity_STATUS(source *ManagedClusterIdentity_STATUS) error { + + // DelegatedResources + if source.DelegatedResources != nil { + delegatedResourceMap := make(map[string]DelegatedResource, len(source.DelegatedResources)) + for delegatedResourceKey, delegatedResourceValue := range source.DelegatedResources { + // Shadow the loop variable to avoid aliasing + delegatedResourceValue := delegatedResourceValue + var delegatedResource DelegatedResource + err := delegatedResource.Initialize_From_DelegatedResource_STATUS(&delegatedResourceValue) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_DelegatedResource_STATUS() to populate field DelegatedResources") + } + delegatedResourceMap[delegatedResourceKey] = delegatedResource + } + identity.DelegatedResources = delegatedResourceMap + } else { + identity.DelegatedResources = nil + } + + // Type + if source.Type != nil { + typeVar := ManagedClusterIdentity_Type(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]UserAssignedIdentityDetails, 0, len(source.UserAssignedIdentities)) + for userAssignedIdentitiesKey := range source.UserAssignedIdentities { + userAssignedIdentitiesRef := genruntime.CreateResourceReferenceFromARMID(userAssignedIdentitiesKey) + userAssignedIdentityList = append(userAssignedIdentityList, UserAssignedIdentityDetails{Reference: userAssignedIdentitiesRef}) + } + identity.UserAssignedIdentities = userAssignedIdentityList + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// Identity for the managed cluster. +type ManagedClusterIdentity_STATUS struct { + // DelegatedResources: The delegated identity resources assigned to this managed cluster. This can only be set by another + // Azure Resource Provider, and managed cluster only accept one delegated identity resource. Internal use only. + DelegatedResources map[string]DelegatedResource_STATUS `json:"delegatedResources,omitempty"` + + // PrincipalId: The principal id of the system assigned identity which is used by master components. + PrincipalId *string `json:"principalId,omitempty"` + + // TenantId: The tenant id of the system assigned identity which is used by master components. + TenantId *string `json:"tenantId,omitempty"` + + // Type: For more information see [use managed identities in + // AKS](https://docs.microsoft.com/azure/aks/use-managed-identity). + Type *ManagedClusterIdentity_Type_STATUS `json:"type,omitempty"` + + // UserAssignedIdentities: The keys must be ARM resource IDs in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS `json:"userAssignedIdentities,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterIdentity_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterIdentity_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterIdentity_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterIdentity_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterIdentity_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterIdentity_STATUS_ARM, got %T", armInput) + } + + // Set property "DelegatedResources": + if typedInput.DelegatedResources != nil { + identity.DelegatedResources = make(map[string]DelegatedResource_STATUS, len(typedInput.DelegatedResources)) + for key, value := range typedInput.DelegatedResources { + var value1 DelegatedResource_STATUS + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + identity.DelegatedResources[key] = value1 + } + } + + // Set property "PrincipalId": + if typedInput.PrincipalId != nil { + principalId := *typedInput.PrincipalId + identity.PrincipalId = &principalId + } + + // Set property "TenantId": + if typedInput.TenantId != nil { + tenantId := *typedInput.TenantId + identity.TenantId = &tenantId + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + identity.Type = &typeVar + } + + // Set property "UserAssignedIdentities": + if typedInput.UserAssignedIdentities != nil { + identity.UserAssignedIdentities = make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(typedInput.UserAssignedIdentities)) + for key, value := range typedInput.UserAssignedIdentities { + var value1 ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + identity.UserAssignedIdentities[key] = value1 + } + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterIdentity_STATUS populates our ManagedClusterIdentity_STATUS from the provided source ManagedClusterIdentity_STATUS +func (identity *ManagedClusterIdentity_STATUS) AssignProperties_From_ManagedClusterIdentity_STATUS(source *v20231001s.ManagedClusterIdentity_STATUS) error { + + // DelegatedResources + if source.DelegatedResources != nil { + delegatedResourceMap := make(map[string]DelegatedResource_STATUS, len(source.DelegatedResources)) + for delegatedResourceKey, delegatedResourceValue := range source.DelegatedResources { + // Shadow the loop variable to avoid aliasing + delegatedResourceValue := delegatedResourceValue + var delegatedResource DelegatedResource_STATUS + err := delegatedResource.AssignProperties_From_DelegatedResource_STATUS(&delegatedResourceValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_DelegatedResource_STATUS() to populate field DelegatedResources") + } + delegatedResourceMap[delegatedResourceKey] = delegatedResource + } + identity.DelegatedResources = delegatedResourceMap + } else { + identity.DelegatedResources = nil + } + + // PrincipalId + identity.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // TenantId + identity.TenantId = genruntime.ClonePointerToString(source.TenantId) + + // Type + if source.Type != nil { + typeVar := ManagedClusterIdentity_Type_STATUS(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(source.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := userAssignedIdentity.AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&userAssignedIdentityValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityMap + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity_STATUS populates the provided destination ManagedClusterIdentity_STATUS from our ManagedClusterIdentity_STATUS +func (identity *ManagedClusterIdentity_STATUS) AssignProperties_To_ManagedClusterIdentity_STATUS(destination *v20231001s.ManagedClusterIdentity_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DelegatedResources + if identity.DelegatedResources != nil { + delegatedResourceMap := make(map[string]v20231001s.DelegatedResource_STATUS, len(identity.DelegatedResources)) + for delegatedResourceKey, delegatedResourceValue := range identity.DelegatedResources { + // Shadow the loop variable to avoid aliasing + delegatedResourceValue := delegatedResourceValue + var delegatedResource v20231001s.DelegatedResource_STATUS + err := delegatedResourceValue.AssignProperties_To_DelegatedResource_STATUS(&delegatedResource) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_DelegatedResource_STATUS() to populate field DelegatedResources") + } + delegatedResourceMap[delegatedResourceKey] = delegatedResource + } + destination.DelegatedResources = delegatedResourceMap + } else { + destination.DelegatedResources = nil + } + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(identity.PrincipalId) + + // TenantId + destination.TenantId = genruntime.ClonePointerToString(identity.TenantId) + + // Type + if identity.Type != nil { + typeVar := string(*identity.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(identity.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := userAssignedIdentityValue.AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityMap + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile struct { + // Enabled: Whether the OIDC issuer is enabled. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterOIDCIssuerProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterOIDCIssuerProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterOIDCIssuerProfile_ARM{} + + // Set property "Enabled": + if profile.Enabled != nil { + enabled := *profile.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterOIDCIssuerProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterOIDCIssuerProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterOIDCIssuerProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterOIDCIssuerProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterOIDCIssuerProfile_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterOIDCIssuerProfile populates our ManagedClusterOIDCIssuerProfile from the provided source ManagedClusterOIDCIssuerProfile +func (profile *ManagedClusterOIDCIssuerProfile) AssignProperties_From_ManagedClusterOIDCIssuerProfile(source *v20231001s.ManagedClusterOIDCIssuerProfile) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOIDCIssuerProfile populates the provided destination ManagedClusterOIDCIssuerProfile from our ManagedClusterOIDCIssuerProfile +func (profile *ManagedClusterOIDCIssuerProfile) AssignProperties_To_ManagedClusterOIDCIssuerProfile(destination *v20231001s.ManagedClusterOIDCIssuerProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS populates our ManagedClusterOIDCIssuerProfile from the provided source ManagedClusterOIDCIssuerProfile_STATUS +func (profile *ManagedClusterOIDCIssuerProfile) Initialize_From_ManagedClusterOIDCIssuerProfile_STATUS(source *ManagedClusterOIDCIssuerProfile_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // No error + return nil +} + +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile_STATUS struct { + // Enabled: Whether the OIDC issuer is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // IssuerURL: The OIDC issuer url of the Managed Cluster. + IssuerURL *string `json:"issuerURL,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterOIDCIssuerProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterOIDCIssuerProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterOIDCIssuerProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterOIDCIssuerProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "IssuerURL": + if typedInput.IssuerURL != nil { + issuerURL := *typedInput.IssuerURL + profile.IssuerURL = &issuerURL + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS populates our ManagedClusterOIDCIssuerProfile_STATUS from the provided source ManagedClusterOIDCIssuerProfile_STATUS +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(source *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // IssuerURL + profile.IssuerURL = genruntime.ClonePointerToString(source.IssuerURL) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS populates the provided destination ManagedClusterOIDCIssuerProfile_STATUS from our ManagedClusterOIDCIssuerProfile_STATUS +func (profile *ManagedClusterOIDCIssuerProfile_STATUS) AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(destination *v20231001s.ManagedClusterOIDCIssuerProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IssuerURL + destination.IssuerURL = genruntime.ClonePointerToString(profile.IssuerURL) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure +type ManagedClusterOperatorSpec struct { + // ConfigMaps: configures where to place operator written ConfigMaps. + ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"` + + // Secrets: configures where to place Azure generated secrets. + Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorSpec populates our ManagedClusterOperatorSpec from the provided source ManagedClusterOperatorSpec +func (operator *ManagedClusterOperatorSpec) AssignProperties_From_ManagedClusterOperatorSpec(source *v20231001s.ManagedClusterOperatorSpec) error { + + // ConfigMaps + if source.ConfigMaps != nil { + var configMap ManagedClusterOperatorConfigMaps + err := configMap.AssignProperties_From_ManagedClusterOperatorConfigMaps(source.ConfigMaps) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps") + } + operator.ConfigMaps = &configMap + } else { + operator.ConfigMaps = nil + } + + // Secrets + if source.Secrets != nil { + var secret ManagedClusterOperatorSecrets + err := secret.AssignProperties_From_ManagedClusterOperatorSecrets(source.Secrets) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterOperatorSecrets() to populate field Secrets") + } + operator.Secrets = &secret + } else { + operator.Secrets = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorSpec populates the provided destination ManagedClusterOperatorSpec from our ManagedClusterOperatorSpec +func (operator *ManagedClusterOperatorSpec) AssignProperties_To_ManagedClusterOperatorSpec(destination *v20231001s.ManagedClusterOperatorSpec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ConfigMaps + if operator.ConfigMaps != nil { + var configMap v20231001s.ManagedClusterOperatorConfigMaps + err := operator.ConfigMaps.AssignProperties_To_ManagedClusterOperatorConfigMaps(&configMap) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorConfigMaps() to populate field ConfigMaps") + } + destination.ConfigMaps = &configMap + } else { + destination.ConfigMaps = nil + } + + // Secrets + if operator.Secrets != nil { + var secret v20231001s.ManagedClusterOperatorSecrets + err := operator.Secrets.AssignProperties_To_ManagedClusterOperatorSecrets(&secret) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterOperatorSecrets() to populate field Secrets") + } + destination.Secrets = &secret + } else { + destination.Secrets = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile struct { + // AllowNetworkPluginKubenet: Running in Kubenet is disabled by default due to the security related nature of AAD Pod + // Identity and the risks of IP spoofing. See [using Kubenet network plugin with AAD Pod + // Identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#using-kubenet-network-plugin-with-azure-active-directory-pod-managed-identities) + // for more information. + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + + // Enabled: Whether the pod identity addon is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // UserAssignedIdentities: The pod identities to use in the cluster. + UserAssignedIdentities []ManagedClusterPodIdentity `json:"userAssignedIdentities,omitempty"` + + // UserAssignedIdentityExceptions: The pod identity exceptions to allow. + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException `json:"userAssignedIdentityExceptions,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterPodIdentityProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterPodIdentityProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterPodIdentityProfile_ARM{} + + // Set property "AllowNetworkPluginKubenet": + if profile.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *profile.AllowNetworkPluginKubenet + result.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } + + // Set property "Enabled": + if profile.Enabled != nil { + enabled := *profile.Enabled + result.Enabled = &enabled + } + + // Set property "UserAssignedIdentities": + for _, item := range profile.UserAssignedIdentities { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.UserAssignedIdentities = append(result.UserAssignedIdentities, *item_ARM.(*ManagedClusterPodIdentity_ARM)) + } + + // Set property "UserAssignedIdentityExceptions": + for _, item := range profile.UserAssignedIdentityExceptions { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.UserAssignedIdentityExceptions = append(result.UserAssignedIdentityExceptions, *item_ARM.(*ManagedClusterPodIdentityException_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterPodIdentityProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterPodIdentityProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityProfile_ARM, got %T", armInput) + } + + // Set property "AllowNetworkPluginKubenet": + if typedInput.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *typedInput.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "UserAssignedIdentities": + for _, item := range typedInput.UserAssignedIdentities { + var item1 ManagedClusterPodIdentity + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.UserAssignedIdentities = append(profile.UserAssignedIdentities, item1) + } + + // Set property "UserAssignedIdentityExceptions": + for _, item := range typedInput.UserAssignedIdentityExceptions { + var item1 ManagedClusterPodIdentityException + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.UserAssignedIdentityExceptions = append(profile.UserAssignedIdentityExceptions, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityProfile populates our ManagedClusterPodIdentityProfile from the provided source ManagedClusterPodIdentityProfile +func (profile *ManagedClusterPodIdentityProfile) AssignProperties_From_ManagedClusterPodIdentityProfile(source *v20231001s.ManagedClusterPodIdentityProfile) error { + + // AllowNetworkPluginKubenet + if source.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + profile.AllowNetworkPluginKubenet = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]ManagedClusterPodIdentity, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity ManagedClusterPodIdentity + err := userAssignedIdentity.AssignProperties_From_ManagedClusterPodIdentity(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + profile.UserAssignedIdentities = userAssignedIdentityList + } else { + profile.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if source.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException, len(source.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException ManagedClusterPodIdentityException + err := userAssignedIdentityException.AssignProperties_From_ManagedClusterPodIdentityException(&userAssignedIdentityExceptionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityException() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + profile.UserAssignedIdentityExceptions = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProfile populates the provided destination ManagedClusterPodIdentityProfile from our ManagedClusterPodIdentityProfile +func (profile *ManagedClusterPodIdentityProfile) AssignProperties_To_ManagedClusterPodIdentityProfile(destination *v20231001s.ManagedClusterPodIdentityProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowNetworkPluginKubenet + if profile.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *profile.AllowNetworkPluginKubenet + destination.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + destination.AllowNetworkPluginKubenet = nil + } + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UserAssignedIdentities + if profile.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.ManagedClusterPodIdentity, len(profile.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range profile.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.ManagedClusterPodIdentity + err := userAssignedIdentityItem.AssignProperties_To_ManagedClusterPodIdentity(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if profile.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]v20231001s.ManagedClusterPodIdentityException, len(profile.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range profile.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException v20231001s.ManagedClusterPodIdentityException + err := userAssignedIdentityExceptionItem.AssignProperties_To_ManagedClusterPodIdentityException(&userAssignedIdentityException) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityException() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + destination.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + destination.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterPodIdentityProfile_STATUS populates our ManagedClusterPodIdentityProfile from the provided source ManagedClusterPodIdentityProfile_STATUS +func (profile *ManagedClusterPodIdentityProfile) Initialize_From_ManagedClusterPodIdentityProfile_STATUS(source *ManagedClusterPodIdentityProfile_STATUS) error { + + // AllowNetworkPluginKubenet + if source.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + profile.AllowNetworkPluginKubenet = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]ManagedClusterPodIdentity, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity ManagedClusterPodIdentity + err := userAssignedIdentity.Initialize_From_ManagedClusterPodIdentity_STATUS(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + profile.UserAssignedIdentities = userAssignedIdentityList + } else { + profile.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if source.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException, len(source.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException ManagedClusterPodIdentityException + err := userAssignedIdentityException.Initialize_From_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityExceptionItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + profile.UserAssignedIdentityExceptions = nil + } + + // No error + return nil +} + +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile_STATUS struct { + // AllowNetworkPluginKubenet: Running in Kubenet is disabled by default due to the security related nature of AAD Pod + // Identity and the risks of IP spoofing. See [using Kubenet network plugin with AAD Pod + // Identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#using-kubenet-network-plugin-with-azure-active-directory-pod-managed-identities) + // for more information. + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + + // Enabled: Whether the pod identity addon is enabled. + Enabled *bool `json:"enabled,omitempty"` + + // UserAssignedIdentities: The pod identities to use in the cluster. + UserAssignedIdentities []ManagedClusterPodIdentity_STATUS `json:"userAssignedIdentities,omitempty"` + + // UserAssignedIdentityExceptions: The pod identity exceptions to allow. + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_STATUS `json:"userAssignedIdentityExceptions,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentityProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterPodIdentityProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterPodIdentityProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AllowNetworkPluginKubenet": + if typedInput.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *typedInput.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "UserAssignedIdentities": + for _, item := range typedInput.UserAssignedIdentities { + var item1 ManagedClusterPodIdentity_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.UserAssignedIdentities = append(profile.UserAssignedIdentities, item1) + } + + // Set property "UserAssignedIdentityExceptions": + for _, item := range typedInput.UserAssignedIdentityExceptions { + var item1 ManagedClusterPodIdentityException_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.UserAssignedIdentityExceptions = append(profile.UserAssignedIdentityExceptions, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS populates our ManagedClusterPodIdentityProfile_STATUS from the provided source ManagedClusterPodIdentityProfile_STATUS +func (profile *ManagedClusterPodIdentityProfile_STATUS) AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(source *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error { + + // AllowNetworkPluginKubenet + if source.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *source.AllowNetworkPluginKubenet + profile.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + profile.AllowNetworkPluginKubenet = nil + } + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]ManagedClusterPodIdentity_STATUS, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity ManagedClusterPodIdentity_STATUS + err := userAssignedIdentity.AssignProperties_From_ManagedClusterPodIdentity_STATUS(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + profile.UserAssignedIdentities = userAssignedIdentityList + } else { + profile.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if source.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]ManagedClusterPodIdentityException_STATUS, len(source.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range source.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException ManagedClusterPodIdentityException_STATUS + err := userAssignedIdentityException.AssignProperties_From_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityExceptionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + profile.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + profile.UserAssignedIdentityExceptions = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS populates the provided destination ManagedClusterPodIdentityProfile_STATUS from our ManagedClusterPodIdentityProfile_STATUS +func (profile *ManagedClusterPodIdentityProfile_STATUS) AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(destination *v20231001s.ManagedClusterPodIdentityProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowNetworkPluginKubenet + if profile.AllowNetworkPluginKubenet != nil { + allowNetworkPluginKubenet := *profile.AllowNetworkPluginKubenet + destination.AllowNetworkPluginKubenet = &allowNetworkPluginKubenet + } else { + destination.AllowNetworkPluginKubenet = nil + } + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // UserAssignedIdentities + if profile.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20231001s.ManagedClusterPodIdentity_STATUS, len(profile.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range profile.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20231001s.ManagedClusterPodIdentity_STATUS + err := userAssignedIdentityItem.AssignProperties_To_ManagedClusterPodIdentity_STATUS(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // UserAssignedIdentityExceptions + if profile.UserAssignedIdentityExceptions != nil { + userAssignedIdentityExceptionList := make([]v20231001s.ManagedClusterPodIdentityException_STATUS, len(profile.UserAssignedIdentityExceptions)) + for userAssignedIdentityExceptionIndex, userAssignedIdentityExceptionItem := range profile.UserAssignedIdentityExceptions { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityExceptionItem := userAssignedIdentityExceptionItem + var userAssignedIdentityException v20231001s.ManagedClusterPodIdentityException_STATUS + err := userAssignedIdentityExceptionItem.AssignProperties_To_ManagedClusterPodIdentityException_STATUS(&userAssignedIdentityException) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityException_STATUS() to populate field UserAssignedIdentityExceptions") + } + userAssignedIdentityExceptionList[userAssignedIdentityExceptionIndex] = userAssignedIdentityException + } + destination.UserAssignedIdentityExceptions = userAssignedIdentityExceptionList + } else { + destination.UserAssignedIdentityExceptions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterProperties_AutoScalerProfile struct { + // BalanceSimilarNodeGroups: Valid values are 'true' and 'false' + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + + // Expander: If not specified, the default is 'random'. See + // [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more + // information. + Expander *ManagedClusterProperties_AutoScalerProfile_Expander `json:"expander,omitempty"` + + // MaxEmptyBulkDelete: The default is 10. + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + + // MaxGracefulTerminationSec: The default is 600. + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + + // MaxNodeProvisionTime: The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + + // MaxTotalUnreadyPercentage: The default is 45. The maximum is 100 and the minimum is 0. + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + + // NewPodScaleUpDelay: For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler + // could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is + // '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + + // OkTotalUnreadyCount: This must be an integer. The default is 3. + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + + // ScaleDownDelayAfterAdd: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + + // ScaleDownDelayAfterDelete: The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of + // time other than minutes (m) is supported. + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + + // ScaleDownDelayAfterFailure: The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other + // than minutes (m) is supported. + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + + // ScaleDownUnneededTime: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + + // ScaleDownUnreadyTime: The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + + // ScaleDownUtilizationThreshold: The default is '0.5'. + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + + // ScanInterval: The default is '10'. Values must be an integer number of seconds. + ScanInterval *string `json:"scan-interval,omitempty"` + + // SkipNodesWithLocalStorage: The default is true. + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + + // SkipNodesWithSystemPods: The default is true. + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterProperties_AutoScalerProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterProperties_AutoScalerProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterProperties_AutoScalerProfile_ARM{} + + // Set property "BalanceSimilarNodeGroups": + if profile.BalanceSimilarNodeGroups != nil { + balanceSimilarNodeGroups := *profile.BalanceSimilarNodeGroups + result.BalanceSimilarNodeGroups = &balanceSimilarNodeGroups + } + + // Set property "Expander": + if profile.Expander != nil { + expander := *profile.Expander + result.Expander = &expander + } + + // Set property "MaxEmptyBulkDelete": + if profile.MaxEmptyBulkDelete != nil { + maxEmptyBulkDelete := *profile.MaxEmptyBulkDelete + result.MaxEmptyBulkDelete = &maxEmptyBulkDelete + } + + // Set property "MaxGracefulTerminationSec": + if profile.MaxGracefulTerminationSec != nil { + maxGracefulTerminationSec := *profile.MaxGracefulTerminationSec + result.MaxGracefulTerminationSec = &maxGracefulTerminationSec + } + + // Set property "MaxNodeProvisionTime": + if profile.MaxNodeProvisionTime != nil { + maxNodeProvisionTime := *profile.MaxNodeProvisionTime + result.MaxNodeProvisionTime = &maxNodeProvisionTime + } + + // Set property "MaxTotalUnreadyPercentage": + if profile.MaxTotalUnreadyPercentage != nil { + maxTotalUnreadyPercentage := *profile.MaxTotalUnreadyPercentage + result.MaxTotalUnreadyPercentage = &maxTotalUnreadyPercentage + } + + // Set property "NewPodScaleUpDelay": + if profile.NewPodScaleUpDelay != nil { + newPodScaleUpDelay := *profile.NewPodScaleUpDelay + result.NewPodScaleUpDelay = &newPodScaleUpDelay + } + + // Set property "OkTotalUnreadyCount": + if profile.OkTotalUnreadyCount != nil { + okTotalUnreadyCount := *profile.OkTotalUnreadyCount + result.OkTotalUnreadyCount = &okTotalUnreadyCount + } + + // Set property "ScaleDownDelayAfterAdd": + if profile.ScaleDownDelayAfterAdd != nil { + scaleDownDelayAfterAdd := *profile.ScaleDownDelayAfterAdd + result.ScaleDownDelayAfterAdd = &scaleDownDelayAfterAdd + } + + // Set property "ScaleDownDelayAfterDelete": + if profile.ScaleDownDelayAfterDelete != nil { + scaleDownDelayAfterDelete := *profile.ScaleDownDelayAfterDelete + result.ScaleDownDelayAfterDelete = &scaleDownDelayAfterDelete + } + + // Set property "ScaleDownDelayAfterFailure": + if profile.ScaleDownDelayAfterFailure != nil { + scaleDownDelayAfterFailure := *profile.ScaleDownDelayAfterFailure + result.ScaleDownDelayAfterFailure = &scaleDownDelayAfterFailure + } + + // Set property "ScaleDownUnneededTime": + if profile.ScaleDownUnneededTime != nil { + scaleDownUnneededTime := *profile.ScaleDownUnneededTime + result.ScaleDownUnneededTime = &scaleDownUnneededTime + } + + // Set property "ScaleDownUnreadyTime": + if profile.ScaleDownUnreadyTime != nil { + scaleDownUnreadyTime := *profile.ScaleDownUnreadyTime + result.ScaleDownUnreadyTime = &scaleDownUnreadyTime + } + + // Set property "ScaleDownUtilizationThreshold": + if profile.ScaleDownUtilizationThreshold != nil { + scaleDownUtilizationThreshold := *profile.ScaleDownUtilizationThreshold + result.ScaleDownUtilizationThreshold = &scaleDownUtilizationThreshold + } + + // Set property "ScanInterval": + if profile.ScanInterval != nil { + scanInterval := *profile.ScanInterval + result.ScanInterval = &scanInterval + } + + // Set property "SkipNodesWithLocalStorage": + if profile.SkipNodesWithLocalStorage != nil { + skipNodesWithLocalStorage := *profile.SkipNodesWithLocalStorage + result.SkipNodesWithLocalStorage = &skipNodesWithLocalStorage + } + + // Set property "SkipNodesWithSystemPods": + if profile.SkipNodesWithSystemPods != nil { + skipNodesWithSystemPods := *profile.SkipNodesWithSystemPods + result.SkipNodesWithSystemPods = &skipNodesWithSystemPods + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterProperties_AutoScalerProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterProperties_AutoScalerProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterProperties_AutoScalerProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterProperties_AutoScalerProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterProperties_AutoScalerProfile_ARM, got %T", armInput) + } + + // Set property "BalanceSimilarNodeGroups": + if typedInput.BalanceSimilarNodeGroups != nil { + balanceSimilarNodeGroups := *typedInput.BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = &balanceSimilarNodeGroups + } + + // Set property "Expander": + if typedInput.Expander != nil { + expander := *typedInput.Expander + profile.Expander = &expander + } + + // Set property "MaxEmptyBulkDelete": + if typedInput.MaxEmptyBulkDelete != nil { + maxEmptyBulkDelete := *typedInput.MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = &maxEmptyBulkDelete + } + + // Set property "MaxGracefulTerminationSec": + if typedInput.MaxGracefulTerminationSec != nil { + maxGracefulTerminationSec := *typedInput.MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = &maxGracefulTerminationSec + } + + // Set property "MaxNodeProvisionTime": + if typedInput.MaxNodeProvisionTime != nil { + maxNodeProvisionTime := *typedInput.MaxNodeProvisionTime + profile.MaxNodeProvisionTime = &maxNodeProvisionTime + } + + // Set property "MaxTotalUnreadyPercentage": + if typedInput.MaxTotalUnreadyPercentage != nil { + maxTotalUnreadyPercentage := *typedInput.MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = &maxTotalUnreadyPercentage + } + + // Set property "NewPodScaleUpDelay": + if typedInput.NewPodScaleUpDelay != nil { + newPodScaleUpDelay := *typedInput.NewPodScaleUpDelay + profile.NewPodScaleUpDelay = &newPodScaleUpDelay + } + + // Set property "OkTotalUnreadyCount": + if typedInput.OkTotalUnreadyCount != nil { + okTotalUnreadyCount := *typedInput.OkTotalUnreadyCount + profile.OkTotalUnreadyCount = &okTotalUnreadyCount + } + + // Set property "ScaleDownDelayAfterAdd": + if typedInput.ScaleDownDelayAfterAdd != nil { + scaleDownDelayAfterAdd := *typedInput.ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = &scaleDownDelayAfterAdd + } + + // Set property "ScaleDownDelayAfterDelete": + if typedInput.ScaleDownDelayAfterDelete != nil { + scaleDownDelayAfterDelete := *typedInput.ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = &scaleDownDelayAfterDelete + } + + // Set property "ScaleDownDelayAfterFailure": + if typedInput.ScaleDownDelayAfterFailure != nil { + scaleDownDelayAfterFailure := *typedInput.ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = &scaleDownDelayAfterFailure + } + + // Set property "ScaleDownUnneededTime": + if typedInput.ScaleDownUnneededTime != nil { + scaleDownUnneededTime := *typedInput.ScaleDownUnneededTime + profile.ScaleDownUnneededTime = &scaleDownUnneededTime + } + + // Set property "ScaleDownUnreadyTime": + if typedInput.ScaleDownUnreadyTime != nil { + scaleDownUnreadyTime := *typedInput.ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = &scaleDownUnreadyTime + } + + // Set property "ScaleDownUtilizationThreshold": + if typedInput.ScaleDownUtilizationThreshold != nil { + scaleDownUtilizationThreshold := *typedInput.ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = &scaleDownUtilizationThreshold + } + + // Set property "ScanInterval": + if typedInput.ScanInterval != nil { + scanInterval := *typedInput.ScanInterval + profile.ScanInterval = &scanInterval + } + + // Set property "SkipNodesWithLocalStorage": + if typedInput.SkipNodesWithLocalStorage != nil { + skipNodesWithLocalStorage := *typedInput.SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = &skipNodesWithLocalStorage + } + + // Set property "SkipNodesWithSystemPods": + if typedInput.SkipNodesWithSystemPods != nil { + skipNodesWithSystemPods := *typedInput.SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = &skipNodesWithSystemPods + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterProperties_AutoScalerProfile populates our ManagedClusterProperties_AutoScalerProfile from the provided source ManagedClusterProperties_AutoScalerProfile +func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(source *v20231001s.ManagedClusterProperties_AutoScalerProfile) error { + + // BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + + // Expander + if source.Expander != nil { + expander := ManagedClusterProperties_AutoScalerProfile_Expander(*source.Expander) + profile.Expander = &expander + } else { + profile.Expander = nil + } + + // MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + + // ScanInterval + profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + + // SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile populates the provided destination ManagedClusterProperties_AutoScalerProfile from our ManagedClusterProperties_AutoScalerProfile +func (profile *ManagedClusterProperties_AutoScalerProfile) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(destination *v20231001s.ManagedClusterProperties_AutoScalerProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BalanceSimilarNodeGroups + destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) + + // Expander + if profile.Expander != nil { + expander := string(*profile.Expander) + destination.Expander = &expander + } else { + destination.Expander = nil + } + + // MaxEmptyBulkDelete + destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) + + // ScanInterval + destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) + + // SkipNodesWithLocalStorage + destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS populates our ManagedClusterProperties_AutoScalerProfile from the provided source ManagedClusterProperties_AutoScalerProfile_STATUS +func (profile *ManagedClusterProperties_AutoScalerProfile) Initialize_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source *ManagedClusterProperties_AutoScalerProfile_STATUS) error { + + // BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + + // Expander + if source.Expander != nil { + expander := ManagedClusterProperties_AutoScalerProfile_Expander(*source.Expander) + profile.Expander = &expander + } else { + profile.Expander = nil + } + + // MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + + // ScanInterval + profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + + // SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + + // No error + return nil +} + +type ManagedClusterProperties_AutoScalerProfile_STATUS struct { + // BalanceSimilarNodeGroups: Valid values are 'true' and 'false' + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + + // Expander: If not specified, the default is 'random'. See + // [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more + // information. + Expander *ManagedClusterProperties_AutoScalerProfile_Expander_STATUS `json:"expander,omitempty"` + + // MaxEmptyBulkDelete: The default is 10. + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + + // MaxGracefulTerminationSec: The default is 600. + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + + // MaxNodeProvisionTime: The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + + // MaxTotalUnreadyPercentage: The default is 45. The maximum is 100 and the minimum is 0. + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + + // NewPodScaleUpDelay: For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler + // could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is + // '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc). + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + + // OkTotalUnreadyCount: This must be an integer. The default is 3. + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + + // ScaleDownDelayAfterAdd: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + + // ScaleDownDelayAfterDelete: The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of + // time other than minutes (m) is supported. + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + + // ScaleDownDelayAfterFailure: The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other + // than minutes (m) is supported. + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + + // ScaleDownUnneededTime: The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + + // ScaleDownUnreadyTime: The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than + // minutes (m) is supported. + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + + // ScaleDownUtilizationThreshold: The default is '0.5'. + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + + // ScanInterval: The default is '10'. Values must be an integer number of seconds. + ScanInterval *string `json:"scan-interval,omitempty"` + + // SkipNodesWithLocalStorage: The default is true. + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + + // SkipNodesWithSystemPods: The default is true. + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterProperties_AutoScalerProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterProperties_AutoScalerProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterProperties_AutoScalerProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "BalanceSimilarNodeGroups": + if typedInput.BalanceSimilarNodeGroups != nil { + balanceSimilarNodeGroups := *typedInput.BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = &balanceSimilarNodeGroups + } + + // Set property "Expander": + if typedInput.Expander != nil { + expander := *typedInput.Expander + profile.Expander = &expander + } + + // Set property "MaxEmptyBulkDelete": + if typedInput.MaxEmptyBulkDelete != nil { + maxEmptyBulkDelete := *typedInput.MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = &maxEmptyBulkDelete + } + + // Set property "MaxGracefulTerminationSec": + if typedInput.MaxGracefulTerminationSec != nil { + maxGracefulTerminationSec := *typedInput.MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = &maxGracefulTerminationSec + } + + // Set property "MaxNodeProvisionTime": + if typedInput.MaxNodeProvisionTime != nil { + maxNodeProvisionTime := *typedInput.MaxNodeProvisionTime + profile.MaxNodeProvisionTime = &maxNodeProvisionTime + } + + // Set property "MaxTotalUnreadyPercentage": + if typedInput.MaxTotalUnreadyPercentage != nil { + maxTotalUnreadyPercentage := *typedInput.MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = &maxTotalUnreadyPercentage + } + + // Set property "NewPodScaleUpDelay": + if typedInput.NewPodScaleUpDelay != nil { + newPodScaleUpDelay := *typedInput.NewPodScaleUpDelay + profile.NewPodScaleUpDelay = &newPodScaleUpDelay + } + + // Set property "OkTotalUnreadyCount": + if typedInput.OkTotalUnreadyCount != nil { + okTotalUnreadyCount := *typedInput.OkTotalUnreadyCount + profile.OkTotalUnreadyCount = &okTotalUnreadyCount + } + + // Set property "ScaleDownDelayAfterAdd": + if typedInput.ScaleDownDelayAfterAdd != nil { + scaleDownDelayAfterAdd := *typedInput.ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = &scaleDownDelayAfterAdd + } + + // Set property "ScaleDownDelayAfterDelete": + if typedInput.ScaleDownDelayAfterDelete != nil { + scaleDownDelayAfterDelete := *typedInput.ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = &scaleDownDelayAfterDelete + } + + // Set property "ScaleDownDelayAfterFailure": + if typedInput.ScaleDownDelayAfterFailure != nil { + scaleDownDelayAfterFailure := *typedInput.ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = &scaleDownDelayAfterFailure + } + + // Set property "ScaleDownUnneededTime": + if typedInput.ScaleDownUnneededTime != nil { + scaleDownUnneededTime := *typedInput.ScaleDownUnneededTime + profile.ScaleDownUnneededTime = &scaleDownUnneededTime + } + + // Set property "ScaleDownUnreadyTime": + if typedInput.ScaleDownUnreadyTime != nil { + scaleDownUnreadyTime := *typedInput.ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = &scaleDownUnreadyTime + } + + // Set property "ScaleDownUtilizationThreshold": + if typedInput.ScaleDownUtilizationThreshold != nil { + scaleDownUtilizationThreshold := *typedInput.ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = &scaleDownUtilizationThreshold + } + + // Set property "ScanInterval": + if typedInput.ScanInterval != nil { + scanInterval := *typedInput.ScanInterval + profile.ScanInterval = &scanInterval + } + + // Set property "SkipNodesWithLocalStorage": + if typedInput.SkipNodesWithLocalStorage != nil { + skipNodesWithLocalStorage := *typedInput.SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = &skipNodesWithLocalStorage + } + + // Set property "SkipNodesWithSystemPods": + if typedInput.SkipNodesWithSystemPods != nil { + skipNodesWithSystemPods := *typedInput.SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = &skipNodesWithSystemPods + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS populates our ManagedClusterProperties_AutoScalerProfile_STATUS from the provided source ManagedClusterProperties_AutoScalerProfile_STATUS +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(source *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error { + + // BalanceSimilarNodeGroups + profile.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(source.BalanceSimilarNodeGroups) + + // Expander + if source.Expander != nil { + expander := ManagedClusterProperties_AutoScalerProfile_Expander_STATUS(*source.Expander) + profile.Expander = &expander + } else { + profile.Expander = nil + } + + // MaxEmptyBulkDelete + profile.MaxEmptyBulkDelete = genruntime.ClonePointerToString(source.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + profile.MaxGracefulTerminationSec = genruntime.ClonePointerToString(source.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + profile.MaxNodeProvisionTime = genruntime.ClonePointerToString(source.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + profile.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(source.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + profile.NewPodScaleUpDelay = genruntime.ClonePointerToString(source.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + profile.OkTotalUnreadyCount = genruntime.ClonePointerToString(source.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + profile.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(source.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + profile.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(source.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + profile.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(source.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + profile.ScaleDownUnneededTime = genruntime.ClonePointerToString(source.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + profile.ScaleDownUnreadyTime = genruntime.ClonePointerToString(source.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + profile.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(source.ScaleDownUtilizationThreshold) + + // ScanInterval + profile.ScanInterval = genruntime.ClonePointerToString(source.ScanInterval) + + // SkipNodesWithLocalStorage + profile.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(source.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + profile.SkipNodesWithSystemPods = genruntime.ClonePointerToString(source.SkipNodesWithSystemPods) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS populates the provided destination ManagedClusterProperties_AutoScalerProfile_STATUS from our ManagedClusterProperties_AutoScalerProfile_STATUS +func (profile *ManagedClusterProperties_AutoScalerProfile_STATUS) AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(destination *v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BalanceSimilarNodeGroups + destination.BalanceSimilarNodeGroups = genruntime.ClonePointerToString(profile.BalanceSimilarNodeGroups) + + // Expander + if profile.Expander != nil { + expander := string(*profile.Expander) + destination.Expander = &expander + } else { + destination.Expander = nil + } + + // MaxEmptyBulkDelete + destination.MaxEmptyBulkDelete = genruntime.ClonePointerToString(profile.MaxEmptyBulkDelete) + + // MaxGracefulTerminationSec + destination.MaxGracefulTerminationSec = genruntime.ClonePointerToString(profile.MaxGracefulTerminationSec) + + // MaxNodeProvisionTime + destination.MaxNodeProvisionTime = genruntime.ClonePointerToString(profile.MaxNodeProvisionTime) + + // MaxTotalUnreadyPercentage + destination.MaxTotalUnreadyPercentage = genruntime.ClonePointerToString(profile.MaxTotalUnreadyPercentage) + + // NewPodScaleUpDelay + destination.NewPodScaleUpDelay = genruntime.ClonePointerToString(profile.NewPodScaleUpDelay) + + // OkTotalUnreadyCount + destination.OkTotalUnreadyCount = genruntime.ClonePointerToString(profile.OkTotalUnreadyCount) + + // ScaleDownDelayAfterAdd + destination.ScaleDownDelayAfterAdd = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterAdd) + + // ScaleDownDelayAfterDelete + destination.ScaleDownDelayAfterDelete = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterDelete) + + // ScaleDownDelayAfterFailure + destination.ScaleDownDelayAfterFailure = genruntime.ClonePointerToString(profile.ScaleDownDelayAfterFailure) + + // ScaleDownUnneededTime + destination.ScaleDownUnneededTime = genruntime.ClonePointerToString(profile.ScaleDownUnneededTime) + + // ScaleDownUnreadyTime + destination.ScaleDownUnreadyTime = genruntime.ClonePointerToString(profile.ScaleDownUnreadyTime) + + // ScaleDownUtilizationThreshold + destination.ScaleDownUtilizationThreshold = genruntime.ClonePointerToString(profile.ScaleDownUtilizationThreshold) + + // ScanInterval + destination.ScanInterval = genruntime.ClonePointerToString(profile.ScanInterval) + + // SkipNodesWithLocalStorage + destination.SkipNodesWithLocalStorage = genruntime.ClonePointerToString(profile.SkipNodesWithLocalStorage) + + // SkipNodesWithSystemPods + destination.SkipNodesWithSystemPods = genruntime.ClonePointerToString(profile.SkipNodesWithSystemPods) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"Disabled","Enabled"} +type ManagedClusterProperties_PublicNetworkAccess string + +const ( + ManagedClusterProperties_PublicNetworkAccess_Disabled = ManagedClusterProperties_PublicNetworkAccess("Disabled") + ManagedClusterProperties_PublicNetworkAccess_Enabled = ManagedClusterProperties_PublicNetworkAccess("Enabled") +) + +type ManagedClusterProperties_PublicNetworkAccess_STATUS string + +const ( + ManagedClusterProperties_PublicNetworkAccess_STATUS_Disabled = ManagedClusterProperties_PublicNetworkAccess_STATUS("Disabled") + ManagedClusterProperties_PublicNetworkAccess_STATUS_Enabled = ManagedClusterProperties_PublicNetworkAccess_STATUS("Enabled") +) + +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile struct { + // AzureKeyVaultKms: Azure Key Vault [key management + // service](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) settings for the security profile. + AzureKeyVaultKms *AzureKeyVaultKms `json:"azureKeyVaultKms,omitempty"` + + // Defender: Microsoft Defender settings for the security profile. + Defender *ManagedClusterSecurityProfileDefender `json:"defender,omitempty"` + + // ImageCleaner: Image Cleaner settings for the security profile. + ImageCleaner *ManagedClusterSecurityProfileImageCleaner `json:"imageCleaner,omitempty"` + + // WorkloadIdentity: Workload identity settings for the security profile. Workload identity enables Kubernetes applications + // to access Azure cloud resources securely with Azure AD. See https://aka.ms/aks/wi for more details. + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity `json:"workloadIdentity,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSecurityProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterSecurityProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterSecurityProfile_ARM{} + + // Set property "AzureKeyVaultKms": + if profile.AzureKeyVaultKms != nil { + azureKeyVaultKms_ARM, err := (*profile.AzureKeyVaultKms).ConvertToARM(resolved) + if err != nil { + return nil, err + } + azureKeyVaultKms := *azureKeyVaultKms_ARM.(*AzureKeyVaultKms_ARM) + result.AzureKeyVaultKms = &azureKeyVaultKms + } + + // Set property "Defender": + if profile.Defender != nil { + defender_ARM, err := (*profile.Defender).ConvertToARM(resolved) + if err != nil { + return nil, err + } + defender := *defender_ARM.(*ManagedClusterSecurityProfileDefender_ARM) + result.Defender = &defender + } + + // Set property "ImageCleaner": + if profile.ImageCleaner != nil { + imageCleaner_ARM, err := (*profile.ImageCleaner).ConvertToARM(resolved) + if err != nil { + return nil, err + } + imageCleaner := *imageCleaner_ARM.(*ManagedClusterSecurityProfileImageCleaner_ARM) + result.ImageCleaner = &imageCleaner + } + + // Set property "WorkloadIdentity": + if profile.WorkloadIdentity != nil { + workloadIdentity_ARM, err := (*profile.WorkloadIdentity).ConvertToARM(resolved) + if err != nil { + return nil, err + } + workloadIdentity := *workloadIdentity_ARM.(*ManagedClusterSecurityProfileWorkloadIdentity_ARM) + result.WorkloadIdentity = &workloadIdentity + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterSecurityProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterSecurityProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfile_ARM, got %T", armInput) + } + + // Set property "AzureKeyVaultKms": + if typedInput.AzureKeyVaultKms != nil { + var azureKeyVaultKms1 AzureKeyVaultKms + err := azureKeyVaultKms1.PopulateFromARM(owner, *typedInput.AzureKeyVaultKms) + if err != nil { + return err + } + azureKeyVaultKms := azureKeyVaultKms1 + profile.AzureKeyVaultKms = &azureKeyVaultKms + } + + // Set property "Defender": + if typedInput.Defender != nil { + var defender1 ManagedClusterSecurityProfileDefender + err := defender1.PopulateFromARM(owner, *typedInput.Defender) + if err != nil { + return err + } + defender := defender1 + profile.Defender = &defender + } + + // Set property "ImageCleaner": + if typedInput.ImageCleaner != nil { + var imageCleaner1 ManagedClusterSecurityProfileImageCleaner + err := imageCleaner1.PopulateFromARM(owner, *typedInput.ImageCleaner) + if err != nil { + return err + } + imageCleaner := imageCleaner1 + profile.ImageCleaner = &imageCleaner + } + + // Set property "WorkloadIdentity": + if typedInput.WorkloadIdentity != nil { + var workloadIdentity1 ManagedClusterSecurityProfileWorkloadIdentity + err := workloadIdentity1.PopulateFromARM(owner, *typedInput.WorkloadIdentity) + if err != nil { + return err + } + workloadIdentity := workloadIdentity1 + profile.WorkloadIdentity = &workloadIdentity + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfile populates our ManagedClusterSecurityProfile from the provided source ManagedClusterSecurityProfile +func (profile *ManagedClusterSecurityProfile) AssignProperties_From_ManagedClusterSecurityProfile(source *v20231001s.ManagedClusterSecurityProfile) error { + + // AzureKeyVaultKms + if source.AzureKeyVaultKms != nil { + var azureKeyVaultKm AzureKeyVaultKms + err := azureKeyVaultKm.AssignProperties_From_AzureKeyVaultKms(source.AzureKeyVaultKms) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AzureKeyVaultKms() to populate field AzureKeyVaultKms") + } + profile.AzureKeyVaultKms = &azureKeyVaultKm + } else { + profile.AzureKeyVaultKms = nil + } + + // Defender + if source.Defender != nil { + var defender ManagedClusterSecurityProfileDefender + err := defender.AssignProperties_From_ManagedClusterSecurityProfileDefender(source.Defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefender() to populate field Defender") + } + profile.Defender = &defender + } else { + profile.Defender = nil + } + + // ImageCleaner + if source.ImageCleaner != nil { + var imageCleaner ManagedClusterSecurityProfileImageCleaner + err := imageCleaner.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(source.ImageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileImageCleaner() to populate field ImageCleaner") + } + profile.ImageCleaner = &imageCleaner + } else { + profile.ImageCleaner = nil + } + + // WorkloadIdentity + if source.WorkloadIdentity != nil { + var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity + err := workloadIdentity.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(source.WorkloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity() to populate field WorkloadIdentity") + } + profile.WorkloadIdentity = &workloadIdentity + } else { + profile.WorkloadIdentity = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfile populates the provided destination ManagedClusterSecurityProfile from our ManagedClusterSecurityProfile +func (profile *ManagedClusterSecurityProfile) AssignProperties_To_ManagedClusterSecurityProfile(destination *v20231001s.ManagedClusterSecurityProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AzureKeyVaultKms + if profile.AzureKeyVaultKms != nil { + var azureKeyVaultKm v20231001s.AzureKeyVaultKms + err := profile.AzureKeyVaultKms.AssignProperties_To_AzureKeyVaultKms(&azureKeyVaultKm) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AzureKeyVaultKms() to populate field AzureKeyVaultKms") + } + destination.AzureKeyVaultKms = &azureKeyVaultKm + } else { + destination.AzureKeyVaultKms = nil + } + + // Defender + if profile.Defender != nil { + var defender v20231001s.ManagedClusterSecurityProfileDefender + err := profile.Defender.AssignProperties_To_ManagedClusterSecurityProfileDefender(&defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefender() to populate field Defender") + } + destination.Defender = &defender + } else { + destination.Defender = nil + } + + // ImageCleaner + if profile.ImageCleaner != nil { + var imageCleaner v20231001s.ManagedClusterSecurityProfileImageCleaner + err := profile.ImageCleaner.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(&imageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileImageCleaner() to populate field ImageCleaner") + } + destination.ImageCleaner = &imageCleaner + } else { + destination.ImageCleaner = nil + } + + // WorkloadIdentity + if profile.WorkloadIdentity != nil { + var workloadIdentity v20231001s.ManagedClusterSecurityProfileWorkloadIdentity + err := profile.WorkloadIdentity.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(&workloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity() to populate field WorkloadIdentity") + } + destination.WorkloadIdentity = &workloadIdentity + } else { + destination.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSecurityProfile_STATUS populates our ManagedClusterSecurityProfile from the provided source ManagedClusterSecurityProfile_STATUS +func (profile *ManagedClusterSecurityProfile) Initialize_From_ManagedClusterSecurityProfile_STATUS(source *ManagedClusterSecurityProfile_STATUS) error { + + // AzureKeyVaultKms + if source.AzureKeyVaultKms != nil { + var azureKeyVaultKm AzureKeyVaultKms + err := azureKeyVaultKm.Initialize_From_AzureKeyVaultKms_STATUS(source.AzureKeyVaultKms) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") + } + profile.AzureKeyVaultKms = &azureKeyVaultKm + } else { + profile.AzureKeyVaultKms = nil + } + + // Defender + if source.Defender != nil { + var defender ManagedClusterSecurityProfileDefender + err := defender.Initialize_From_ManagedClusterSecurityProfileDefender_STATUS(source.Defender) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") + } + profile.Defender = &defender + } else { + profile.Defender = nil + } + + // ImageCleaner + if source.ImageCleaner != nil { + var imageCleaner ManagedClusterSecurityProfileImageCleaner + err := imageCleaner.Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source.ImageCleaner) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") + } + profile.ImageCleaner = &imageCleaner + } else { + profile.ImageCleaner = nil + } + + // WorkloadIdentity + if source.WorkloadIdentity != nil { + var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity + err := workloadIdentity.Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source.WorkloadIdentity) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") + } + profile.WorkloadIdentity = &workloadIdentity + } else { + profile.WorkloadIdentity = nil + } + + // No error + return nil +} + +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile_STATUS struct { + // AzureKeyVaultKms: Azure Key Vault [key management + // service](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) settings for the security profile. + AzureKeyVaultKms *AzureKeyVaultKms_STATUS `json:"azureKeyVaultKms,omitempty"` + + // Defender: Microsoft Defender settings for the security profile. + Defender *ManagedClusterSecurityProfileDefender_STATUS `json:"defender,omitempty"` + + // ImageCleaner: Image Cleaner settings for the security profile. + ImageCleaner *ManagedClusterSecurityProfileImageCleaner_STATUS `json:"imageCleaner,omitempty"` + + // WorkloadIdentity: Workload identity settings for the security profile. Workload identity enables Kubernetes applications + // to access Azure cloud resources securely with Azure AD. See https://aka.ms/aks/wi for more details. + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS `json:"workloadIdentity,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSecurityProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterSecurityProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterSecurityProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AzureKeyVaultKms": + if typedInput.AzureKeyVaultKms != nil { + var azureKeyVaultKms1 AzureKeyVaultKms_STATUS + err := azureKeyVaultKms1.PopulateFromARM(owner, *typedInput.AzureKeyVaultKms) + if err != nil { + return err + } + azureKeyVaultKms := azureKeyVaultKms1 + profile.AzureKeyVaultKms = &azureKeyVaultKms + } + + // Set property "Defender": + if typedInput.Defender != nil { + var defender1 ManagedClusterSecurityProfileDefender_STATUS + err := defender1.PopulateFromARM(owner, *typedInput.Defender) + if err != nil { + return err + } + defender := defender1 + profile.Defender = &defender + } + + // Set property "ImageCleaner": + if typedInput.ImageCleaner != nil { + var imageCleaner1 ManagedClusterSecurityProfileImageCleaner_STATUS + err := imageCleaner1.PopulateFromARM(owner, *typedInput.ImageCleaner) + if err != nil { + return err + } + imageCleaner := imageCleaner1 + profile.ImageCleaner = &imageCleaner + } + + // Set property "WorkloadIdentity": + if typedInput.WorkloadIdentity != nil { + var workloadIdentity1 ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := workloadIdentity1.PopulateFromARM(owner, *typedInput.WorkloadIdentity) + if err != nil { + return err + } + workloadIdentity := workloadIdentity1 + profile.WorkloadIdentity = &workloadIdentity + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfile_STATUS populates our ManagedClusterSecurityProfile_STATUS from the provided source ManagedClusterSecurityProfile_STATUS +func (profile *ManagedClusterSecurityProfile_STATUS) AssignProperties_From_ManagedClusterSecurityProfile_STATUS(source *v20231001s.ManagedClusterSecurityProfile_STATUS) error { + + // AzureKeyVaultKms + if source.AzureKeyVaultKms != nil { + var azureKeyVaultKm AzureKeyVaultKms_STATUS + err := azureKeyVaultKm.AssignProperties_From_AzureKeyVaultKms_STATUS(source.AzureKeyVaultKms) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") + } + profile.AzureKeyVaultKms = &azureKeyVaultKm + } else { + profile.AzureKeyVaultKms = nil + } + + // Defender + if source.Defender != nil { + var defender ManagedClusterSecurityProfileDefender_STATUS + err := defender.AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(source.Defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") + } + profile.Defender = &defender + } else { + profile.Defender = nil + } + + // ImageCleaner + if source.ImageCleaner != nil { + var imageCleaner ManagedClusterSecurityProfileImageCleaner_STATUS + err := imageCleaner.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source.ImageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") + } + profile.ImageCleaner = &imageCleaner + } else { + profile.ImageCleaner = nil + } + + // WorkloadIdentity + if source.WorkloadIdentity != nil { + var workloadIdentity ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := workloadIdentity.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source.WorkloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") + } + profile.WorkloadIdentity = &workloadIdentity + } else { + profile.WorkloadIdentity = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfile_STATUS populates the provided destination ManagedClusterSecurityProfile_STATUS from our ManagedClusterSecurityProfile_STATUS +func (profile *ManagedClusterSecurityProfile_STATUS) AssignProperties_To_ManagedClusterSecurityProfile_STATUS(destination *v20231001s.ManagedClusterSecurityProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AzureKeyVaultKms + if profile.AzureKeyVaultKms != nil { + var azureKeyVaultKm v20231001s.AzureKeyVaultKms_STATUS + err := profile.AzureKeyVaultKms.AssignProperties_To_AzureKeyVaultKms_STATUS(&azureKeyVaultKm) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AzureKeyVaultKms_STATUS() to populate field AzureKeyVaultKms") + } + destination.AzureKeyVaultKms = &azureKeyVaultKm + } else { + destination.AzureKeyVaultKms = nil + } + + // Defender + if profile.Defender != nil { + var defender v20231001s.ManagedClusterSecurityProfileDefender_STATUS + err := profile.Defender.AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(&defender) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS() to populate field Defender") + } + destination.Defender = &defender + } else { + destination.Defender = nil + } + + // ImageCleaner + if profile.ImageCleaner != nil { + var imageCleaner v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS + err := profile.ImageCleaner.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(&imageCleaner) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS() to populate field ImageCleaner") + } + destination.ImageCleaner = &imageCleaner + } else { + destination.ImageCleaner = nil + } + + // WorkloadIdentity + if profile.WorkloadIdentity != nil { + var workloadIdentity v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := profile.WorkloadIdentity.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&workloadIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS() to populate field WorkloadIdentity") + } + destination.WorkloadIdentity = &workloadIdentity + } else { + destination.WorkloadIdentity = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile struct { + // +kubebuilder:validation:Required + // ClientId: The ID for the service principal. + ClientId *string `json:"clientId,omitempty"` + + // Secret: The secret password associated with the service principal in plain text. + Secret *genruntime.SecretReference `json:"secret,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterServicePrincipalProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterServicePrincipalProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterServicePrincipalProfile_ARM{} + + // Set property "ClientId": + if profile.ClientId != nil { + clientId := *profile.ClientId + result.ClientId = &clientId + } + + // Set property "Secret": + if profile.Secret != nil { + secretSecret, err := resolved.ResolvedSecrets.Lookup(*profile.Secret) + if err != nil { + return nil, errors.Wrap(err, "looking up secret for property Secret") + } + secret := secretSecret + result.Secret = &secret + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterServicePrincipalProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterServicePrincipalProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterServicePrincipalProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterServicePrincipalProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterServicePrincipalProfile_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + profile.ClientId = &clientId + } + + // no assignment for property "Secret" + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterServicePrincipalProfile populates our ManagedClusterServicePrincipalProfile from the provided source ManagedClusterServicePrincipalProfile +func (profile *ManagedClusterServicePrincipalProfile) AssignProperties_From_ManagedClusterServicePrincipalProfile(source *v20231001s.ManagedClusterServicePrincipalProfile) error { + + // ClientId + profile.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // Secret + if source.Secret != nil { + secret := source.Secret.Copy() + profile.Secret = &secret + } else { + profile.Secret = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterServicePrincipalProfile populates the provided destination ManagedClusterServicePrincipalProfile from our ManagedClusterServicePrincipalProfile +func (profile *ManagedClusterServicePrincipalProfile) AssignProperties_To_ManagedClusterServicePrincipalProfile(destination *v20231001s.ManagedClusterServicePrincipalProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(profile.ClientId) + + // Secret + if profile.Secret != nil { + secret := profile.Secret.Copy() + destination.Secret = &secret + } else { + destination.Secret = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterServicePrincipalProfile_STATUS populates our ManagedClusterServicePrincipalProfile from the provided source ManagedClusterServicePrincipalProfile_STATUS +func (profile *ManagedClusterServicePrincipalProfile) Initialize_From_ManagedClusterServicePrincipalProfile_STATUS(source *ManagedClusterServicePrincipalProfile_STATUS) error { + + // ClientId + profile.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // No error + return nil +} + +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile_STATUS struct { + // ClientId: The ID for the service principal. + ClientId *string `json:"clientId,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterServicePrincipalProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterServicePrincipalProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterServicePrincipalProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterServicePrincipalProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterServicePrincipalProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterServicePrincipalProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + profile.ClientId = &clientId + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS populates our ManagedClusterServicePrincipalProfile_STATUS from the provided source ManagedClusterServicePrincipalProfile_STATUS +func (profile *ManagedClusterServicePrincipalProfile_STATUS) AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(source *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error { + + // ClientId + profile.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS populates the provided destination ManagedClusterServicePrincipalProfile_STATUS from our ManagedClusterServicePrincipalProfile_STATUS +func (profile *ManagedClusterServicePrincipalProfile_STATUS) AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(destination *v20231001s.ManagedClusterServicePrincipalProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(profile.ClientId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The SKU of a Managed Cluster. +type ManagedClusterSKU struct { + // Name: The name of a managed cluster SKU. + Name *ManagedClusterSKU_Name `json:"name,omitempty"` + + // Tier: If not specified, the default is 'Free'. See [AKS Pricing + // Tier](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for more details. + Tier *ManagedClusterSKU_Tier `json:"tier,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSKU{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (clusterSKU *ManagedClusterSKU) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if clusterSKU == nil { + return nil, nil + } + result := &ManagedClusterSKU_ARM{} + + // Set property "Name": + if clusterSKU.Name != nil { + name := *clusterSKU.Name + result.Name = &name + } + + // Set property "Tier": + if clusterSKU.Tier != nil { + tier := *clusterSKU.Tier + result.Tier = &tier + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (clusterSKU *ManagedClusterSKU) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSKU_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (clusterSKU *ManagedClusterSKU) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSKU_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSKU_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + clusterSKU.Name = &name + } + + // Set property "Tier": + if typedInput.Tier != nil { + tier := *typedInput.Tier + clusterSKU.Tier = &tier + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSKU populates our ManagedClusterSKU from the provided source ManagedClusterSKU +func (clusterSKU *ManagedClusterSKU) AssignProperties_From_ManagedClusterSKU(source *v20231001s.ManagedClusterSKU) error { + + // Name + if source.Name != nil { + name := ManagedClusterSKU_Name(*source.Name) + clusterSKU.Name = &name + } else { + clusterSKU.Name = nil + } + + // Tier + if source.Tier != nil { + tier := ManagedClusterSKU_Tier(*source.Tier) + clusterSKU.Tier = &tier + } else { + clusterSKU.Tier = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSKU populates the provided destination ManagedClusterSKU from our ManagedClusterSKU +func (clusterSKU *ManagedClusterSKU) AssignProperties_To_ManagedClusterSKU(destination *v20231001s.ManagedClusterSKU) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + if clusterSKU.Name != nil { + name := string(*clusterSKU.Name) + destination.Name = &name + } else { + destination.Name = nil + } + + // Tier + if clusterSKU.Tier != nil { + tier := string(*clusterSKU.Tier) + destination.Tier = &tier + } else { + destination.Tier = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSKU_STATUS populates our ManagedClusterSKU from the provided source ManagedClusterSKU_STATUS +func (clusterSKU *ManagedClusterSKU) Initialize_From_ManagedClusterSKU_STATUS(source *ManagedClusterSKU_STATUS) error { + + // Name + if source.Name != nil { + name := ManagedClusterSKU_Name(*source.Name) + clusterSKU.Name = &name + } else { + clusterSKU.Name = nil + } + + // Tier + if source.Tier != nil { + tier := ManagedClusterSKU_Tier(*source.Tier) + clusterSKU.Tier = &tier + } else { + clusterSKU.Tier = nil + } + + // No error + return nil +} + +// The SKU of a Managed Cluster. +type ManagedClusterSKU_STATUS struct { + // Name: The name of a managed cluster SKU. + Name *ManagedClusterSKU_Name_STATUS `json:"name,omitempty"` + + // Tier: If not specified, the default is 'Free'. See [AKS Pricing + // Tier](https://learn.microsoft.com/azure/aks/free-standard-pricing-tiers) for more details. + Tier *ManagedClusterSKU_Tier_STATUS `json:"tier,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSKU_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (clusterSKU *ManagedClusterSKU_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSKU_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (clusterSKU *ManagedClusterSKU_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSKU_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSKU_STATUS_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + clusterSKU.Name = &name + } + + // Set property "Tier": + if typedInput.Tier != nil { + tier := *typedInput.Tier + clusterSKU.Tier = &tier + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSKU_STATUS populates our ManagedClusterSKU_STATUS from the provided source ManagedClusterSKU_STATUS +func (clusterSKU *ManagedClusterSKU_STATUS) AssignProperties_From_ManagedClusterSKU_STATUS(source *v20231001s.ManagedClusterSKU_STATUS) error { + + // Name + if source.Name != nil { + name := ManagedClusterSKU_Name_STATUS(*source.Name) + clusterSKU.Name = &name + } else { + clusterSKU.Name = nil + } + + // Tier + if source.Tier != nil { + tier := ManagedClusterSKU_Tier_STATUS(*source.Tier) + clusterSKU.Tier = &tier + } else { + clusterSKU.Tier = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSKU_STATUS populates the provided destination ManagedClusterSKU_STATUS from our ManagedClusterSKU_STATUS +func (clusterSKU *ManagedClusterSKU_STATUS) AssignProperties_To_ManagedClusterSKU_STATUS(destination *v20231001s.ManagedClusterSKU_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + if clusterSKU.Name != nil { + name := string(*clusterSKU.Name) + destination.Name = &name + } else { + destination.Name = nil + } + + // Tier + if clusterSKU.Tier != nil { + tier := string(*clusterSKU.Tier) + destination.Tier = &tier + } else { + destination.Tier = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile struct { + // BlobCSIDriver: AzureBlob CSI Driver settings for the storage profile. + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver `json:"blobCSIDriver,omitempty"` + + // DiskCSIDriver: AzureDisk CSI Driver settings for the storage profile. + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver `json:"diskCSIDriver,omitempty"` + + // FileCSIDriver: AzureFile CSI Driver settings for the storage profile. + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver `json:"fileCSIDriver,omitempty"` + + // SnapshotController: Snapshot Controller settings for the storage profile. + SnapshotController *ManagedClusterStorageProfileSnapshotController `json:"snapshotController,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterStorageProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterStorageProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterStorageProfile_ARM{} + + // Set property "BlobCSIDriver": + if profile.BlobCSIDriver != nil { + blobCSIDriver_ARM, err := (*profile.BlobCSIDriver).ConvertToARM(resolved) + if err != nil { + return nil, err + } + blobCSIDriver := *blobCSIDriver_ARM.(*ManagedClusterStorageProfileBlobCSIDriver_ARM) + result.BlobCSIDriver = &blobCSIDriver + } + + // Set property "DiskCSIDriver": + if profile.DiskCSIDriver != nil { + diskCSIDriver_ARM, err := (*profile.DiskCSIDriver).ConvertToARM(resolved) + if err != nil { + return nil, err + } + diskCSIDriver := *diskCSIDriver_ARM.(*ManagedClusterStorageProfileDiskCSIDriver_ARM) + result.DiskCSIDriver = &diskCSIDriver + } + + // Set property "FileCSIDriver": + if profile.FileCSIDriver != nil { + fileCSIDriver_ARM, err := (*profile.FileCSIDriver).ConvertToARM(resolved) + if err != nil { + return nil, err + } + fileCSIDriver := *fileCSIDriver_ARM.(*ManagedClusterStorageProfileFileCSIDriver_ARM) + result.FileCSIDriver = &fileCSIDriver + } + + // Set property "SnapshotController": + if profile.SnapshotController != nil { + snapshotController_ARM, err := (*profile.SnapshotController).ConvertToARM(resolved) + if err != nil { + return nil, err + } + snapshotController := *snapshotController_ARM.(*ManagedClusterStorageProfileSnapshotController_ARM) + result.SnapshotController = &snapshotController + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterStorageProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterStorageProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfile_ARM, got %T", armInput) + } + + // Set property "BlobCSIDriver": + if typedInput.BlobCSIDriver != nil { + var blobCSIDriver1 ManagedClusterStorageProfileBlobCSIDriver + err := blobCSIDriver1.PopulateFromARM(owner, *typedInput.BlobCSIDriver) + if err != nil { + return err + } + blobCSIDriver := blobCSIDriver1 + profile.BlobCSIDriver = &blobCSIDriver + } + + // Set property "DiskCSIDriver": + if typedInput.DiskCSIDriver != nil { + var diskCSIDriver1 ManagedClusterStorageProfileDiskCSIDriver + err := diskCSIDriver1.PopulateFromARM(owner, *typedInput.DiskCSIDriver) + if err != nil { + return err + } + diskCSIDriver := diskCSIDriver1 + profile.DiskCSIDriver = &diskCSIDriver + } + + // Set property "FileCSIDriver": + if typedInput.FileCSIDriver != nil { + var fileCSIDriver1 ManagedClusterStorageProfileFileCSIDriver + err := fileCSIDriver1.PopulateFromARM(owner, *typedInput.FileCSIDriver) + if err != nil { + return err + } + fileCSIDriver := fileCSIDriver1 + profile.FileCSIDriver = &fileCSIDriver + } + + // Set property "SnapshotController": + if typedInput.SnapshotController != nil { + var snapshotController1 ManagedClusterStorageProfileSnapshotController + err := snapshotController1.PopulateFromARM(owner, *typedInput.SnapshotController) + if err != nil { + return err + } + snapshotController := snapshotController1 + profile.SnapshotController = &snapshotController + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfile populates our ManagedClusterStorageProfile from the provided source ManagedClusterStorageProfile +func (profile *ManagedClusterStorageProfile) AssignProperties_From_ManagedClusterStorageProfile(source *v20231001s.ManagedClusterStorageProfile) error { + + // BlobCSIDriver + if source.BlobCSIDriver != nil { + var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver + err := blobCSIDriver.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(source.BlobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver() to populate field BlobCSIDriver") + } + profile.BlobCSIDriver = &blobCSIDriver + } else { + profile.BlobCSIDriver = nil + } + + // DiskCSIDriver + if source.DiskCSIDriver != nil { + var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver + err := diskCSIDriver.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(source.DiskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver() to populate field DiskCSIDriver") + } + profile.DiskCSIDriver = &diskCSIDriver + } else { + profile.DiskCSIDriver = nil + } + + // FileCSIDriver + if source.FileCSIDriver != nil { + var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver + err := fileCSIDriver.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(source.FileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver() to populate field FileCSIDriver") + } + profile.FileCSIDriver = &fileCSIDriver + } else { + profile.FileCSIDriver = nil + } + + // SnapshotController + if source.SnapshotController != nil { + var snapshotController ManagedClusterStorageProfileSnapshotController + err := snapshotController.AssignProperties_From_ManagedClusterStorageProfileSnapshotController(source.SnapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileSnapshotController() to populate field SnapshotController") + } + profile.SnapshotController = &snapshotController + } else { + profile.SnapshotController = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfile populates the provided destination ManagedClusterStorageProfile from our ManagedClusterStorageProfile +func (profile *ManagedClusterStorageProfile) AssignProperties_To_ManagedClusterStorageProfile(destination *v20231001s.ManagedClusterStorageProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BlobCSIDriver + if profile.BlobCSIDriver != nil { + var blobCSIDriver v20231001s.ManagedClusterStorageProfileBlobCSIDriver + err := profile.BlobCSIDriver.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(&blobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver() to populate field BlobCSIDriver") + } + destination.BlobCSIDriver = &blobCSIDriver + } else { + destination.BlobCSIDriver = nil + } + + // DiskCSIDriver + if profile.DiskCSIDriver != nil { + var diskCSIDriver v20231001s.ManagedClusterStorageProfileDiskCSIDriver + err := profile.DiskCSIDriver.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(&diskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver() to populate field DiskCSIDriver") + } + destination.DiskCSIDriver = &diskCSIDriver + } else { + destination.DiskCSIDriver = nil + } + + // FileCSIDriver + if profile.FileCSIDriver != nil { + var fileCSIDriver v20231001s.ManagedClusterStorageProfileFileCSIDriver + err := profile.FileCSIDriver.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(&fileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver() to populate field FileCSIDriver") + } + destination.FileCSIDriver = &fileCSIDriver + } else { + destination.FileCSIDriver = nil + } + + // SnapshotController + if profile.SnapshotController != nil { + var snapshotController v20231001s.ManagedClusterStorageProfileSnapshotController + err := profile.SnapshotController.AssignProperties_To_ManagedClusterStorageProfileSnapshotController(&snapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileSnapshotController() to populate field SnapshotController") + } + destination.SnapshotController = &snapshotController + } else { + destination.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterStorageProfile_STATUS populates our ManagedClusterStorageProfile from the provided source ManagedClusterStorageProfile_STATUS +func (profile *ManagedClusterStorageProfile) Initialize_From_ManagedClusterStorageProfile_STATUS(source *ManagedClusterStorageProfile_STATUS) error { + + // BlobCSIDriver + if source.BlobCSIDriver != nil { + var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver + err := blobCSIDriver.Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source.BlobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") + } + profile.BlobCSIDriver = &blobCSIDriver + } else { + profile.BlobCSIDriver = nil + } + + // DiskCSIDriver + if source.DiskCSIDriver != nil { + var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver + err := diskCSIDriver.Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source.DiskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") + } + profile.DiskCSIDriver = &diskCSIDriver + } else { + profile.DiskCSIDriver = nil + } + + // FileCSIDriver + if source.FileCSIDriver != nil { + var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver + err := fileCSIDriver.Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source.FileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") + } + profile.FileCSIDriver = &fileCSIDriver + } else { + profile.FileCSIDriver = nil + } + + // SnapshotController + if source.SnapshotController != nil { + var snapshotController ManagedClusterStorageProfileSnapshotController + err := snapshotController.Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS(source.SnapshotController) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") + } + profile.SnapshotController = &snapshotController + } else { + profile.SnapshotController = nil + } + + // No error + return nil +} + +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile_STATUS struct { + // BlobCSIDriver: AzureBlob CSI Driver settings for the storage profile. + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_STATUS `json:"blobCSIDriver,omitempty"` + + // DiskCSIDriver: AzureDisk CSI Driver settings for the storage profile. + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_STATUS `json:"diskCSIDriver,omitempty"` + + // FileCSIDriver: AzureFile CSI Driver settings for the storage profile. + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_STATUS `json:"fileCSIDriver,omitempty"` + + // SnapshotController: Snapshot Controller settings for the storage profile. + SnapshotController *ManagedClusterStorageProfileSnapshotController_STATUS `json:"snapshotController,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterStorageProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterStorageProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterStorageProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "BlobCSIDriver": + if typedInput.BlobCSIDriver != nil { + var blobCSIDriver1 ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := blobCSIDriver1.PopulateFromARM(owner, *typedInput.BlobCSIDriver) + if err != nil { + return err + } + blobCSIDriver := blobCSIDriver1 + profile.BlobCSIDriver = &blobCSIDriver + } + + // Set property "DiskCSIDriver": + if typedInput.DiskCSIDriver != nil { + var diskCSIDriver1 ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := diskCSIDriver1.PopulateFromARM(owner, *typedInput.DiskCSIDriver) + if err != nil { + return err + } + diskCSIDriver := diskCSIDriver1 + profile.DiskCSIDriver = &diskCSIDriver + } + + // Set property "FileCSIDriver": + if typedInput.FileCSIDriver != nil { + var fileCSIDriver1 ManagedClusterStorageProfileFileCSIDriver_STATUS + err := fileCSIDriver1.PopulateFromARM(owner, *typedInput.FileCSIDriver) + if err != nil { + return err + } + fileCSIDriver := fileCSIDriver1 + profile.FileCSIDriver = &fileCSIDriver + } + + // Set property "SnapshotController": + if typedInput.SnapshotController != nil { + var snapshotController1 ManagedClusterStorageProfileSnapshotController_STATUS + err := snapshotController1.PopulateFromARM(owner, *typedInput.SnapshotController) + if err != nil { + return err + } + snapshotController := snapshotController1 + profile.SnapshotController = &snapshotController + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfile_STATUS populates our ManagedClusterStorageProfile_STATUS from the provided source ManagedClusterStorageProfile_STATUS +func (profile *ManagedClusterStorageProfile_STATUS) AssignProperties_From_ManagedClusterStorageProfile_STATUS(source *v20231001s.ManagedClusterStorageProfile_STATUS) error { + + // BlobCSIDriver + if source.BlobCSIDriver != nil { + var blobCSIDriver ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := blobCSIDriver.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source.BlobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") + } + profile.BlobCSIDriver = &blobCSIDriver + } else { + profile.BlobCSIDriver = nil + } + + // DiskCSIDriver + if source.DiskCSIDriver != nil { + var diskCSIDriver ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := diskCSIDriver.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source.DiskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") + } + profile.DiskCSIDriver = &diskCSIDriver + } else { + profile.DiskCSIDriver = nil + } + + // FileCSIDriver + if source.FileCSIDriver != nil { + var fileCSIDriver ManagedClusterStorageProfileFileCSIDriver_STATUS + err := fileCSIDriver.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source.FileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") + } + profile.FileCSIDriver = &fileCSIDriver + } else { + profile.FileCSIDriver = nil + } + + // SnapshotController + if source.SnapshotController != nil { + var snapshotController ManagedClusterStorageProfileSnapshotController_STATUS + err := snapshotController.AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(source.SnapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") + } + profile.SnapshotController = &snapshotController + } else { + profile.SnapshotController = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfile_STATUS populates the provided destination ManagedClusterStorageProfile_STATUS from our ManagedClusterStorageProfile_STATUS +func (profile *ManagedClusterStorageProfile_STATUS) AssignProperties_To_ManagedClusterStorageProfile_STATUS(destination *v20231001s.ManagedClusterStorageProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BlobCSIDriver + if profile.BlobCSIDriver != nil { + var blobCSIDriver v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := profile.BlobCSIDriver.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&blobCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS() to populate field BlobCSIDriver") + } + destination.BlobCSIDriver = &blobCSIDriver + } else { + destination.BlobCSIDriver = nil + } + + // DiskCSIDriver + if profile.DiskCSIDriver != nil { + var diskCSIDriver v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := profile.DiskCSIDriver.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&diskCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS() to populate field DiskCSIDriver") + } + destination.DiskCSIDriver = &diskCSIDriver + } else { + destination.DiskCSIDriver = nil + } + + // FileCSIDriver + if profile.FileCSIDriver != nil { + var fileCSIDriver v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS + err := profile.FileCSIDriver.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(&fileCSIDriver) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS() to populate field FileCSIDriver") + } + destination.FileCSIDriver = &fileCSIDriver + } else { + destination.FileCSIDriver = nil + } + + // SnapshotController + if profile.SnapshotController != nil { + var snapshotController v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS + err := profile.SnapshotController.AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(&snapshotController) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS() to populate field SnapshotController") + } + destination.SnapshotController = &snapshotController + } else { + destination.SnapshotController = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile struct { + // AdminPassword: Specifies the password of the administrator account. + // Minimum-length: 8 characters + // Max-length: 123 characters + // Complexity requirements: 3 out of 4 conditions below need to be fulfilled + // Has lower characters + // Has upper characters + // Has a digit + // Has a special character (Regex match [\W_]) + // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", + // "Password22", "iloveyou!" + AdminPassword *string `json:"adminPassword,omitempty"` + + // +kubebuilder:validation:Required + // AdminUsername: Specifies the name of the administrator account. + // Restriction: Cannot end in "." + // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", + // "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", + // "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". + // Minimum-length: 1 character + // Max-length: 20 characters + AdminUsername *string `json:"adminUsername,omitempty"` + + // EnableCSIProxy: For more details on CSI proxy, see the [CSI proxy GitHub + // repo](https://github.com/kubernetes-csi/csi-proxy). + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + + // GmsaProfile: The Windows gMSA Profile in the Managed Cluster. + GmsaProfile *WindowsGmsaProfile `json:"gmsaProfile,omitempty"` + + // LicenseType: The license type to use for Windows VMs. See [Azure Hybrid User + // Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details. + LicenseType *ManagedClusterWindowsProfile_LicenseType `json:"licenseType,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterWindowsProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterWindowsProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterWindowsProfile_ARM{} + + // Set property "AdminPassword": + if profile.AdminPassword != nil { + adminPassword := *profile.AdminPassword + result.AdminPassword = &adminPassword + } + + // Set property "AdminUsername": + if profile.AdminUsername != nil { + adminUsername := *profile.AdminUsername + result.AdminUsername = &adminUsername + } + + // Set property "EnableCSIProxy": + if profile.EnableCSIProxy != nil { + enableCSIProxy := *profile.EnableCSIProxy + result.EnableCSIProxy = &enableCSIProxy + } + + // Set property "GmsaProfile": + if profile.GmsaProfile != nil { + gmsaProfile_ARM, err := (*profile.GmsaProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + gmsaProfile := *gmsaProfile_ARM.(*WindowsGmsaProfile_ARM) + result.GmsaProfile = &gmsaProfile + } + + // Set property "LicenseType": + if profile.LicenseType != nil { + licenseType := *profile.LicenseType + result.LicenseType = &licenseType + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterWindowsProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWindowsProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterWindowsProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWindowsProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWindowsProfile_ARM, got %T", armInput) + } + + // Set property "AdminPassword": + if typedInput.AdminPassword != nil { + adminPassword := *typedInput.AdminPassword + profile.AdminPassword = &adminPassword + } + + // Set property "AdminUsername": + if typedInput.AdminUsername != nil { + adminUsername := *typedInput.AdminUsername + profile.AdminUsername = &adminUsername + } + + // Set property "EnableCSIProxy": + if typedInput.EnableCSIProxy != nil { + enableCSIProxy := *typedInput.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } + + // Set property "GmsaProfile": + if typedInput.GmsaProfile != nil { + var gmsaProfile1 WindowsGmsaProfile + err := gmsaProfile1.PopulateFromARM(owner, *typedInput.GmsaProfile) + if err != nil { + return err + } + gmsaProfile := gmsaProfile1 + profile.GmsaProfile = &gmsaProfile + } + + // Set property "LicenseType": + if typedInput.LicenseType != nil { + licenseType := *typedInput.LicenseType + profile.LicenseType = &licenseType + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWindowsProfile populates our ManagedClusterWindowsProfile from the provided source ManagedClusterWindowsProfile +func (profile *ManagedClusterWindowsProfile) AssignProperties_From_ManagedClusterWindowsProfile(source *v20231001s.ManagedClusterWindowsProfile) error { + + // AdminPassword + profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // EnableCSIProxy + if source.EnableCSIProxy != nil { + enableCSIProxy := *source.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } else { + profile.EnableCSIProxy = nil + } + + // GmsaProfile + if source.GmsaProfile != nil { + var gmsaProfile WindowsGmsaProfile + err := gmsaProfile.AssignProperties_From_WindowsGmsaProfile(source.GmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_WindowsGmsaProfile() to populate field GmsaProfile") + } + profile.GmsaProfile = &gmsaProfile + } else { + profile.GmsaProfile = nil + } + + // LicenseType + if source.LicenseType != nil { + licenseType := ManagedClusterWindowsProfile_LicenseType(*source.LicenseType) + profile.LicenseType = &licenseType + } else { + profile.LicenseType = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWindowsProfile populates the provided destination ManagedClusterWindowsProfile from our ManagedClusterWindowsProfile +func (profile *ManagedClusterWindowsProfile) AssignProperties_To_ManagedClusterWindowsProfile(destination *v20231001s.ManagedClusterWindowsProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminPassword + destination.AdminPassword = genruntime.ClonePointerToString(profile.AdminPassword) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // EnableCSIProxy + if profile.EnableCSIProxy != nil { + enableCSIProxy := *profile.EnableCSIProxy + destination.EnableCSIProxy = &enableCSIProxy + } else { + destination.EnableCSIProxy = nil + } + + // GmsaProfile + if profile.GmsaProfile != nil { + var gmsaProfile v20231001s.WindowsGmsaProfile + err := profile.GmsaProfile.AssignProperties_To_WindowsGmsaProfile(&gmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_WindowsGmsaProfile() to populate field GmsaProfile") + } + destination.GmsaProfile = &gmsaProfile + } else { + destination.GmsaProfile = nil + } + + // LicenseType + if profile.LicenseType != nil { + licenseType := string(*profile.LicenseType) + destination.LicenseType = &licenseType + } else { + destination.LicenseType = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterWindowsProfile_STATUS populates our ManagedClusterWindowsProfile from the provided source ManagedClusterWindowsProfile_STATUS +func (profile *ManagedClusterWindowsProfile) Initialize_From_ManagedClusterWindowsProfile_STATUS(source *ManagedClusterWindowsProfile_STATUS) error { + + // AdminPassword + profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // EnableCSIProxy + if source.EnableCSIProxy != nil { + enableCSIProxy := *source.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } else { + profile.EnableCSIProxy = nil + } + + // GmsaProfile + if source.GmsaProfile != nil { + var gmsaProfile WindowsGmsaProfile + err := gmsaProfile.Initialize_From_WindowsGmsaProfile_STATUS(source.GmsaProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") + } + profile.GmsaProfile = &gmsaProfile + } else { + profile.GmsaProfile = nil + } + + // LicenseType + if source.LicenseType != nil { + licenseType := ManagedClusterWindowsProfile_LicenseType(*source.LicenseType) + profile.LicenseType = &licenseType + } else { + profile.LicenseType = nil + } + + // No error + return nil +} + +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile_STATUS struct { + // AdminPassword: Specifies the password of the administrator account. + // Minimum-length: 8 characters + // Max-length: 123 characters + // Complexity requirements: 3 out of 4 conditions below need to be fulfilled + // Has lower characters + // Has upper characters + // Has a digit + // Has a special character (Regex match [\W_]) + // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", + // "Password22", "iloveyou!" + AdminPassword *string `json:"adminPassword,omitempty"` + + // AdminUsername: Specifies the name of the administrator account. + // Restriction: Cannot end in "." + // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", + // "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", + // "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". + // Minimum-length: 1 character + // Max-length: 20 characters + AdminUsername *string `json:"adminUsername,omitempty"` + + // EnableCSIProxy: For more details on CSI proxy, see the [CSI proxy GitHub + // repo](https://github.com/kubernetes-csi/csi-proxy). + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + + // GmsaProfile: The Windows gMSA Profile in the Managed Cluster. + GmsaProfile *WindowsGmsaProfile_STATUS `json:"gmsaProfile,omitempty"` + + // LicenseType: The license type to use for Windows VMs. See [Azure Hybrid User + // Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details. + LicenseType *ManagedClusterWindowsProfile_LicenseType_STATUS `json:"licenseType,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterWindowsProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterWindowsProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWindowsProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterWindowsProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWindowsProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWindowsProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AdminPassword": + if typedInput.AdminPassword != nil { + adminPassword := *typedInput.AdminPassword + profile.AdminPassword = &adminPassword + } + + // Set property "AdminUsername": + if typedInput.AdminUsername != nil { + adminUsername := *typedInput.AdminUsername + profile.AdminUsername = &adminUsername + } + + // Set property "EnableCSIProxy": + if typedInput.EnableCSIProxy != nil { + enableCSIProxy := *typedInput.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } + + // Set property "GmsaProfile": + if typedInput.GmsaProfile != nil { + var gmsaProfile1 WindowsGmsaProfile_STATUS + err := gmsaProfile1.PopulateFromARM(owner, *typedInput.GmsaProfile) + if err != nil { + return err + } + gmsaProfile := gmsaProfile1 + profile.GmsaProfile = &gmsaProfile + } + + // Set property "LicenseType": + if typedInput.LicenseType != nil { + licenseType := *typedInput.LicenseType + profile.LicenseType = &licenseType + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWindowsProfile_STATUS populates our ManagedClusterWindowsProfile_STATUS from the provided source ManagedClusterWindowsProfile_STATUS +func (profile *ManagedClusterWindowsProfile_STATUS) AssignProperties_From_ManagedClusterWindowsProfile_STATUS(source *v20231001s.ManagedClusterWindowsProfile_STATUS) error { + + // AdminPassword + profile.AdminPassword = genruntime.ClonePointerToString(source.AdminPassword) + + // AdminUsername + profile.AdminUsername = genruntime.ClonePointerToString(source.AdminUsername) + + // EnableCSIProxy + if source.EnableCSIProxy != nil { + enableCSIProxy := *source.EnableCSIProxy + profile.EnableCSIProxy = &enableCSIProxy + } else { + profile.EnableCSIProxy = nil + } + + // GmsaProfile + if source.GmsaProfile != nil { + var gmsaProfile WindowsGmsaProfile_STATUS + err := gmsaProfile.AssignProperties_From_WindowsGmsaProfile_STATUS(source.GmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") + } + profile.GmsaProfile = &gmsaProfile + } else { + profile.GmsaProfile = nil + } + + // LicenseType + if source.LicenseType != nil { + licenseType := ManagedClusterWindowsProfile_LicenseType_STATUS(*source.LicenseType) + profile.LicenseType = &licenseType + } else { + profile.LicenseType = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWindowsProfile_STATUS populates the provided destination ManagedClusterWindowsProfile_STATUS from our ManagedClusterWindowsProfile_STATUS +func (profile *ManagedClusterWindowsProfile_STATUS) AssignProperties_To_ManagedClusterWindowsProfile_STATUS(destination *v20231001s.ManagedClusterWindowsProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminPassword + destination.AdminPassword = genruntime.ClonePointerToString(profile.AdminPassword) + + // AdminUsername + destination.AdminUsername = genruntime.ClonePointerToString(profile.AdminUsername) + + // EnableCSIProxy + if profile.EnableCSIProxy != nil { + enableCSIProxy := *profile.EnableCSIProxy + destination.EnableCSIProxy = &enableCSIProxy + } else { + destination.EnableCSIProxy = nil + } + + // GmsaProfile + if profile.GmsaProfile != nil { + var gmsaProfile v20231001s.WindowsGmsaProfile_STATUS + err := profile.GmsaProfile.AssignProperties_To_WindowsGmsaProfile_STATUS(&gmsaProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_WindowsGmsaProfile_STATUS() to populate field GmsaProfile") + } + destination.GmsaProfile = &gmsaProfile + } else { + destination.GmsaProfile = nil + } + + // LicenseType + if profile.LicenseType != nil { + licenseType := string(*profile.LicenseType) + destination.LicenseType = &licenseType + } else { + destination.LicenseType = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile struct { + // Keda: KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. + Keda *ManagedClusterWorkloadAutoScalerProfileKeda `json:"keda,omitempty"` + + // VerticalPodAutoscaler: VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler `json:"verticalPodAutoscaler,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterWorkloadAutoScalerProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterWorkloadAutoScalerProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterWorkloadAutoScalerProfile_ARM{} + + // Set property "Keda": + if profile.Keda != nil { + keda_ARM, err := (*profile.Keda).ConvertToARM(resolved) + if err != nil { + return nil, err + } + keda := *keda_ARM.(*ManagedClusterWorkloadAutoScalerProfileKeda_ARM) + result.Keda = &keda + } + + // Set property "VerticalPodAutoscaler": + if profile.VerticalPodAutoscaler != nil { + verticalPodAutoscaler_ARM, err := (*profile.VerticalPodAutoscaler).ConvertToARM(resolved) + if err != nil { + return nil, err + } + verticalPodAutoscaler := *verticalPodAutoscaler_ARM.(*ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) + result.VerticalPodAutoscaler = &verticalPodAutoscaler + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterWorkloadAutoScalerProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterWorkloadAutoScalerProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfile_ARM, got %T", armInput) + } + + // Set property "Keda": + if typedInput.Keda != nil { + var keda1 ManagedClusterWorkloadAutoScalerProfileKeda + err := keda1.PopulateFromARM(owner, *typedInput.Keda) + if err != nil { + return err + } + keda := keda1 + profile.Keda = &keda + } + + // Set property "VerticalPodAutoscaler": + if typedInput.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler1 ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := verticalPodAutoscaler1.PopulateFromARM(owner, *typedInput.VerticalPodAutoscaler) + if err != nil { + return err + } + verticalPodAutoscaler := verticalPodAutoscaler1 + profile.VerticalPodAutoscaler = &verticalPodAutoscaler + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile populates our ManagedClusterWorkloadAutoScalerProfile from the provided source ManagedClusterWorkloadAutoScalerProfile +func (profile *ManagedClusterWorkloadAutoScalerProfile) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(source *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error { + + // Keda + if source.Keda != nil { + var kedum ManagedClusterWorkloadAutoScalerProfileKeda + err := kedum.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(source.Keda) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda() to populate field Keda") + } + profile.Keda = &kedum + } else { + profile.Keda = nil + } + + // VerticalPodAutoscaler + if source.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := verticalPodAutoscaler.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(source.VerticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler() to populate field VerticalPodAutoscaler") + } + profile.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + profile.VerticalPodAutoscaler = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile populates the provided destination ManagedClusterWorkloadAutoScalerProfile from our ManagedClusterWorkloadAutoScalerProfile +func (profile *ManagedClusterWorkloadAutoScalerProfile) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Keda + if profile.Keda != nil { + var kedum v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda + err := profile.Keda.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(&kedum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda() to populate field Keda") + } + destination.Keda = &kedum + } else { + destination.Keda = nil + } + + // VerticalPodAutoscaler + if profile.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := profile.VerticalPodAutoscaler.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&verticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler() to populate field VerticalPodAutoscaler") + } + destination.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + destination.VerticalPodAutoscaler = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS populates our ManagedClusterWorkloadAutoScalerProfile from the provided source ManagedClusterWorkloadAutoScalerProfile_STATUS +func (profile *ManagedClusterWorkloadAutoScalerProfile) Initialize_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source *ManagedClusterWorkloadAutoScalerProfile_STATUS) error { + + // Keda + if source.Keda != nil { + var kedum ManagedClusterWorkloadAutoScalerProfileKeda + err := kedum.Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source.Keda) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") + } + profile.Keda = &kedum + } else { + profile.Keda = nil + } + + // VerticalPodAutoscaler + if source.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := verticalPodAutoscaler.Initialize_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source.VerticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS() to populate field VerticalPodAutoscaler") + } + profile.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + profile.VerticalPodAutoscaler = nil + } + + // No error + return nil +} + +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile_STATUS struct { + // Keda: KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. + Keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS `json:"keda,omitempty"` + + // VerticalPodAutoscaler: VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS `json:"verticalPodAutoscaler,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterWorkloadAutoScalerProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Keda": + if typedInput.Keda != nil { + var keda1 ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := keda1.PopulateFromARM(owner, *typedInput.Keda) + if err != nil { + return err + } + keda := keda1 + profile.Keda = &keda + } + + // Set property "VerticalPodAutoscaler": + if typedInput.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler1 ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := verticalPodAutoscaler1.PopulateFromARM(owner, *typedInput.VerticalPodAutoscaler) + if err != nil { + return err + } + verticalPodAutoscaler := verticalPodAutoscaler1 + profile.VerticalPodAutoscaler = &verticalPodAutoscaler + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS populates our ManagedClusterWorkloadAutoScalerProfile_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfile_STATUS +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error { + + // Keda + if source.Keda != nil { + var kedum ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := kedum.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source.Keda) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") + } + profile.Keda = &kedum + } else { + profile.Keda = nil + } + + // VerticalPodAutoscaler + if source.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := verticalPodAutoscaler.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source.VerticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS() to populate field VerticalPodAutoscaler") + } + profile.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + profile.VerticalPodAutoscaler = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfile_STATUS from our ManagedClusterWorkloadAutoScalerProfile_STATUS +func (profile *ManagedClusterWorkloadAutoScalerProfile_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Keda + if profile.Keda != nil { + var kedum v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := profile.Keda.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&kedum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS() to populate field Keda") + } + destination.Keda = &kedum + } else { + destination.Keda = nil + } + + // VerticalPodAutoscaler + if profile.VerticalPodAutoscaler != nil { + var verticalPodAutoscaler v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := profile.VerticalPodAutoscaler.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&verticalPodAutoscaler) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS() to populate field VerticalPodAutoscaler") + } + destination.VerticalPodAutoscaler = &verticalPodAutoscaler + } else { + destination.VerticalPodAutoscaler = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Describes the Power State of the cluster +type PowerState_STATUS struct { + // Code: Tells whether the cluster is Running or Stopped + Code *PowerState_Code_STATUS `json:"code,omitempty"` +} + +var _ genruntime.FromARMConverter = &PowerState_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (state *PowerState_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PowerState_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (state *PowerState_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PowerState_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PowerState_STATUS_ARM, got %T", armInput) + } + + // Set property "Code": + if typedInput.Code != nil { + code := *typedInput.Code + state.Code = &code + } + + // No error + return nil +} + +// AssignProperties_From_PowerState_STATUS populates our PowerState_STATUS from the provided source PowerState_STATUS +func (state *PowerState_STATUS) AssignProperties_From_PowerState_STATUS(source *v20231001s.PowerState_STATUS) error { + + // Code + if source.Code != nil { + code := PowerState_Code_STATUS(*source.Code) + state.Code = &code + } else { + state.Code = nil + } + + // No error + return nil +} + +// AssignProperties_To_PowerState_STATUS populates the provided destination PowerState_STATUS from our PowerState_STATUS +func (state *PowerState_STATUS) AssignProperties_To_PowerState_STATUS(destination *v20231001s.PowerState_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Code + if state.Code != nil { + code := string(*state.Code) + destination.Code = &code + } else { + destination.Code = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// A private link resource +type PrivateLinkResource struct { + // GroupId: The group ID of the resource. + GroupId *string `json:"groupId,omitempty"` + + // Name: The name of the private link resource. + Name *string `json:"name,omitempty"` + + // Reference: The ID of the private link resource. + Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` + + // RequiredMembers: The RequiredMembers of the resource + RequiredMembers []string `json:"requiredMembers,omitempty"` + + // Type: The resource type. + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ARMTransformer = &PrivateLinkResource{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (resource *PrivateLinkResource) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if resource == nil { + return nil, nil + } + result := &PrivateLinkResource_ARM{} + + // Set property "GroupId": + if resource.GroupId != nil { + groupId := *resource.GroupId + result.GroupId = &groupId + } + + // Set property "Id": + if resource.Reference != nil { + referenceARMID, err := resolved.ResolvedReferences.Lookup(*resource.Reference) + if err != nil { + return nil, err + } + reference := referenceARMID + result.Id = &reference + } + + // Set property "Name": + if resource.Name != nil { + name := *resource.Name + result.Name = &name + } + + // Set property "RequiredMembers": + for _, item := range resource.RequiredMembers { + result.RequiredMembers = append(result.RequiredMembers, item) + } + + // Set property "Type": + if resource.Type != nil { + typeVar := *resource.Type + result.Type = &typeVar + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (resource *PrivateLinkResource) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrivateLinkResource_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (resource *PrivateLinkResource) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrivateLinkResource_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrivateLinkResource_ARM, got %T", armInput) + } + + // Set property "GroupId": + if typedInput.GroupId != nil { + groupId := *typedInput.GroupId + resource.GroupId = &groupId + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + resource.Name = &name + } + + // no assignment for property "Reference" + + // Set property "RequiredMembers": + for _, item := range typedInput.RequiredMembers { + resource.RequiredMembers = append(resource.RequiredMembers, item) + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + resource.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_PrivateLinkResource populates our PrivateLinkResource from the provided source PrivateLinkResource +func (resource *PrivateLinkResource) AssignProperties_From_PrivateLinkResource(source *v20231001s.PrivateLinkResource) error { + + // GroupId + resource.GroupId = genruntime.ClonePointerToString(source.GroupId) + + // Name + resource.Name = genruntime.ClonePointerToString(source.Name) + + // Reference + if source.Reference != nil { + reference := source.Reference.Copy() + resource.Reference = &reference + } else { + resource.Reference = nil + } + + // RequiredMembers + resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + + // Type + resource.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_PrivateLinkResource populates the provided destination PrivateLinkResource from our PrivateLinkResource +func (resource *PrivateLinkResource) AssignProperties_To_PrivateLinkResource(destination *v20231001s.PrivateLinkResource) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // GroupId + destination.GroupId = genruntime.ClonePointerToString(resource.GroupId) + + // Name + destination.Name = genruntime.ClonePointerToString(resource.Name) + + // Reference + if resource.Reference != nil { + reference := resource.Reference.Copy() + destination.Reference = &reference + } else { + destination.Reference = nil + } + + // RequiredMembers + destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) + + // Type + destination.Type = genruntime.ClonePointerToString(resource.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PrivateLinkResource_STATUS populates our PrivateLinkResource from the provided source PrivateLinkResource_STATUS +func (resource *PrivateLinkResource) Initialize_From_PrivateLinkResource_STATUS(source *PrivateLinkResource_STATUS) error { + + // GroupId + resource.GroupId = genruntime.ClonePointerToString(source.GroupId) + + // Name + resource.Name = genruntime.ClonePointerToString(source.Name) + + // Reference + if source.Id != nil { + reference := genruntime.CreateResourceReferenceFromARMID(*source.Id) + resource.Reference = &reference + } else { + resource.Reference = nil + } + + // RequiredMembers + resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + + // Type + resource.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// A private link resource +type PrivateLinkResource_STATUS struct { + // GroupId: The group ID of the resource. + GroupId *string `json:"groupId,omitempty"` + + // Id: The ID of the private link resource. + Id *string `json:"id,omitempty"` + + // Name: The name of the private link resource. + Name *string `json:"name,omitempty"` + + // PrivateLinkServiceID: The private link service ID of the resource, this field is exposed only to NRP internally. + PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` + + // RequiredMembers: The RequiredMembers of the resource + RequiredMembers []string `json:"requiredMembers,omitempty"` + + // Type: The resource type. + Type *string `json:"type,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrivateLinkResource_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (resource *PrivateLinkResource_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrivateLinkResource_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (resource *PrivateLinkResource_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrivateLinkResource_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrivateLinkResource_STATUS_ARM, got %T", armInput) + } + + // Set property "GroupId": + if typedInput.GroupId != nil { + groupId := *typedInput.GroupId + resource.GroupId = &groupId + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + resource.Id = &id + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + resource.Name = &name + } + + // Set property "PrivateLinkServiceID": + if typedInput.PrivateLinkServiceID != nil { + privateLinkServiceID := *typedInput.PrivateLinkServiceID + resource.PrivateLinkServiceID = &privateLinkServiceID + } + + // Set property "RequiredMembers": + for _, item := range typedInput.RequiredMembers { + resource.RequiredMembers = append(resource.RequiredMembers, item) + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + resource.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_PrivateLinkResource_STATUS populates our PrivateLinkResource_STATUS from the provided source PrivateLinkResource_STATUS +func (resource *PrivateLinkResource_STATUS) AssignProperties_From_PrivateLinkResource_STATUS(source *v20231001s.PrivateLinkResource_STATUS) error { + + // GroupId + resource.GroupId = genruntime.ClonePointerToString(source.GroupId) + + // Id + resource.Id = genruntime.ClonePointerToString(source.Id) + + // Name + resource.Name = genruntime.ClonePointerToString(source.Name) + + // PrivateLinkServiceID + resource.PrivateLinkServiceID = genruntime.ClonePointerToString(source.PrivateLinkServiceID) + + // RequiredMembers + resource.RequiredMembers = genruntime.CloneSliceOfString(source.RequiredMembers) + + // Type + resource.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_PrivateLinkResource_STATUS populates the provided destination PrivateLinkResource_STATUS from our PrivateLinkResource_STATUS +func (resource *PrivateLinkResource_STATUS) AssignProperties_To_PrivateLinkResource_STATUS(destination *v20231001s.PrivateLinkResource_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // GroupId + destination.GroupId = genruntime.ClonePointerToString(resource.GroupId) + + // Id + destination.Id = genruntime.ClonePointerToString(resource.Id) + + // Name + destination.Name = genruntime.ClonePointerToString(resource.Name) + + // PrivateLinkServiceID + destination.PrivateLinkServiceID = genruntime.ClonePointerToString(resource.PrivateLinkServiceID) + + // RequiredMembers + destination.RequiredMembers = genruntime.CloneSliceOfString(resource.RequiredMembers) + + // Type + destination.Type = genruntime.ClonePointerToString(resource.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Service mesh profile for a managed cluster. +type ServiceMeshProfile struct { + // Istio: Istio service mesh configuration. + Istio *IstioServiceMesh `json:"istio,omitempty"` + + // +kubebuilder:validation:Required + // Mode: Mode of the service mesh. + Mode *ServiceMeshProfile_Mode `json:"mode,omitempty"` +} + +var _ genruntime.ARMTransformer = &ServiceMeshProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ServiceMeshProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ServiceMeshProfile_ARM{} + + // Set property "Istio": + if profile.Istio != nil { + istio_ARM, err := (*profile.Istio).ConvertToARM(resolved) + if err != nil { + return nil, err + } + istio := *istio_ARM.(*IstioServiceMesh_ARM) + result.Istio = &istio + } + + // Set property "Mode": + if profile.Mode != nil { + mode := *profile.Mode + result.Mode = &mode + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ServiceMeshProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ServiceMeshProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ServiceMeshProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ServiceMeshProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ServiceMeshProfile_ARM, got %T", armInput) + } + + // Set property "Istio": + if typedInput.Istio != nil { + var istio1 IstioServiceMesh + err := istio1.PopulateFromARM(owner, *typedInput.Istio) + if err != nil { + return err + } + istio := istio1 + profile.Istio = &istio + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + profile.Mode = &mode + } + + // No error + return nil +} + +// AssignProperties_From_ServiceMeshProfile populates our ServiceMeshProfile from the provided source ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_From_ServiceMeshProfile(source *v20231001s.ServiceMeshProfile) error { + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh + err := istio.AssignProperties_From_IstioServiceMesh(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + if source.Mode != nil { + mode := ServiceMeshProfile_Mode(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile populates the provided destination ServiceMeshProfile from our ServiceMeshProfile +func (profile *ServiceMeshProfile) AssignProperties_To_ServiceMeshProfile(destination *v20231001s.ServiceMeshProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Istio + if profile.Istio != nil { + var istio v20231001s.IstioServiceMesh + err := profile.Istio.AssignProperties_To_IstioServiceMesh(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + if profile.Mode != nil { + mode := string(*profile.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ServiceMeshProfile_STATUS populates our ServiceMeshProfile from the provided source ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile) Initialize_From_ServiceMeshProfile_STATUS(source *ServiceMeshProfile_STATUS) error { + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh + err := istio.Initialize_From_IstioServiceMesh_STATUS(source.Istio) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioServiceMesh_STATUS() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + if source.Mode != nil { + mode := ServiceMeshProfile_Mode(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // No error + return nil +} + +// Service mesh profile for a managed cluster. +type ServiceMeshProfile_STATUS struct { + // Istio: Istio service mesh configuration. + Istio *IstioServiceMesh_STATUS `json:"istio,omitempty"` + + // Mode: Mode of the service mesh. + Mode *ServiceMeshProfile_Mode_STATUS `json:"mode,omitempty"` +} + +var _ genruntime.FromARMConverter = &ServiceMeshProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ServiceMeshProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ServiceMeshProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ServiceMeshProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ServiceMeshProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ServiceMeshProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Istio": + if typedInput.Istio != nil { + var istio1 IstioServiceMesh_STATUS + err := istio1.PopulateFromARM(owner, *typedInput.Istio) + if err != nil { + return err + } + istio := istio1 + profile.Istio = &istio + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + profile.Mode = &mode + } + + // No error + return nil +} + +// AssignProperties_From_ServiceMeshProfile_STATUS populates our ServiceMeshProfile_STATUS from the provided source ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_From_ServiceMeshProfile_STATUS(source *v20231001s.ServiceMeshProfile_STATUS) error { + + // Istio + if source.Istio != nil { + var istio IstioServiceMesh_STATUS + err := istio.AssignProperties_From_IstioServiceMesh_STATUS(source.Istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioServiceMesh_STATUS() to populate field Istio") + } + profile.Istio = &istio + } else { + profile.Istio = nil + } + + // Mode + if source.Mode != nil { + mode := ServiceMeshProfile_Mode_STATUS(*source.Mode) + profile.Mode = &mode + } else { + profile.Mode = nil + } + + // No error + return nil +} + +// AssignProperties_To_ServiceMeshProfile_STATUS populates the provided destination ServiceMeshProfile_STATUS from our ServiceMeshProfile_STATUS +func (profile *ServiceMeshProfile_STATUS) AssignProperties_To_ServiceMeshProfile_STATUS(destination *v20231001s.ServiceMeshProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Istio + if profile.Istio != nil { + var istio v20231001s.IstioServiceMesh_STATUS + err := profile.Istio.AssignProperties_To_IstioServiceMesh_STATUS(&istio) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioServiceMesh_STATUS() to populate field Istio") + } + destination.Istio = &istio + } else { + destination.Istio = nil + } + + // Mode + if profile.Mode != nil { + mode := string(*profile.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS struct { + // CreatedAt: The timestamp of resource creation (UTC). + CreatedAt *string `json:"createdAt,omitempty"` + + // CreatedBy: The identity that created the resource. + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedByType: The type of identity that created the resource. + CreatedByType *SystemData_CreatedByType_STATUS `json:"createdByType,omitempty"` + + // LastModifiedAt: The timestamp of resource last modification (UTC) + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + + // LastModifiedBy: The identity that last modified the resource. + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + + // LastModifiedByType: The type of identity that last modified the resource. + LastModifiedByType *SystemData_LastModifiedByType_STATUS `json:"lastModifiedByType,omitempty"` +} + +var _ genruntime.FromARMConverter = &SystemData_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (data *SystemData_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &SystemData_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (data *SystemData_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(SystemData_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected SystemData_STATUS_ARM, got %T", armInput) + } + + // Set property "CreatedAt": + if typedInput.CreatedAt != nil { + createdAt := *typedInput.CreatedAt + data.CreatedAt = &createdAt + } + + // Set property "CreatedBy": + if typedInput.CreatedBy != nil { + createdBy := *typedInput.CreatedBy + data.CreatedBy = &createdBy + } + + // Set property "CreatedByType": + if typedInput.CreatedByType != nil { + createdByType := *typedInput.CreatedByType + data.CreatedByType = &createdByType + } + + // Set property "LastModifiedAt": + if typedInput.LastModifiedAt != nil { + lastModifiedAt := *typedInput.LastModifiedAt + data.LastModifiedAt = &lastModifiedAt + } + + // Set property "LastModifiedBy": + if typedInput.LastModifiedBy != nil { + lastModifiedBy := *typedInput.LastModifiedBy + data.LastModifiedBy = &lastModifiedBy + } + + // Set property "LastModifiedByType": + if typedInput.LastModifiedByType != nil { + lastModifiedByType := *typedInput.LastModifiedByType + data.LastModifiedByType = &lastModifiedByType + } + + // No error + return nil +} + +// AssignProperties_From_SystemData_STATUS populates our SystemData_STATUS from the provided source SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_From_SystemData_STATUS(source *v20231001s.SystemData_STATUS) error { + + // CreatedAt + data.CreatedAt = genruntime.ClonePointerToString(source.CreatedAt) + + // CreatedBy + data.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedByType + if source.CreatedByType != nil { + createdByType := SystemData_CreatedByType_STATUS(*source.CreatedByType) + data.CreatedByType = &createdByType + } else { + data.CreatedByType = nil + } + + // LastModifiedAt + data.LastModifiedAt = genruntime.ClonePointerToString(source.LastModifiedAt) + + // LastModifiedBy + data.LastModifiedBy = genruntime.ClonePointerToString(source.LastModifiedBy) + + // LastModifiedByType + if source.LastModifiedByType != nil { + lastModifiedByType := SystemData_LastModifiedByType_STATUS(*source.LastModifiedByType) + data.LastModifiedByType = &lastModifiedByType + } else { + data.LastModifiedByType = nil + } + + // No error + return nil +} + +// AssignProperties_To_SystemData_STATUS populates the provided destination SystemData_STATUS from our SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_To_SystemData_STATUS(destination *v20231001s.SystemData_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CreatedAt + destination.CreatedAt = genruntime.ClonePointerToString(data.CreatedAt) + + // CreatedBy + destination.CreatedBy = genruntime.ClonePointerToString(data.CreatedBy) + + // CreatedByType + if data.CreatedByType != nil { + createdByType := string(*data.CreatedByType) + destination.CreatedByType = &createdByType + } else { + destination.CreatedByType = nil + } + + // LastModifiedAt + destination.LastModifiedAt = genruntime.ClonePointerToString(data.LastModifiedAt) + + // LastModifiedBy + destination.LastModifiedBy = genruntime.ClonePointerToString(data.LastModifiedBy) + + // LastModifiedByType + if data.LastModifiedByType != nil { + lastModifiedByType := string(*data.LastModifiedByType) + destination.LastModifiedByType = &lastModifiedByType + } else { + destination.LastModifiedByType = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Details about a user assigned identity. +type UserAssignedIdentity struct { + // ClientId: The client ID of the user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // ObjectId: The object ID of the user assigned identity. + ObjectId *string `json:"objectId,omitempty"` + + // ResourceReference: The resource ID of the user assigned identity. + ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` +} + +var _ genruntime.ARMTransformer = &UserAssignedIdentity{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (identity *UserAssignedIdentity) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if identity == nil { + return nil, nil + } + result := &UserAssignedIdentity_ARM{} + + // Set property "ClientId": + if identity.ClientId != nil { + clientId := *identity.ClientId + result.ClientId = &clientId + } + + // Set property "ObjectId": + if identity.ObjectId != nil { + objectId := *identity.ObjectId + result.ObjectId = &objectId + } + + // Set property "ResourceId": + if identity.ResourceReference != nil { + resourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*identity.ResourceReference) + if err != nil { + return nil, err + } + resourceReference := resourceReferenceARMID + result.ResourceId = &resourceReference + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *UserAssignedIdentity) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &UserAssignedIdentity_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *UserAssignedIdentity) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(UserAssignedIdentity_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected UserAssignedIdentity_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + identity.ClientId = &clientId + } + + // Set property "ObjectId": + if typedInput.ObjectId != nil { + objectId := *typedInput.ObjectId + identity.ObjectId = &objectId + } + + // no assignment for property "ResourceReference" + + // No error + return nil +} + +// AssignProperties_From_UserAssignedIdentity populates our UserAssignedIdentity from the provided source UserAssignedIdentity +func (identity *UserAssignedIdentity) AssignProperties_From_UserAssignedIdentity(source *v20231001s.UserAssignedIdentity) error { + + // ClientId + identity.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // ObjectId + identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) + + // ResourceReference + if source.ResourceReference != nil { + resourceReference := source.ResourceReference.Copy() + identity.ResourceReference = &resourceReference + } else { + identity.ResourceReference = nil + } + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentity populates the provided destination UserAssignedIdentity from our UserAssignedIdentity +func (identity *UserAssignedIdentity) AssignProperties_To_UserAssignedIdentity(destination *v20231001s.UserAssignedIdentity) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identity.ClientId) + + // ObjectId + destination.ObjectId = genruntime.ClonePointerToString(identity.ObjectId) + + // ResourceReference + if identity.ResourceReference != nil { + resourceReference := identity.ResourceReference.Copy() + destination.ResourceReference = &resourceReference + } else { + destination.ResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_UserAssignedIdentity_STATUS populates our UserAssignedIdentity from the provided source UserAssignedIdentity_STATUS +func (identity *UserAssignedIdentity) Initialize_From_UserAssignedIdentity_STATUS(source *UserAssignedIdentity_STATUS) error { + + // ClientId + identity.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // ObjectId + identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) + + // ResourceReference + if source.ResourceId != nil { + resourceReference := genruntime.CreateResourceReferenceFromARMID(*source.ResourceId) + identity.ResourceReference = &resourceReference + } else { + identity.ResourceReference = nil + } + + // No error + return nil +} + +// Details about a user assigned identity. +type UserAssignedIdentity_STATUS struct { + // ClientId: The client ID of the user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // ObjectId: The object ID of the user assigned identity. + ObjectId *string `json:"objectId,omitempty"` + + // ResourceId: The resource ID of the user assigned identity. + ResourceId *string `json:"resourceId,omitempty"` +} + +var _ genruntime.FromARMConverter = &UserAssignedIdentity_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *UserAssignedIdentity_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &UserAssignedIdentity_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *UserAssignedIdentity_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(UserAssignedIdentity_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected UserAssignedIdentity_STATUS_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + identity.ClientId = &clientId + } + + // Set property "ObjectId": + if typedInput.ObjectId != nil { + objectId := *typedInput.ObjectId + identity.ObjectId = &objectId + } + + // Set property "ResourceId": + if typedInput.ResourceId != nil { + resourceId := *typedInput.ResourceId + identity.ResourceId = &resourceId + } + + // No error + return nil +} + +// AssignProperties_From_UserAssignedIdentity_STATUS populates our UserAssignedIdentity_STATUS from the provided source UserAssignedIdentity_STATUS +func (identity *UserAssignedIdentity_STATUS) AssignProperties_From_UserAssignedIdentity_STATUS(source *v20231001s.UserAssignedIdentity_STATUS) error { + + // ClientId + identity.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // ObjectId + identity.ObjectId = genruntime.ClonePointerToString(source.ObjectId) + + // ResourceId + identity.ResourceId = genruntime.ClonePointerToString(source.ResourceId) + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentity_STATUS populates the provided destination UserAssignedIdentity_STATUS from our UserAssignedIdentity_STATUS +func (identity *UserAssignedIdentity_STATUS) AssignProperties_To_UserAssignedIdentity_STATUS(destination *v20231001s.UserAssignedIdentity_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identity.ClientId) + + // ObjectId + destination.ObjectId = genruntime.ClonePointerToString(identity.ObjectId) + + // ResourceId + destination.ResourceId = genruntime.ClonePointerToString(identity.ResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms struct { + // Enabled: Whether to enable Azure Key Vault key management service. The default is false. + Enabled *bool `json:"enabled,omitempty"` + + // KeyId: Identifier of Azure Key Vault key. See [key identifier + // format](https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name) + // for more details. When Azure Key Vault key management service is enabled, this field is required and must be a valid key + // identifier. When Azure Key Vault key management service is disabled, leave the field empty. + KeyId *string `json:"keyId,omitempty"` + + // KeyVaultNetworkAccess: Network access of key vault. The possible values are `Public` and `Private`. `Public` means the + // key vault allows public access from all networks. `Private` means the key vault disables public access and enables + // private link. The default value is `Public`. + KeyVaultNetworkAccess *AzureKeyVaultKms_KeyVaultNetworkAccess `json:"keyVaultNetworkAccess,omitempty"` + + // KeyVaultResourceReference: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and + // must be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. + KeyVaultResourceReference *genruntime.ResourceReference `armReference:"KeyVaultResourceId" json:"keyVaultResourceReference,omitempty"` +} + +var _ genruntime.ARMTransformer = &AzureKeyVaultKms{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (vaultKms *AzureKeyVaultKms) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if vaultKms == nil { + return nil, nil + } + result := &AzureKeyVaultKms_ARM{} + + // Set property "Enabled": + if vaultKms.Enabled != nil { + enabled := *vaultKms.Enabled + result.Enabled = &enabled + } + + // Set property "KeyId": + if vaultKms.KeyId != nil { + keyId := *vaultKms.KeyId + result.KeyId = &keyId + } + + // Set property "KeyVaultNetworkAccess": + if vaultKms.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := *vaultKms.KeyVaultNetworkAccess + result.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } + + // Set property "KeyVaultResourceId": + if vaultKms.KeyVaultResourceReference != nil { + keyVaultResourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*vaultKms.KeyVaultResourceReference) + if err != nil { + return nil, err + } + keyVaultResourceReference := keyVaultResourceReferenceARMID + result.KeyVaultResourceId = &keyVaultResourceReference + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (vaultKms *AzureKeyVaultKms) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AzureKeyVaultKms_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (vaultKms *AzureKeyVaultKms) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AzureKeyVaultKms_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AzureKeyVaultKms_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + vaultKms.Enabled = &enabled + } + + // Set property "KeyId": + if typedInput.KeyId != nil { + keyId := *typedInput.KeyId + vaultKms.KeyId = &keyId + } + + // Set property "KeyVaultNetworkAccess": + if typedInput.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := *typedInput.KeyVaultNetworkAccess + vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } + + // no assignment for property "KeyVaultResourceReference" + + // No error + return nil +} + +// AssignProperties_From_AzureKeyVaultKms populates our AzureKeyVaultKms from the provided source AzureKeyVaultKms +func (vaultKms *AzureKeyVaultKms) AssignProperties_From_AzureKeyVaultKms(source *v20231001s.AzureKeyVaultKms) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + vaultKms.Enabled = &enabled + } else { + vaultKms.Enabled = nil + } + + // KeyId + vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) + + // KeyVaultNetworkAccess + if source.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := AzureKeyVaultKms_KeyVaultNetworkAccess(*source.KeyVaultNetworkAccess) + vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } else { + vaultKms.KeyVaultNetworkAccess = nil + } + + // KeyVaultResourceReference + if source.KeyVaultResourceReference != nil { + keyVaultResourceReference := source.KeyVaultResourceReference.Copy() + vaultKms.KeyVaultResourceReference = &keyVaultResourceReference + } else { + vaultKms.KeyVaultResourceReference = nil + } + + // No error + return nil +} + +// AssignProperties_To_AzureKeyVaultKms populates the provided destination AzureKeyVaultKms from our AzureKeyVaultKms +func (vaultKms *AzureKeyVaultKms) AssignProperties_To_AzureKeyVaultKms(destination *v20231001s.AzureKeyVaultKms) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if vaultKms.Enabled != nil { + enabled := *vaultKms.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KeyId + destination.KeyId = genruntime.ClonePointerToString(vaultKms.KeyId) + + // KeyVaultNetworkAccess + if vaultKms.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := string(*vaultKms.KeyVaultNetworkAccess) + destination.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } else { + destination.KeyVaultNetworkAccess = nil + } + + // KeyVaultResourceReference + if vaultKms.KeyVaultResourceReference != nil { + keyVaultResourceReference := vaultKms.KeyVaultResourceReference.Copy() + destination.KeyVaultResourceReference = &keyVaultResourceReference + } else { + destination.KeyVaultResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_AzureKeyVaultKms_STATUS populates our AzureKeyVaultKms from the provided source AzureKeyVaultKms_STATUS +func (vaultKms *AzureKeyVaultKms) Initialize_From_AzureKeyVaultKms_STATUS(source *AzureKeyVaultKms_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + vaultKms.Enabled = &enabled + } else { + vaultKms.Enabled = nil + } + + // KeyId + vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) + + // KeyVaultNetworkAccess + if source.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := AzureKeyVaultKms_KeyVaultNetworkAccess(*source.KeyVaultNetworkAccess) + vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } else { + vaultKms.KeyVaultNetworkAccess = nil + } + + // KeyVaultResourceReference + if source.KeyVaultResourceId != nil { + keyVaultResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.KeyVaultResourceId) + vaultKms.KeyVaultResourceReference = &keyVaultResourceReference + } else { + vaultKms.KeyVaultResourceReference = nil + } + + // No error + return nil +} + +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms_STATUS struct { + // Enabled: Whether to enable Azure Key Vault key management service. The default is false. + Enabled *bool `json:"enabled,omitempty"` + + // KeyId: Identifier of Azure Key Vault key. See [key identifier + // format](https://docs.microsoft.com/en-us/azure/key-vault/general/about-keys-secrets-certificates#vault-name-and-object-name) + // for more details. When Azure Key Vault key management service is enabled, this field is required and must be a valid key + // identifier. When Azure Key Vault key management service is disabled, leave the field empty. + KeyId *string `json:"keyId,omitempty"` + + // KeyVaultNetworkAccess: Network access of key vault. The possible values are `Public` and `Private`. `Public` means the + // key vault allows public access from all networks. `Private` means the key vault disables public access and enables + // private link. The default value is `Public`. + KeyVaultNetworkAccess *AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS `json:"keyVaultNetworkAccess,omitempty"` + + // KeyVaultResourceId: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and must + // be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. + KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` +} + +var _ genruntime.FromARMConverter = &AzureKeyVaultKms_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (vaultKms *AzureKeyVaultKms_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AzureKeyVaultKms_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (vaultKms *AzureKeyVaultKms_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AzureKeyVaultKms_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AzureKeyVaultKms_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + vaultKms.Enabled = &enabled + } + + // Set property "KeyId": + if typedInput.KeyId != nil { + keyId := *typedInput.KeyId + vaultKms.KeyId = &keyId + } + + // Set property "KeyVaultNetworkAccess": + if typedInput.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := *typedInput.KeyVaultNetworkAccess + vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } + + // Set property "KeyVaultResourceId": + if typedInput.KeyVaultResourceId != nil { + keyVaultResourceId := *typedInput.KeyVaultResourceId + vaultKms.KeyVaultResourceId = &keyVaultResourceId + } + + // No error + return nil +} + +// AssignProperties_From_AzureKeyVaultKms_STATUS populates our AzureKeyVaultKms_STATUS from the provided source AzureKeyVaultKms_STATUS +func (vaultKms *AzureKeyVaultKms_STATUS) AssignProperties_From_AzureKeyVaultKms_STATUS(source *v20231001s.AzureKeyVaultKms_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + vaultKms.Enabled = &enabled + } else { + vaultKms.Enabled = nil + } + + // KeyId + vaultKms.KeyId = genruntime.ClonePointerToString(source.KeyId) + + // KeyVaultNetworkAccess + if source.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS(*source.KeyVaultNetworkAccess) + vaultKms.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } else { + vaultKms.KeyVaultNetworkAccess = nil + } + + // KeyVaultResourceId + vaultKms.KeyVaultResourceId = genruntime.ClonePointerToString(source.KeyVaultResourceId) + + // No error + return nil +} + +// AssignProperties_To_AzureKeyVaultKms_STATUS populates the provided destination AzureKeyVaultKms_STATUS from our AzureKeyVaultKms_STATUS +func (vaultKms *AzureKeyVaultKms_STATUS) AssignProperties_To_AzureKeyVaultKms_STATUS(destination *v20231001s.AzureKeyVaultKms_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if vaultKms.Enabled != nil { + enabled := *vaultKms.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KeyId + destination.KeyId = genruntime.ClonePointerToString(vaultKms.KeyId) + + // KeyVaultNetworkAccess + if vaultKms.KeyVaultNetworkAccess != nil { + keyVaultNetworkAccess := string(*vaultKms.KeyVaultNetworkAccess) + destination.KeyVaultNetworkAccess = &keyVaultNetworkAccess + } else { + destination.KeyVaultNetworkAccess = nil + } + + // KeyVaultResourceId + destination.KeyVaultResourceId = genruntime.ClonePointerToString(vaultKms.KeyVaultResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"IPv4","IPv6"} +type ContainerServiceNetworkProfile_IpFamilies string + +const ( + ContainerServiceNetworkProfile_IpFamilies_IPv4 = ContainerServiceNetworkProfile_IpFamilies("IPv4") + ContainerServiceNetworkProfile_IpFamilies_IPv6 = ContainerServiceNetworkProfile_IpFamilies("IPv6") +) + +type ContainerServiceNetworkProfile_IpFamilies_STATUS string + +const ( + ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv4 = ContainerServiceNetworkProfile_IpFamilies_STATUS("IPv4") + ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv6 = ContainerServiceNetworkProfile_IpFamilies_STATUS("IPv6") +) + +// +kubebuilder:validation:Enum={"basic","standard"} +type ContainerServiceNetworkProfile_LoadBalancerSku string + +const ( + ContainerServiceNetworkProfile_LoadBalancerSku_Basic = ContainerServiceNetworkProfile_LoadBalancerSku("basic") + ContainerServiceNetworkProfile_LoadBalancerSku_Standard = ContainerServiceNetworkProfile_LoadBalancerSku("standard") +) + +type ContainerServiceNetworkProfile_LoadBalancerSku_STATUS string + +const ( + ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Basic = ContainerServiceNetworkProfile_LoadBalancerSku_STATUS("basic") + ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Standard = ContainerServiceNetworkProfile_LoadBalancerSku_STATUS("standard") +) + +// +kubebuilder:validation:Enum={"azure","cilium"} +type ContainerServiceNetworkProfile_NetworkDataplane string + +const ( + ContainerServiceNetworkProfile_NetworkDataplane_Azure = ContainerServiceNetworkProfile_NetworkDataplane("azure") + ContainerServiceNetworkProfile_NetworkDataplane_Cilium = ContainerServiceNetworkProfile_NetworkDataplane("cilium") +) + +type ContainerServiceNetworkProfile_NetworkDataplane_STATUS string + +const ( + ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Azure = ContainerServiceNetworkProfile_NetworkDataplane_STATUS("azure") + ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Cilium = ContainerServiceNetworkProfile_NetworkDataplane_STATUS("cilium") +) + +// +kubebuilder:validation:Enum={"bridge","transparent"} +type ContainerServiceNetworkProfile_NetworkMode string + +const ( + ContainerServiceNetworkProfile_NetworkMode_Bridge = ContainerServiceNetworkProfile_NetworkMode("bridge") + ContainerServiceNetworkProfile_NetworkMode_Transparent = ContainerServiceNetworkProfile_NetworkMode("transparent") +) + +type ContainerServiceNetworkProfile_NetworkMode_STATUS string + +const ( + ContainerServiceNetworkProfile_NetworkMode_STATUS_Bridge = ContainerServiceNetworkProfile_NetworkMode_STATUS("bridge") + ContainerServiceNetworkProfile_NetworkMode_STATUS_Transparent = ContainerServiceNetworkProfile_NetworkMode_STATUS("transparent") +) + +type ContainerServiceNetworkProfile_NetworkPlugin_STATUS string + +const ( + ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Azure = ContainerServiceNetworkProfile_NetworkPlugin_STATUS("azure") + ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Kubenet = ContainerServiceNetworkProfile_NetworkPlugin_STATUS("kubenet") + ContainerServiceNetworkProfile_NetworkPlugin_STATUS_None = ContainerServiceNetworkProfile_NetworkPlugin_STATUS("none") +) + +// +kubebuilder:validation:Enum={"overlay"} +type ContainerServiceNetworkProfile_NetworkPluginMode string + +const ContainerServiceNetworkProfile_NetworkPluginMode_Overlay = ContainerServiceNetworkProfile_NetworkPluginMode("overlay") + +type ContainerServiceNetworkProfile_NetworkPluginMode_STATUS string + +const ContainerServiceNetworkProfile_NetworkPluginMode_STATUS_Overlay = ContainerServiceNetworkProfile_NetworkPluginMode_STATUS("overlay") + +// +kubebuilder:validation:Enum={"azure","calico","cilium"} +type ContainerServiceNetworkProfile_NetworkPolicy string + +const ( + ContainerServiceNetworkProfile_NetworkPolicy_Azure = ContainerServiceNetworkProfile_NetworkPolicy("azure") + ContainerServiceNetworkProfile_NetworkPolicy_Calico = ContainerServiceNetworkProfile_NetworkPolicy("calico") + ContainerServiceNetworkProfile_NetworkPolicy_Cilium = ContainerServiceNetworkProfile_NetworkPolicy("cilium") +) + +type ContainerServiceNetworkProfile_NetworkPolicy_STATUS string + +const ( + ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Azure = ContainerServiceNetworkProfile_NetworkPolicy_STATUS("azure") + ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Calico = ContainerServiceNetworkProfile_NetworkPolicy_STATUS("calico") + ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Cilium = ContainerServiceNetworkProfile_NetworkPolicy_STATUS("cilium") +) + +// +kubebuilder:validation:Enum={"loadBalancer","managedNATGateway","userAssignedNATGateway","userDefinedRouting"} +type ContainerServiceNetworkProfile_OutboundType string + +const ( + ContainerServiceNetworkProfile_OutboundType_LoadBalancer = ContainerServiceNetworkProfile_OutboundType("loadBalancer") + ContainerServiceNetworkProfile_OutboundType_ManagedNATGateway = ContainerServiceNetworkProfile_OutboundType("managedNATGateway") + ContainerServiceNetworkProfile_OutboundType_UserAssignedNATGateway = ContainerServiceNetworkProfile_OutboundType("userAssignedNATGateway") + ContainerServiceNetworkProfile_OutboundType_UserDefinedRouting = ContainerServiceNetworkProfile_OutboundType("userDefinedRouting") +) + +type ContainerServiceNetworkProfile_OutboundType_STATUS string + +const ( + ContainerServiceNetworkProfile_OutboundType_STATUS_LoadBalancer = ContainerServiceNetworkProfile_OutboundType_STATUS("loadBalancer") + ContainerServiceNetworkProfile_OutboundType_STATUS_ManagedNATGateway = ContainerServiceNetworkProfile_OutboundType_STATUS("managedNATGateway") + ContainerServiceNetworkProfile_OutboundType_STATUS_UserAssignedNATGateway = ContainerServiceNetworkProfile_OutboundType_STATUS("userAssignedNATGateway") + ContainerServiceNetworkProfile_OutboundType_STATUS_UserDefinedRouting = ContainerServiceNetworkProfile_OutboundType_STATUS("userDefinedRouting") +) + +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration struct { + // +kubebuilder:validation:Required + // PublicKeys: The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified. + PublicKeys []ContainerServiceSshPublicKey `json:"publicKeys,omitempty"` +} + +var _ genruntime.ARMTransformer = &ContainerServiceSshConfiguration{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (configuration *ContainerServiceSshConfiguration) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if configuration == nil { + return nil, nil + } + result := &ContainerServiceSshConfiguration_ARM{} + + // Set property "PublicKeys": + for _, item := range configuration.PublicKeys { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.PublicKeys = append(result.PublicKeys, *item_ARM.(*ContainerServiceSshPublicKey_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *ContainerServiceSshConfiguration) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceSshConfiguration_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *ContainerServiceSshConfiguration) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceSshConfiguration_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceSshConfiguration_ARM, got %T", armInput) + } + + // Set property "PublicKeys": + for _, item := range typedInput.PublicKeys { + var item1 ContainerServiceSshPublicKey + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + configuration.PublicKeys = append(configuration.PublicKeys, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceSshConfiguration populates our ContainerServiceSshConfiguration from the provided source ContainerServiceSshConfiguration +func (configuration *ContainerServiceSshConfiguration) AssignProperties_From_ContainerServiceSshConfiguration(source *v20231001s.ContainerServiceSshConfiguration) error { + + // PublicKeys + if source.PublicKeys != nil { + publicKeyList := make([]ContainerServiceSshPublicKey, len(source.PublicKeys)) + for publicKeyIndex, publicKeyItem := range source.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey ContainerServiceSshPublicKey + err := publicKey.AssignProperties_From_ContainerServiceSshPublicKey(&publicKeyItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshPublicKey() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + configuration.PublicKeys = publicKeyList + } else { + configuration.PublicKeys = nil + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshConfiguration populates the provided destination ContainerServiceSshConfiguration from our ContainerServiceSshConfiguration +func (configuration *ContainerServiceSshConfiguration) AssignProperties_To_ContainerServiceSshConfiguration(destination *v20231001s.ContainerServiceSshConfiguration) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicKeys + if configuration.PublicKeys != nil { + publicKeyList := make([]v20231001s.ContainerServiceSshPublicKey, len(configuration.PublicKeys)) + for publicKeyIndex, publicKeyItem := range configuration.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey v20231001s.ContainerServiceSshPublicKey + err := publicKeyItem.AssignProperties_To_ContainerServiceSshPublicKey(&publicKey) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshPublicKey() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + destination.PublicKeys = publicKeyList + } else { + destination.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ContainerServiceSshConfiguration_STATUS populates our ContainerServiceSshConfiguration from the provided source ContainerServiceSshConfiguration_STATUS +func (configuration *ContainerServiceSshConfiguration) Initialize_From_ContainerServiceSshConfiguration_STATUS(source *ContainerServiceSshConfiguration_STATUS) error { + + // PublicKeys + if source.PublicKeys != nil { + publicKeyList := make([]ContainerServiceSshPublicKey, len(source.PublicKeys)) + for publicKeyIndex, publicKeyItem := range source.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey ContainerServiceSshPublicKey + err := publicKey.Initialize_From_ContainerServiceSshPublicKey_STATUS(&publicKeyItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + configuration.PublicKeys = publicKeyList + } else { + configuration.PublicKeys = nil + } + + // No error + return nil +} + +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration_STATUS struct { + // PublicKeys: The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified. + PublicKeys []ContainerServiceSshPublicKey_STATUS `json:"publicKeys,omitempty"` +} + +var _ genruntime.FromARMConverter = &ContainerServiceSshConfiguration_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *ContainerServiceSshConfiguration_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceSshConfiguration_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *ContainerServiceSshConfiguration_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceSshConfiguration_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceSshConfiguration_STATUS_ARM, got %T", armInput) + } + + // Set property "PublicKeys": + for _, item := range typedInput.PublicKeys { + var item1 ContainerServiceSshPublicKey_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + configuration.PublicKeys = append(configuration.PublicKeys, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceSshConfiguration_STATUS populates our ContainerServiceSshConfiguration_STATUS from the provided source ContainerServiceSshConfiguration_STATUS +func (configuration *ContainerServiceSshConfiguration_STATUS) AssignProperties_From_ContainerServiceSshConfiguration_STATUS(source *v20231001s.ContainerServiceSshConfiguration_STATUS) error { + + // PublicKeys + if source.PublicKeys != nil { + publicKeyList := make([]ContainerServiceSshPublicKey_STATUS, len(source.PublicKeys)) + for publicKeyIndex, publicKeyItem := range source.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey ContainerServiceSshPublicKey_STATUS + err := publicKey.AssignProperties_From_ContainerServiceSshPublicKey_STATUS(&publicKeyItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + configuration.PublicKeys = publicKeyList + } else { + configuration.PublicKeys = nil + } + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshConfiguration_STATUS populates the provided destination ContainerServiceSshConfiguration_STATUS from our ContainerServiceSshConfiguration_STATUS +func (configuration *ContainerServiceSshConfiguration_STATUS) AssignProperties_To_ContainerServiceSshConfiguration_STATUS(destination *v20231001s.ContainerServiceSshConfiguration_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicKeys + if configuration.PublicKeys != nil { + publicKeyList := make([]v20231001s.ContainerServiceSshPublicKey_STATUS, len(configuration.PublicKeys)) + for publicKeyIndex, publicKeyItem := range configuration.PublicKeys { + // Shadow the loop variable to avoid aliasing + publicKeyItem := publicKeyItem + var publicKey v20231001s.ContainerServiceSshPublicKey_STATUS + err := publicKeyItem.AssignProperties_To_ContainerServiceSshPublicKey_STATUS(&publicKey) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ContainerServiceSshPublicKey_STATUS() to populate field PublicKeys") + } + publicKeyList[publicKeyIndex] = publicKey + } + destination.PublicKeys = publicKeyList + } else { + destination.PublicKeys = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Delegated resource properties - internal use only. +type DelegatedResource struct { + // Location: The source resource location - internal use only. + Location *string `json:"location,omitempty"` + + // ReferralResource: The delegation id of the referral delegation (optional) - internal use only. + ReferralResource *string `json:"referralResource,omitempty"` + + // ResourceReference: The ARM resource id of the delegated resource - internal use only. + ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` + + // +kubebuilder:validation:Pattern="^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" + // TenantId: The tenant id of the delegated resource - internal use only. + TenantId *string `json:"tenantId,omitempty"` +} + +var _ genruntime.ARMTransformer = &DelegatedResource{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (resource *DelegatedResource) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if resource == nil { + return nil, nil + } + result := &DelegatedResource_ARM{} + + // Set property "Location": + if resource.Location != nil { + location := *resource.Location + result.Location = &location + } + + // Set property "ReferralResource": + if resource.ReferralResource != nil { + referralResource := *resource.ReferralResource + result.ReferralResource = &referralResource + } + + // Set property "ResourceId": + if resource.ResourceReference != nil { + resourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*resource.ResourceReference) + if err != nil { + return nil, err + } + resourceReference := resourceReferenceARMID + result.ResourceId = &resourceReference + } + + // Set property "TenantId": + if resource.TenantId != nil { + tenantId := *resource.TenantId + result.TenantId = &tenantId + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (resource *DelegatedResource) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &DelegatedResource_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (resource *DelegatedResource) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(DelegatedResource_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected DelegatedResource_ARM, got %T", armInput) + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + resource.Location = &location + } + + // Set property "ReferralResource": + if typedInput.ReferralResource != nil { + referralResource := *typedInput.ReferralResource + resource.ReferralResource = &referralResource + } + + // no assignment for property "ResourceReference" + + // Set property "TenantId": + if typedInput.TenantId != nil { + tenantId := *typedInput.TenantId + resource.TenantId = &tenantId + } + + // No error + return nil +} + +// AssignProperties_From_DelegatedResource populates our DelegatedResource from the provided source DelegatedResource +func (resource *DelegatedResource) AssignProperties_From_DelegatedResource(source *v20231001s.DelegatedResource) error { + + // Location + resource.Location = genruntime.ClonePointerToString(source.Location) + + // ReferralResource + resource.ReferralResource = genruntime.ClonePointerToString(source.ReferralResource) + + // ResourceReference + if source.ResourceReference != nil { + resourceReference := source.ResourceReference.Copy() + resource.ResourceReference = &resourceReference + } else { + resource.ResourceReference = nil + } + + // TenantId + if source.TenantId != nil { + tenantId := *source.TenantId + resource.TenantId = &tenantId + } else { + resource.TenantId = nil + } + + // No error + return nil +} + +// AssignProperties_To_DelegatedResource populates the provided destination DelegatedResource from our DelegatedResource +func (resource *DelegatedResource) AssignProperties_To_DelegatedResource(destination *v20231001s.DelegatedResource) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Location + destination.Location = genruntime.ClonePointerToString(resource.Location) + + // ReferralResource + destination.ReferralResource = genruntime.ClonePointerToString(resource.ReferralResource) + + // ResourceReference + if resource.ResourceReference != nil { + resourceReference := resource.ResourceReference.Copy() + destination.ResourceReference = &resourceReference + } else { + destination.ResourceReference = nil + } + + // TenantId + if resource.TenantId != nil { + tenantId := *resource.TenantId + destination.TenantId = &tenantId + } else { + destination.TenantId = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_DelegatedResource_STATUS populates our DelegatedResource from the provided source DelegatedResource_STATUS +func (resource *DelegatedResource) Initialize_From_DelegatedResource_STATUS(source *DelegatedResource_STATUS) error { + + // Location + resource.Location = genruntime.ClonePointerToString(source.Location) + + // ReferralResource + resource.ReferralResource = genruntime.ClonePointerToString(source.ReferralResource) + + // ResourceReference + if source.ResourceId != nil { + resourceReference := genruntime.CreateResourceReferenceFromARMID(*source.ResourceId) + resource.ResourceReference = &resourceReference + } else { + resource.ResourceReference = nil + } + + // TenantId + if source.TenantId != nil { + tenantId := *source.TenantId + resource.TenantId = &tenantId + } else { + resource.TenantId = nil + } + + // No error + return nil +} + +// Delegated resource properties - internal use only. +type DelegatedResource_STATUS struct { + // Location: The source resource location - internal use only. + Location *string `json:"location,omitempty"` + + // ReferralResource: The delegation id of the referral delegation (optional) - internal use only. + ReferralResource *string `json:"referralResource,omitempty"` + + // ResourceId: The ARM resource id of the delegated resource - internal use only. + ResourceId *string `json:"resourceId,omitempty"` + + // TenantId: The tenant id of the delegated resource - internal use only. + TenantId *string `json:"tenantId,omitempty"` +} + +var _ genruntime.FromARMConverter = &DelegatedResource_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (resource *DelegatedResource_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &DelegatedResource_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (resource *DelegatedResource_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(DelegatedResource_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected DelegatedResource_STATUS_ARM, got %T", armInput) + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + resource.Location = &location + } + + // Set property "ReferralResource": + if typedInput.ReferralResource != nil { + referralResource := *typedInput.ReferralResource + resource.ReferralResource = &referralResource + } + + // Set property "ResourceId": + if typedInput.ResourceId != nil { + resourceId := *typedInput.ResourceId + resource.ResourceId = &resourceId + } + + // Set property "TenantId": + if typedInput.TenantId != nil { + tenantId := *typedInput.TenantId + resource.TenantId = &tenantId + } + + // No error + return nil +} + +// AssignProperties_From_DelegatedResource_STATUS populates our DelegatedResource_STATUS from the provided source DelegatedResource_STATUS +func (resource *DelegatedResource_STATUS) AssignProperties_From_DelegatedResource_STATUS(source *v20231001s.DelegatedResource_STATUS) error { + + // Location + resource.Location = genruntime.ClonePointerToString(source.Location) + + // ReferralResource + resource.ReferralResource = genruntime.ClonePointerToString(source.ReferralResource) + + // ResourceId + resource.ResourceId = genruntime.ClonePointerToString(source.ResourceId) + + // TenantId + resource.TenantId = genruntime.ClonePointerToString(source.TenantId) + + // No error + return nil +} + +// AssignProperties_To_DelegatedResource_STATUS populates the provided destination DelegatedResource_STATUS from our DelegatedResource_STATUS +func (resource *DelegatedResource_STATUS) AssignProperties_To_DelegatedResource_STATUS(destination *v20231001s.DelegatedResource_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Location + destination.Location = genruntime.ClonePointerToString(resource.Location) + + // ReferralResource + destination.ReferralResource = genruntime.ClonePointerToString(resource.ReferralResource) + + // ResourceId + destination.ResourceId = genruntime.ClonePointerToString(resource.ResourceId) + + // TenantId + destination.TenantId = genruntime.ClonePointerToString(resource.TenantId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Istio service mesh configuration. +type IstioServiceMesh struct { + // CertificateAuthority: Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin + // certificates as described here https://aka.ms/asm-plugin-ca + CertificateAuthority *IstioCertificateAuthority `json:"certificateAuthority,omitempty"` + + // Components: Istio components configuration. + Components *IstioComponents `json:"components,omitempty"` + + // +kubebuilder:validation:MaxItems=2 + // Revisions: The list of revisions of the Istio control plane. When an upgrade is not in progress, this holds one value. + // When canary upgrade is in progress, this can only hold two consecutive values. For more information, see: + // https://learn.microsoft.com/en-us/azure/aks/istio-upgrade + Revisions []string `json:"revisions,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioServiceMesh{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (mesh *IstioServiceMesh) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if mesh == nil { + return nil, nil + } + result := &IstioServiceMesh_ARM{} + + // Set property "CertificateAuthority": + if mesh.CertificateAuthority != nil { + certificateAuthority_ARM, err := (*mesh.CertificateAuthority).ConvertToARM(resolved) + if err != nil { + return nil, err + } + certificateAuthority := *certificateAuthority_ARM.(*IstioCertificateAuthority_ARM) + result.CertificateAuthority = &certificateAuthority + } + + // Set property "Components": + if mesh.Components != nil { + components_ARM, err := (*mesh.Components).ConvertToARM(resolved) + if err != nil { + return nil, err + } + components := *components_ARM.(*IstioComponents_ARM) + result.Components = &components + } + + // Set property "Revisions": + for _, item := range mesh.Revisions { + result.Revisions = append(result.Revisions, item) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (mesh *IstioServiceMesh) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioServiceMesh_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (mesh *IstioServiceMesh) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioServiceMesh_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioServiceMesh_ARM, got %T", armInput) + } + + // Set property "CertificateAuthority": + if typedInput.CertificateAuthority != nil { + var certificateAuthority1 IstioCertificateAuthority + err := certificateAuthority1.PopulateFromARM(owner, *typedInput.CertificateAuthority) + if err != nil { + return err + } + certificateAuthority := certificateAuthority1 + mesh.CertificateAuthority = &certificateAuthority + } + + // Set property "Components": + if typedInput.Components != nil { + var components1 IstioComponents + err := components1.PopulateFromARM(owner, *typedInput.Components) + if err != nil { + return err + } + components := components1 + mesh.Components = &components + } + + // Set property "Revisions": + for _, item := range typedInput.Revisions { + mesh.Revisions = append(mesh.Revisions, item) + } + + // No error + return nil +} + +// AssignProperties_From_IstioServiceMesh populates our IstioServiceMesh from the provided source IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_From_IstioServiceMesh(source *v20231001s.IstioServiceMesh) error { + + // CertificateAuthority + if source.CertificateAuthority != nil { + var certificateAuthority IstioCertificateAuthority + err := certificateAuthority.AssignProperties_From_IstioCertificateAuthority(source.CertificateAuthority) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioCertificateAuthority() to populate field CertificateAuthority") + } + mesh.CertificateAuthority = &certificateAuthority + } else { + mesh.CertificateAuthority = nil + } + + // Components + if source.Components != nil { + var component IstioComponents + err := component.AssignProperties_From_IstioComponents(source.Components) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Revisions + if source.Revisions != nil { + revisionList := make([]string, len(source.Revisions)) + for revisionIndex, revisionItem := range source.Revisions { + // Shadow the loop variable to avoid aliasing + revisionItem := revisionItem + revisionList[revisionIndex] = revisionItem + } + mesh.Revisions = revisionList + } else { + mesh.Revisions = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh populates the provided destination IstioServiceMesh from our IstioServiceMesh +func (mesh *IstioServiceMesh) AssignProperties_To_IstioServiceMesh(destination *v20231001s.IstioServiceMesh) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CertificateAuthority + if mesh.CertificateAuthority != nil { + var certificateAuthority v20231001s.IstioCertificateAuthority + err := mesh.CertificateAuthority.AssignProperties_To_IstioCertificateAuthority(&certificateAuthority) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioCertificateAuthority() to populate field CertificateAuthority") + } + destination.CertificateAuthority = &certificateAuthority + } else { + destination.CertificateAuthority = nil + } + + // Components + if mesh.Components != nil { + var component v20231001s.IstioComponents + err := mesh.Components.AssignProperties_To_IstioComponents(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Revisions + if mesh.Revisions != nil { + revisionList := make([]string, len(mesh.Revisions)) + for revisionIndex, revisionItem := range mesh.Revisions { + // Shadow the loop variable to avoid aliasing + revisionItem := revisionItem + revisionList[revisionIndex] = revisionItem + } + destination.Revisions = revisionList + } else { + destination.Revisions = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioServiceMesh_STATUS populates our IstioServiceMesh from the provided source IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh) Initialize_From_IstioServiceMesh_STATUS(source *IstioServiceMesh_STATUS) error { + + // CertificateAuthority + if source.CertificateAuthority != nil { + var certificateAuthority IstioCertificateAuthority + err := certificateAuthority.Initialize_From_IstioCertificateAuthority_STATUS(source.CertificateAuthority) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioCertificateAuthority_STATUS() to populate field CertificateAuthority") + } + mesh.CertificateAuthority = &certificateAuthority + } else { + mesh.CertificateAuthority = nil + } + + // Components + if source.Components != nil { + var component IstioComponents + err := component.Initialize_From_IstioComponents_STATUS(source.Components) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioComponents_STATUS() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Revisions + if source.Revisions != nil { + revisionList := make([]string, len(source.Revisions)) + for revisionIndex, revisionItem := range source.Revisions { + // Shadow the loop variable to avoid aliasing + revisionItem := revisionItem + revisionList[revisionIndex] = revisionItem + } + mesh.Revisions = revisionList + } else { + mesh.Revisions = nil + } + + // No error + return nil +} + +// Istio service mesh configuration. +type IstioServiceMesh_STATUS struct { + // CertificateAuthority: Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin + // certificates as described here https://aka.ms/asm-plugin-ca + CertificateAuthority *IstioCertificateAuthority_STATUS `json:"certificateAuthority,omitempty"` + + // Components: Istio components configuration. + Components *IstioComponents_STATUS `json:"components,omitempty"` + + // Revisions: The list of revisions of the Istio control plane. When an upgrade is not in progress, this holds one value. + // When canary upgrade is in progress, this can only hold two consecutive values. For more information, see: + // https://learn.microsoft.com/en-us/azure/aks/istio-upgrade + Revisions []string `json:"revisions,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioServiceMesh_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (mesh *IstioServiceMesh_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioServiceMesh_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (mesh *IstioServiceMesh_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioServiceMesh_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioServiceMesh_STATUS_ARM, got %T", armInput) + } + + // Set property "CertificateAuthority": + if typedInput.CertificateAuthority != nil { + var certificateAuthority1 IstioCertificateAuthority_STATUS + err := certificateAuthority1.PopulateFromARM(owner, *typedInput.CertificateAuthority) + if err != nil { + return err + } + certificateAuthority := certificateAuthority1 + mesh.CertificateAuthority = &certificateAuthority + } + + // Set property "Components": + if typedInput.Components != nil { + var components1 IstioComponents_STATUS + err := components1.PopulateFromARM(owner, *typedInput.Components) + if err != nil { + return err + } + components := components1 + mesh.Components = &components + } + + // Set property "Revisions": + for _, item := range typedInput.Revisions { + mesh.Revisions = append(mesh.Revisions, item) + } + + // No error + return nil +} + +// AssignProperties_From_IstioServiceMesh_STATUS populates our IstioServiceMesh_STATUS from the provided source IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_From_IstioServiceMesh_STATUS(source *v20231001s.IstioServiceMesh_STATUS) error { + + // CertificateAuthority + if source.CertificateAuthority != nil { + var certificateAuthority IstioCertificateAuthority_STATUS + err := certificateAuthority.AssignProperties_From_IstioCertificateAuthority_STATUS(source.CertificateAuthority) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioCertificateAuthority_STATUS() to populate field CertificateAuthority") + } + mesh.CertificateAuthority = &certificateAuthority + } else { + mesh.CertificateAuthority = nil + } + + // Components + if source.Components != nil { + var component IstioComponents_STATUS + err := component.AssignProperties_From_IstioComponents_STATUS(source.Components) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioComponents_STATUS() to populate field Components") + } + mesh.Components = &component + } else { + mesh.Components = nil + } + + // Revisions + mesh.Revisions = genruntime.CloneSliceOfString(source.Revisions) + + // No error + return nil +} + +// AssignProperties_To_IstioServiceMesh_STATUS populates the provided destination IstioServiceMesh_STATUS from our IstioServiceMesh_STATUS +func (mesh *IstioServiceMesh_STATUS) AssignProperties_To_IstioServiceMesh_STATUS(destination *v20231001s.IstioServiceMesh_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CertificateAuthority + if mesh.CertificateAuthority != nil { + var certificateAuthority v20231001s.IstioCertificateAuthority_STATUS + err := mesh.CertificateAuthority.AssignProperties_To_IstioCertificateAuthority_STATUS(&certificateAuthority) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioCertificateAuthority_STATUS() to populate field CertificateAuthority") + } + destination.CertificateAuthority = &certificateAuthority + } else { + destination.CertificateAuthority = nil + } + + // Components + if mesh.Components != nil { + var component v20231001s.IstioComponents_STATUS + err := mesh.Components.AssignProperties_To_IstioComponents_STATUS(&component) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioComponents_STATUS() to populate field Components") + } + destination.Components = &component + } else { + destination.Components = nil + } + + // Revisions + destination.Revisions = genruntime.CloneSliceOfString(mesh.Revisions) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"NodeImage","None","Unmanaged"} +type ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel string + +const ( + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_NodeImage = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel("NodeImage") + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_None = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel("None") + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_Unmanaged = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel("Unmanaged") +) + +type ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS string + +const ( + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_NodeImage = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS("NodeImage") + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_None = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS("None") + ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_Unmanaged = ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS("Unmanaged") +) + +// +kubebuilder:validation:Enum={"node-image","none","patch","rapid","stable"} +type ManagedClusterAutoUpgradeProfile_UpgradeChannel string + +const ( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_NodeImage = ManagedClusterAutoUpgradeProfile_UpgradeChannel("node-image") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_None = ManagedClusterAutoUpgradeProfile_UpgradeChannel("none") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Patch = ManagedClusterAutoUpgradeProfile_UpgradeChannel("patch") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Rapid = ManagedClusterAutoUpgradeProfile_UpgradeChannel("rapid") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Stable = ManagedClusterAutoUpgradeProfile_UpgradeChannel("stable") +) + +type ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS string + +const ( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_NodeImage = ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS("node-image") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_None = ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS("none") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Patch = ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS("patch") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Rapid = ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS("rapid") + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Stable = ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS("stable") +) + +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics struct { + // +kubebuilder:validation:Required + // Enabled: Whether to enable or disable the Azure Managed Prometheus addon for Prometheus monitoring. See + // aka.ms/AzureManagedPrometheus-aks-enable for details on enabling and disabling. + Enabled *bool `json:"enabled,omitempty"` + + // KubeStateMetrics: Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the + // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for + // details. + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAzureMonitorProfileMetrics{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (metrics *ManagedClusterAzureMonitorProfileMetrics) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if metrics == nil { + return nil, nil + } + result := &ManagedClusterAzureMonitorProfileMetrics_ARM{} + + // Set property "Enabled": + if metrics.Enabled != nil { + enabled := *metrics.Enabled + result.Enabled = &enabled + } + + // Set property "KubeStateMetrics": + if metrics.KubeStateMetrics != nil { + kubeStateMetrics_ARM, err := (*metrics.KubeStateMetrics).ConvertToARM(resolved) + if err != nil { + return nil, err + } + kubeStateMetrics := *kubeStateMetrics_ARM.(*ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) + result.KubeStateMetrics = &kubeStateMetrics + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (metrics *ManagedClusterAzureMonitorProfileMetrics) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfileMetrics_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (metrics *ManagedClusterAzureMonitorProfileMetrics) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfileMetrics_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfileMetrics_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + metrics.Enabled = &enabled + } + + // Set property "KubeStateMetrics": + if typedInput.KubeStateMetrics != nil { + var kubeStateMetrics1 ManagedClusterAzureMonitorProfileKubeStateMetrics + err := kubeStateMetrics1.PopulateFromARM(owner, *typedInput.KubeStateMetrics) + if err != nil { + return err + } + kubeStateMetrics := kubeStateMetrics1 + metrics.KubeStateMetrics = &kubeStateMetrics + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics +func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(source *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics + err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics populates the provided destination ManagedClusterAzureMonitorProfileMetrics from our ManagedClusterAzureMonitorProfileMetrics +func (metrics *ManagedClusterAzureMonitorProfileMetrics) AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(destination *v20231001s.ManagedClusterAzureMonitorProfileMetrics) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if metrics.Enabled != nil { + enabled := *metrics.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KubeStateMetrics + if metrics.KubeStateMetrics != nil { + var kubeStateMetric v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics + err := metrics.KubeStateMetrics.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(&kubeStateMetric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics() to populate field KubeStateMetrics") + } + destination.KubeStateMetrics = &kubeStateMetric + } else { + destination.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS populates our ManagedClusterAzureMonitorProfileMetrics from the provided source ManagedClusterAzureMonitorProfileMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileMetrics) Initialize_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source *ManagedClusterAzureMonitorProfileMetrics_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics + err := kubeStateMetric.Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil + } + + // No error + return nil +} + +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics_STATUS struct { + // Enabled: Whether to enable or disable the Azure Managed Prometheus addon for Prometheus monitoring. See + // aka.ms/AzureManagedPrometheus-aks-enable for details on enabling and disabling. + Enabled *bool `json:"enabled,omitempty"` + + // KubeStateMetrics: Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the + // kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for + // details. + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS `json:"kubeStateMetrics,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAzureMonitorProfileMetrics_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + metrics.Enabled = &enabled + } + + // Set property "KubeStateMetrics": + if typedInput.KubeStateMetrics != nil { + var kubeStateMetrics1 ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := kubeStateMetrics1.PopulateFromARM(owner, *typedInput.KubeStateMetrics) + if err != nil { + return err + } + kubeStateMetrics := kubeStateMetrics1 + metrics.KubeStateMetrics = &kubeStateMetrics + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS populates our ManagedClusterAzureMonitorProfileMetrics_STATUS from the provided source ManagedClusterAzureMonitorProfileMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + metrics.Enabled = &enabled + } else { + metrics.Enabled = nil + } + + // KubeStateMetrics + if source.KubeStateMetrics != nil { + var kubeStateMetric ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := kubeStateMetric.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source.KubeStateMetrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") + } + metrics.KubeStateMetrics = &kubeStateMetric + } else { + metrics.KubeStateMetrics = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS populates the provided destination ManagedClusterAzureMonitorProfileMetrics_STATUS from our ManagedClusterAzureMonitorProfileMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if metrics.Enabled != nil { + enabled := *metrics.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // KubeStateMetrics + if metrics.KubeStateMetrics != nil { + var kubeStateMetric v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := metrics.KubeStateMetrics.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&kubeStateMetric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS() to populate field KubeStateMetrics") + } + destination.KubeStateMetrics = &kubeStateMetric + } else { + destination.KubeStateMetrics = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterIdentity_UserAssignedIdentities_STATUS struct { + // ClientId: The client id of user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // PrincipalId: The principal id of user assigned identity. + PrincipalId *string `json:"principalId,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterIdentity_UserAssignedIdentities_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + identities.ClientId = &clientId + } + + // Set property "PrincipalId": + if typedInput.PrincipalId != nil { + principalId := *typedInput.PrincipalId + identities.PrincipalId = &principalId + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS populates our ManagedClusterIdentity_UserAssignedIdentities_STATUS from the provided source ManagedClusterIdentity_UserAssignedIdentities_STATUS +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(source *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error { + + // ClientId + identities.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // PrincipalId + identities.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS populates the provided destination ManagedClusterIdentity_UserAssignedIdentities_STATUS from our ManagedClusterIdentity_UserAssignedIdentities_STATUS +func (identities *ManagedClusterIdentity_UserAssignedIdentities_STATUS) AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(destination *v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(identities.ClientId) + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(identities.PrincipalId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile struct { + // +kubebuilder:validation:Maximum=64000 + // +kubebuilder:validation:Minimum=0 + // AllocatedOutboundPorts: The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 + // (inclusive). The default value is 0 which results in Azure dynamically allocating ports. + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + + // BackendPoolType: The type of the managed inbound Load Balancer BackendPool. + BackendPoolType *ManagedClusterLoadBalancerProfile_BackendPoolType `json:"backendPoolType,omitempty"` + + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster load balancer. + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + + // EnableMultipleStandardLoadBalancers: Enable multiple standard load balancers per AKS cluster or not. + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + + // +kubebuilder:validation:Maximum=120 + // +kubebuilder:validation:Minimum=4 + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 30 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPs: Desired managed outbound IPs for the cluster load balancer. + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs `json:"managedOutboundIPs,omitempty"` + + // OutboundIPPrefixes: Desired outbound IP Prefix resources for the cluster load balancer. + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes `json:"outboundIPPrefixes,omitempty"` + + // OutboundIPs: Desired outbound IP resources for the cluster load balancer. + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs `json:"outboundIPs,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterLoadBalancerProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterLoadBalancerProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterLoadBalancerProfile_ARM{} + + // Set property "AllocatedOutboundPorts": + if profile.AllocatedOutboundPorts != nil { + allocatedOutboundPorts := *profile.AllocatedOutboundPorts + result.AllocatedOutboundPorts = &allocatedOutboundPorts + } + + // Set property "BackendPoolType": + if profile.BackendPoolType != nil { + backendPoolType := *profile.BackendPoolType + result.BackendPoolType = &backendPoolType + } + + // Set property "EffectiveOutboundIPs": + for _, item := range profile.EffectiveOutboundIPs { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.EffectiveOutboundIPs = append(result.EffectiveOutboundIPs, *item_ARM.(*ResourceReference_ARM)) + } + + // Set property "EnableMultipleStandardLoadBalancers": + if profile.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancers := *profile.EnableMultipleStandardLoadBalancers + result.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancers + } + + // Set property "IdleTimeoutInMinutes": + if profile.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *profile.IdleTimeoutInMinutes + result.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPs": + if profile.ManagedOutboundIPs != nil { + managedOutboundIPs_ARM, err := (*profile.ManagedOutboundIPs).ConvertToARM(resolved) + if err != nil { + return nil, err + } + managedOutboundIPs := *managedOutboundIPs_ARM.(*ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) + result.ManagedOutboundIPs = &managedOutboundIPs + } + + // Set property "OutboundIPPrefixes": + if profile.OutboundIPPrefixes != nil { + outboundIPPrefixes_ARM, err := (*profile.OutboundIPPrefixes).ConvertToARM(resolved) + if err != nil { + return nil, err + } + outboundIPPrefixes := *outboundIPPrefixes_ARM.(*ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) + result.OutboundIPPrefixes = &outboundIPPrefixes + } + + // Set property "OutboundIPs": + if profile.OutboundIPs != nil { + outboundIPs_ARM, err := (*profile.OutboundIPs).ConvertToARM(resolved) + if err != nil { + return nil, err + } + outboundIPs := *outboundIPs_ARM.(*ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) + result.OutboundIPs = &outboundIPs + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterLoadBalancerProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterLoadBalancerProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_ARM, got %T", armInput) + } + + // Set property "AllocatedOutboundPorts": + if typedInput.AllocatedOutboundPorts != nil { + allocatedOutboundPorts := *typedInput.AllocatedOutboundPorts + profile.AllocatedOutboundPorts = &allocatedOutboundPorts + } + + // Set property "BackendPoolType": + if typedInput.BackendPoolType != nil { + backendPoolType := *typedInput.BackendPoolType + profile.BackendPoolType = &backendPoolType + } + + // Set property "EffectiveOutboundIPs": + for _, item := range typedInput.EffectiveOutboundIPs { + var item1 ResourceReference + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.EffectiveOutboundIPs = append(profile.EffectiveOutboundIPs, item1) + } + + // Set property "EnableMultipleStandardLoadBalancers": + if typedInput.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancers := *typedInput.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancers + } + + // Set property "IdleTimeoutInMinutes": + if typedInput.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *typedInput.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPs": + if typedInput.ManagedOutboundIPs != nil { + var managedOutboundIPs1 ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := managedOutboundIPs1.PopulateFromARM(owner, *typedInput.ManagedOutboundIPs) + if err != nil { + return err + } + managedOutboundIPs := managedOutboundIPs1 + profile.ManagedOutboundIPs = &managedOutboundIPs + } + + // Set property "OutboundIPPrefixes": + if typedInput.OutboundIPPrefixes != nil { + var outboundIPPrefixes1 ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := outboundIPPrefixes1.PopulateFromARM(owner, *typedInput.OutboundIPPrefixes) + if err != nil { + return err + } + outboundIPPrefixes := outboundIPPrefixes1 + profile.OutboundIPPrefixes = &outboundIPPrefixes + } + + // Set property "OutboundIPs": + if typedInput.OutboundIPs != nil { + var outboundIPs1 ManagedClusterLoadBalancerProfile_OutboundIPs + err := outboundIPs1.PopulateFromARM(owner, *typedInput.OutboundIPs) + if err != nil { + return err + } + outboundIPs := outboundIPs1 + profile.OutboundIPs = &outboundIPs + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile populates our ManagedClusterLoadBalancerProfile from the provided source ManagedClusterLoadBalancerProfile +func (profile *ManagedClusterLoadBalancerProfile) AssignProperties_From_ManagedClusterLoadBalancerProfile(source *v20231001s.ManagedClusterLoadBalancerProfile) error { + + // AllocatedOutboundPorts + if source.AllocatedOutboundPorts != nil { + allocatedOutboundPort := *source.AllocatedOutboundPorts + profile.AllocatedOutboundPorts = &allocatedOutboundPort + } else { + profile.AllocatedOutboundPorts = nil + } + + // BackendPoolType + if source.BackendPoolType != nil { + backendPoolType := ManagedClusterLoadBalancerProfile_BackendPoolType(*source.BackendPoolType) + profile.BackendPoolType = &backendPoolType + } else { + profile.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.AssignProperties_From_ResourceReference(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if source.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + profile.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + if source.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *source.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + profile.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPs + if source.ManagedOutboundIPs != nil { + var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := managedOutboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(source.ManagedOutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs() to populate field ManagedOutboundIPs") + } + profile.ManagedOutboundIPs = &managedOutboundIP + } else { + profile.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if source.OutboundIPPrefixes != nil { + var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := outboundIPPrefix.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(source.OutboundIPPrefixes) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes() to populate field OutboundIPPrefixes") + } + profile.OutboundIPPrefixes = &outboundIPPrefix + } else { + profile.OutboundIPPrefixes = nil + } + + // OutboundIPs + if source.OutboundIPs != nil { + var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs + err := outboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(source.OutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs() to populate field OutboundIPs") + } + profile.OutboundIPs = &outboundIP + } else { + profile.OutboundIPs = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile populates the provided destination ManagedClusterLoadBalancerProfile from our ManagedClusterLoadBalancerProfile +func (profile *ManagedClusterLoadBalancerProfile) AssignProperties_To_ManagedClusterLoadBalancerProfile(destination *v20231001s.ManagedClusterLoadBalancerProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllocatedOutboundPorts + if profile.AllocatedOutboundPorts != nil { + allocatedOutboundPort := *profile.AllocatedOutboundPorts + destination.AllocatedOutboundPorts = &allocatedOutboundPort + } else { + destination.AllocatedOutboundPorts = nil + } + + // BackendPoolType + if profile.BackendPoolType != nil { + backendPoolType := string(*profile.BackendPoolType) + destination.BackendPoolType = &backendPoolType + } else { + destination.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if profile.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *profile.EnableMultipleStandardLoadBalancers + destination.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + destination.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + if profile.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *profile.IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + destination.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPs + if profile.ManagedOutboundIPs != nil { + var managedOutboundIP v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := profile.ManagedOutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&managedOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs() to populate field ManagedOutboundIPs") + } + destination.ManagedOutboundIPs = &managedOutboundIP + } else { + destination.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if profile.OutboundIPPrefixes != nil { + var outboundIPPrefix v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := profile.OutboundIPPrefixes.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&outboundIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes() to populate field OutboundIPPrefixes") + } + destination.OutboundIPPrefixes = &outboundIPPrefix + } else { + destination.OutboundIPPrefixes = nil + } + + // OutboundIPs + if profile.OutboundIPs != nil { + var outboundIP v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs + err := profile.OutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(&outboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs() to populate field OutboundIPs") + } + destination.OutboundIPs = &outboundIP + } else { + destination.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterLoadBalancerProfile_STATUS populates our ManagedClusterLoadBalancerProfile from the provided source ManagedClusterLoadBalancerProfile_STATUS +func (profile *ManagedClusterLoadBalancerProfile) Initialize_From_ManagedClusterLoadBalancerProfile_STATUS(source *ManagedClusterLoadBalancerProfile_STATUS) error { + + // AllocatedOutboundPorts + if source.AllocatedOutboundPorts != nil { + allocatedOutboundPort := *source.AllocatedOutboundPorts + profile.AllocatedOutboundPorts = &allocatedOutboundPort + } else { + profile.AllocatedOutboundPorts = nil + } + + // BackendPoolType + if source.BackendPoolType != nil { + backendPoolType := ManagedClusterLoadBalancerProfile_BackendPoolType(*source.BackendPoolType) + profile.BackendPoolType = &backendPoolType + } else { + profile.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.Initialize_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if source.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + profile.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + if source.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *source.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + profile.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPs + if source.ManagedOutboundIPs != nil { + var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := managedOutboundIP.Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source.ManagedOutboundIPs) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") + } + profile.ManagedOutboundIPs = &managedOutboundIP + } else { + profile.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if source.OutboundIPPrefixes != nil { + var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := outboundIPPrefix.Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source.OutboundIPPrefixes) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") + } + profile.OutboundIPPrefixes = &outboundIPPrefix + } else { + profile.OutboundIPPrefixes = nil + } + + // OutboundIPs + if source.OutboundIPs != nil { + var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs + err := outboundIP.Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source.OutboundIPs) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") + } + profile.OutboundIPs = &outboundIP + } else { + profile.OutboundIPs = nil + } + + // No error + return nil +} + +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile_STATUS struct { + // AllocatedOutboundPorts: The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 + // (inclusive). The default value is 0 which results in Azure dynamically allocating ports. + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + + // BackendPoolType: The type of the managed inbound Load Balancer BackendPool. + BackendPoolType *ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS `json:"backendPoolType,omitempty"` + + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster load balancer. + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + + // EnableMultipleStandardLoadBalancers: Enable multiple standard load balancers per AKS cluster or not. + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 30 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPs: Desired managed outbound IPs for the cluster load balancer. + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS `json:"managedOutboundIPs,omitempty"` + + // OutboundIPPrefixes: Desired outbound IP Prefix resources for the cluster load balancer. + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS `json:"outboundIPPrefixes,omitempty"` + + // OutboundIPs: Desired outbound IP resources for the cluster load balancer. + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS `json:"outboundIPs,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterLoadBalancerProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterLoadBalancerProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterLoadBalancerProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AllocatedOutboundPorts": + if typedInput.AllocatedOutboundPorts != nil { + allocatedOutboundPorts := *typedInput.AllocatedOutboundPorts + profile.AllocatedOutboundPorts = &allocatedOutboundPorts + } + + // Set property "BackendPoolType": + if typedInput.BackendPoolType != nil { + backendPoolType := *typedInput.BackendPoolType + profile.BackendPoolType = &backendPoolType + } + + // Set property "EffectiveOutboundIPs": + for _, item := range typedInput.EffectiveOutboundIPs { + var item1 ResourceReference_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.EffectiveOutboundIPs = append(profile.EffectiveOutboundIPs, item1) + } + + // Set property "EnableMultipleStandardLoadBalancers": + if typedInput.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancers := *typedInput.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancers + } + + // Set property "IdleTimeoutInMinutes": + if typedInput.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *typedInput.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPs": + if typedInput.ManagedOutboundIPs != nil { + var managedOutboundIPs1 ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := managedOutboundIPs1.PopulateFromARM(owner, *typedInput.ManagedOutboundIPs) + if err != nil { + return err + } + managedOutboundIPs := managedOutboundIPs1 + profile.ManagedOutboundIPs = &managedOutboundIPs + } + + // Set property "OutboundIPPrefixes": + if typedInput.OutboundIPPrefixes != nil { + var outboundIPPrefixes1 ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := outboundIPPrefixes1.PopulateFromARM(owner, *typedInput.OutboundIPPrefixes) + if err != nil { + return err + } + outboundIPPrefixes := outboundIPPrefixes1 + profile.OutboundIPPrefixes = &outboundIPPrefixes + } + + // Set property "OutboundIPs": + if typedInput.OutboundIPs != nil { + var outboundIPs1 ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := outboundIPs1.PopulateFromARM(owner, *typedInput.OutboundIPs) + if err != nil { + return err + } + outboundIPs := outboundIPs1 + profile.OutboundIPs = &outboundIPs + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS populates our ManagedClusterLoadBalancerProfile_STATUS from the provided source ManagedClusterLoadBalancerProfile_STATUS +func (profile *ManagedClusterLoadBalancerProfile_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error { + + // AllocatedOutboundPorts + profile.AllocatedOutboundPorts = genruntime.ClonePointerToInt(source.AllocatedOutboundPorts) + + // BackendPoolType + if source.BackendPoolType != nil { + backendPoolType := ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS(*source.BackendPoolType) + profile.BackendPoolType = &backendPoolType + } else { + profile.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference_STATUS, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference_STATUS + err := effectiveOutboundIP.AssignProperties_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if source.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *source.EnableMultipleStandardLoadBalancers + profile.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + profile.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if source.ManagedOutboundIPs != nil { + var managedOutboundIP ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := managedOutboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source.ManagedOutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") + } + profile.ManagedOutboundIPs = &managedOutboundIP + } else { + profile.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if source.OutboundIPPrefixes != nil { + var outboundIPPrefix ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := outboundIPPrefix.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source.OutboundIPPrefixes) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") + } + profile.OutboundIPPrefixes = &outboundIPPrefix + } else { + profile.OutboundIPPrefixes = nil + } + + // OutboundIPs + if source.OutboundIPs != nil { + var outboundIP ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := outboundIP.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source.OutboundIPs) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") + } + profile.OutboundIPs = &outboundIP + } else { + profile.OutboundIPs = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_STATUS from our ManagedClusterLoadBalancerProfile_STATUS +func (profile *ManagedClusterLoadBalancerProfile_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllocatedOutboundPorts + destination.AllocatedOutboundPorts = genruntime.ClonePointerToInt(profile.AllocatedOutboundPorts) + + // BackendPoolType + if profile.BackendPoolType != nil { + backendPoolType := string(*profile.BackendPoolType) + destination.BackendPoolType = &backendPoolType + } else { + destination.BackendPoolType = nil + } + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference_STATUS, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference_STATUS + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference_STATUS(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // EnableMultipleStandardLoadBalancers + if profile.EnableMultipleStandardLoadBalancers != nil { + enableMultipleStandardLoadBalancer := *profile.EnableMultipleStandardLoadBalancers + destination.EnableMultipleStandardLoadBalancers = &enableMultipleStandardLoadBalancer + } else { + destination.EnableMultipleStandardLoadBalancers = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPs + if profile.ManagedOutboundIPs != nil { + var managedOutboundIP v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := profile.ManagedOutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&managedOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS() to populate field ManagedOutboundIPs") + } + destination.ManagedOutboundIPs = &managedOutboundIP + } else { + destination.ManagedOutboundIPs = nil + } + + // OutboundIPPrefixes + if profile.OutboundIPPrefixes != nil { + var outboundIPPrefix v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := profile.OutboundIPPrefixes.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&outboundIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS() to populate field OutboundIPPrefixes") + } + destination.OutboundIPPrefixes = &outboundIPPrefix + } else { + destination.OutboundIPPrefixes = nil + } + + // OutboundIPs + if profile.OutboundIPs != nil { + var outboundIP v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := profile.OutboundIPs.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&outboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS() to populate field OutboundIPs") + } + destination.OutboundIPs = &outboundIP + } else { + destination.OutboundIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile struct { + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster NAT gateway. + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + + // +kubebuilder:validation:Maximum=120 + // +kubebuilder:validation:Minimum=4 + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 4 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPProfile: Profile of the managed outbound IP resources of the cluster NAT gateway. + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile `json:"managedOutboundIPProfile,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterNATGatewayProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterNATGatewayProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterNATGatewayProfile_ARM{} + + // Set property "EffectiveOutboundIPs": + for _, item := range profile.EffectiveOutboundIPs { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.EffectiveOutboundIPs = append(result.EffectiveOutboundIPs, *item_ARM.(*ResourceReference_ARM)) + } + + // Set property "IdleTimeoutInMinutes": + if profile.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *profile.IdleTimeoutInMinutes + result.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPProfile": + if profile.ManagedOutboundIPProfile != nil { + managedOutboundIPProfile_ARM, err := (*profile.ManagedOutboundIPProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + managedOutboundIPProfile := *managedOutboundIPProfile_ARM.(*ManagedClusterManagedOutboundIPProfile_ARM) + result.ManagedOutboundIPProfile = &managedOutboundIPProfile + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterNATGatewayProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterNATGatewayProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterNATGatewayProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterNATGatewayProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterNATGatewayProfile_ARM, got %T", armInput) + } + + // Set property "EffectiveOutboundIPs": + for _, item := range typedInput.EffectiveOutboundIPs { + var item1 ResourceReference + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.EffectiveOutboundIPs = append(profile.EffectiveOutboundIPs, item1) + } + + // Set property "IdleTimeoutInMinutes": + if typedInput.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *typedInput.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPProfile": + if typedInput.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile1 ManagedClusterManagedOutboundIPProfile + err := managedOutboundIPProfile1.PopulateFromARM(owner, *typedInput.ManagedOutboundIPProfile) + if err != nil { + return err + } + managedOutboundIPProfile := managedOutboundIPProfile1 + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterNATGatewayProfile populates our ManagedClusterNATGatewayProfile from the provided source ManagedClusterNATGatewayProfile +func (profile *ManagedClusterNATGatewayProfile) AssignProperties_From_ManagedClusterNATGatewayProfile(source *v20231001s.ManagedClusterNATGatewayProfile) error { + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.AssignProperties_From_ResourceReference(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + if source.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *source.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + profile.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPProfile + if source.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile + err := managedOutboundIPProfile.AssignProperties_From_ManagedClusterManagedOutboundIPProfile(source.ManagedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterManagedOutboundIPProfile() to populate field ManagedOutboundIPProfile") + } + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + profile.ManagedOutboundIPProfile = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterNATGatewayProfile populates the provided destination ManagedClusterNATGatewayProfile from our ManagedClusterNATGatewayProfile +func (profile *ManagedClusterNATGatewayProfile) AssignProperties_To_ManagedClusterNATGatewayProfile(destination *v20231001s.ManagedClusterNATGatewayProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + if profile.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *profile.IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + destination.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPProfile + if profile.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile v20231001s.ManagedClusterManagedOutboundIPProfile + err := profile.ManagedOutboundIPProfile.AssignProperties_To_ManagedClusterManagedOutboundIPProfile(&managedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterManagedOutboundIPProfile() to populate field ManagedOutboundIPProfile") + } + destination.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + destination.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterNATGatewayProfile_STATUS populates our ManagedClusterNATGatewayProfile from the provided source ManagedClusterNATGatewayProfile_STATUS +func (profile *ManagedClusterNATGatewayProfile) Initialize_From_ManagedClusterNATGatewayProfile_STATUS(source *ManagedClusterNATGatewayProfile_STATUS) error { + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference + err := effectiveOutboundIP.Initialize_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + if source.IdleTimeoutInMinutes != nil { + idleTimeoutInMinute := *source.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinute + } else { + profile.IdleTimeoutInMinutes = nil + } + + // ManagedOutboundIPProfile + if source.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile + err := managedOutboundIPProfile.Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS(source.ManagedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") + } + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + profile.ManagedOutboundIPProfile = nil + } + + // No error + return nil +} + +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile_STATUS struct { + // EffectiveOutboundIPs: The effective outbound IP resources of the cluster NAT gateway. + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + + // IdleTimeoutInMinutes: Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 + // (inclusive). The default value is 4 minutes. + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + + // ManagedOutboundIPProfile: Profile of the managed outbound IP resources of the cluster NAT gateway. + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_STATUS `json:"managedOutboundIPProfile,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterNATGatewayProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterNATGatewayProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterNATGatewayProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterNATGatewayProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterNATGatewayProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterNATGatewayProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "EffectiveOutboundIPs": + for _, item := range typedInput.EffectiveOutboundIPs { + var item1 ResourceReference_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.EffectiveOutboundIPs = append(profile.EffectiveOutboundIPs, item1) + } + + // Set property "IdleTimeoutInMinutes": + if typedInput.IdleTimeoutInMinutes != nil { + idleTimeoutInMinutes := *typedInput.IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = &idleTimeoutInMinutes + } + + // Set property "ManagedOutboundIPProfile": + if typedInput.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile1 ManagedClusterManagedOutboundIPProfile_STATUS + err := managedOutboundIPProfile1.PopulateFromARM(owner, *typedInput.ManagedOutboundIPProfile) + if err != nil { + return err + } + managedOutboundIPProfile := managedOutboundIPProfile1 + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS populates our ManagedClusterNATGatewayProfile_STATUS from the provided source ManagedClusterNATGatewayProfile_STATUS +func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(source *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error { + + // EffectiveOutboundIPs + if source.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]ResourceReference_STATUS, len(source.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range source.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP ResourceReference_STATUS + err := effectiveOutboundIP.AssignProperties_From_ResourceReference_STATUS(&effectiveOutboundIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + profile.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + profile.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + profile.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(source.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if source.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile ManagedClusterManagedOutboundIPProfile_STATUS + err := managedOutboundIPProfile.AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(source.ManagedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") + } + profile.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + profile.ManagedOutboundIPProfile = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS populates the provided destination ManagedClusterNATGatewayProfile_STATUS from our ManagedClusterNATGatewayProfile_STATUS +func (profile *ManagedClusterNATGatewayProfile_STATUS) AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(destination *v20231001s.ManagedClusterNATGatewayProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // EffectiveOutboundIPs + if profile.EffectiveOutboundIPs != nil { + effectiveOutboundIPList := make([]v20231001s.ResourceReference_STATUS, len(profile.EffectiveOutboundIPs)) + for effectiveOutboundIPIndex, effectiveOutboundIPItem := range profile.EffectiveOutboundIPs { + // Shadow the loop variable to avoid aliasing + effectiveOutboundIPItem := effectiveOutboundIPItem + var effectiveOutboundIP v20231001s.ResourceReference_STATUS + err := effectiveOutboundIPItem.AssignProperties_To_ResourceReference_STATUS(&effectiveOutboundIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field EffectiveOutboundIPs") + } + effectiveOutboundIPList[effectiveOutboundIPIndex] = effectiveOutboundIP + } + destination.EffectiveOutboundIPs = effectiveOutboundIPList + } else { + destination.EffectiveOutboundIPs = nil + } + + // IdleTimeoutInMinutes + destination.IdleTimeoutInMinutes = genruntime.ClonePointerToInt(profile.IdleTimeoutInMinutes) + + // ManagedOutboundIPProfile + if profile.ManagedOutboundIPProfile != nil { + var managedOutboundIPProfile v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS + err := profile.ManagedOutboundIPProfile.AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(&managedOutboundIPProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS() to populate field ManagedOutboundIPProfile") + } + destination.ManagedOutboundIPProfile = &managedOutboundIPProfile + } else { + destination.ManagedOutboundIPProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterOperatorConfigMaps struct { + // OIDCIssuerProfile: indicates where the OIDCIssuerProfile config map should be placed. If omitted, no config map will be + // created. + OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorConfigMaps populates our ManagedClusterOperatorConfigMaps from the provided source ManagedClusterOperatorConfigMaps +func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_From_ManagedClusterOperatorConfigMaps(source *v20231001s.ManagedClusterOperatorConfigMaps) error { + + // OIDCIssuerProfile + if source.OIDCIssuerProfile != nil { + oidcIssuerProfile := source.OIDCIssuerProfile.Copy() + maps.OIDCIssuerProfile = &oidcIssuerProfile + } else { + maps.OIDCIssuerProfile = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorConfigMaps populates the provided destination ManagedClusterOperatorConfigMaps from our ManagedClusterOperatorConfigMaps +func (maps *ManagedClusterOperatorConfigMaps) AssignProperties_To_ManagedClusterOperatorConfigMaps(destination *v20231001s.ManagedClusterOperatorConfigMaps) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // OIDCIssuerProfile + if maps.OIDCIssuerProfile != nil { + oidcIssuerProfile := maps.OIDCIssuerProfile.Copy() + destination.OIDCIssuerProfile = &oidcIssuerProfile + } else { + destination.OIDCIssuerProfile = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterOperatorSecrets struct { + // AdminCredentials: indicates where the AdminCredentials secret should be placed. If omitted, the secret will not be + // retrieved from Azure. + AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"` + + // UserCredentials: indicates where the UserCredentials secret should be placed. If omitted, the secret will not be + // retrieved from Azure. + UserCredentials *genruntime.SecretDestination `json:"userCredentials,omitempty"` +} + +// AssignProperties_From_ManagedClusterOperatorSecrets populates our ManagedClusterOperatorSecrets from the provided source ManagedClusterOperatorSecrets +func (secrets *ManagedClusterOperatorSecrets) AssignProperties_From_ManagedClusterOperatorSecrets(source *v20231001s.ManagedClusterOperatorSecrets) error { + + // AdminCredentials + if source.AdminCredentials != nil { + adminCredential := source.AdminCredentials.Copy() + secrets.AdminCredentials = &adminCredential + } else { + secrets.AdminCredentials = nil + } + + // UserCredentials + if source.UserCredentials != nil { + userCredential := source.UserCredentials.Copy() + secrets.UserCredentials = &userCredential + } else { + secrets.UserCredentials = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterOperatorSecrets populates the provided destination ManagedClusterOperatorSecrets from our ManagedClusterOperatorSecrets +func (secrets *ManagedClusterOperatorSecrets) AssignProperties_To_ManagedClusterOperatorSecrets(destination *v20231001s.ManagedClusterOperatorSecrets) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdminCredentials + if secrets.AdminCredentials != nil { + adminCredential := secrets.AdminCredentials.Copy() + destination.AdminCredentials = &adminCredential + } else { + destination.AdminCredentials = nil + } + + // UserCredentials + if secrets.UserCredentials != nil { + userCredential := secrets.UserCredentials.Copy() + destination.UserCredentials = &userCredential + } else { + destination.UserCredentials = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity struct { + // BindingSelector: The binding selector to use for the AzureIdentityBinding resource. + BindingSelector *string `json:"bindingSelector,omitempty"` + + // +kubebuilder:validation:Required + // Identity: The user assigned identity details. + Identity *UserAssignedIdentity `json:"identity,omitempty"` + + // +kubebuilder:validation:Required + // Name: The name of the pod identity. + Name *string `json:"name,omitempty"` + + // +kubebuilder:validation:Required + // Namespace: The namespace of the pod identity. + Namespace *string `json:"namespace,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterPodIdentity{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (identity *ManagedClusterPodIdentity) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if identity == nil { + return nil, nil + } + result := &ManagedClusterPodIdentity_ARM{} + + // Set property "BindingSelector": + if identity.BindingSelector != nil { + bindingSelector := *identity.BindingSelector + result.BindingSelector = &bindingSelector + } + + // Set property "Identity": + if identity.Identity != nil { + identity_ARM, err := (*identity.Identity).ConvertToARM(resolved) + if err != nil { + return nil, err + } + identity1 := *identity_ARM.(*UserAssignedIdentity_ARM) + result.Identity = &identity1 + } + + // Set property "Name": + if identity.Name != nil { + name := *identity.Name + result.Name = &name + } + + // Set property "Namespace": + if identity.Namespace != nil { + namespace := *identity.Namespace + result.Namespace = &namespace + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterPodIdentity) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentity_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterPodIdentity) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentity_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentity_ARM, got %T", armInput) + } + + // Set property "BindingSelector": + if typedInput.BindingSelector != nil { + bindingSelector := *typedInput.BindingSelector + identity.BindingSelector = &bindingSelector + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity2 UserAssignedIdentity + err := identity2.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity1 := identity2 + identity.Identity = &identity1 + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + identity.Name = &name + } + + // Set property "Namespace": + if typedInput.Namespace != nil { + namespace := *typedInput.Namespace + identity.Namespace = &namespace + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentity populates our ManagedClusterPodIdentity from the provided source ManagedClusterPodIdentity +func (identity *ManagedClusterPodIdentity) AssignProperties_From_ManagedClusterPodIdentity(source *v20231001s.ManagedClusterPodIdentity) error { + + // BindingSelector + identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) + + // Identity + if source.Identity != nil { + var identityLocal UserAssignedIdentity + err := identityLocal.AssignProperties_From_UserAssignedIdentity(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity() to populate field Identity") + } + identity.Identity = &identityLocal + } else { + identity.Identity = nil + } + + // Name + identity.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + identity.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity populates the provided destination ManagedClusterPodIdentity from our ManagedClusterPodIdentity +func (identity *ManagedClusterPodIdentity) AssignProperties_To_ManagedClusterPodIdentity(destination *v20231001s.ManagedClusterPodIdentity) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BindingSelector + destination.BindingSelector = genruntime.ClonePointerToString(identity.BindingSelector) + + // Identity + if identity.Identity != nil { + var identityLocal v20231001s.UserAssignedIdentity + err := identity.Identity.AssignProperties_To_UserAssignedIdentity(&identityLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity() to populate field Identity") + } + destination.Identity = &identityLocal + } else { + destination.Identity = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(identity.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(identity.Namespace) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterPodIdentity_STATUS populates our ManagedClusterPodIdentity from the provided source ManagedClusterPodIdentity_STATUS +func (identity *ManagedClusterPodIdentity) Initialize_From_ManagedClusterPodIdentity_STATUS(source *ManagedClusterPodIdentity_STATUS) error { + + // BindingSelector + identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) + + // Identity + if source.Identity != nil { + var identityLocal UserAssignedIdentity + err := identityLocal.Initialize_From_UserAssignedIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_UserAssignedIdentity_STATUS() to populate field Identity") + } + identity.Identity = &identityLocal + } else { + identity.Identity = nil + } + + // Name + identity.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + identity.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // No error + return nil +} + +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity_STATUS struct { + // BindingSelector: The binding selector to use for the AzureIdentityBinding resource. + BindingSelector *string `json:"bindingSelector,omitempty"` + + // Identity: The user assigned identity details. + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` + + // Name: The name of the pod identity. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity. + Namespace *string `json:"namespace,omitempty"` + ProvisioningInfo *ManagedClusterPodIdentity_ProvisioningInfo_STATUS `json:"provisioningInfo,omitempty"` + + // ProvisioningState: The current provisioning state of the pod identity. + ProvisioningState *ManagedClusterPodIdentity_ProvisioningState_STATUS `json:"provisioningState,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentity_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterPodIdentity_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentity_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterPodIdentity_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentity_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentity_STATUS_ARM, got %T", armInput) + } + + // Set property "BindingSelector": + if typedInput.BindingSelector != nil { + bindingSelector := *typedInput.BindingSelector + identity.BindingSelector = &bindingSelector + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity2 UserAssignedIdentity_STATUS + err := identity2.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity1 := identity2 + identity.Identity = &identity1 + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + identity.Name = &name + } + + // Set property "Namespace": + if typedInput.Namespace != nil { + namespace := *typedInput.Namespace + identity.Namespace = &namespace + } + + // Set property "ProvisioningInfo": + if typedInput.ProvisioningInfo != nil { + var provisioningInfo1 ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := provisioningInfo1.PopulateFromARM(owner, *typedInput.ProvisioningInfo) + if err != nil { + return err + } + provisioningInfo := provisioningInfo1 + identity.ProvisioningInfo = &provisioningInfo + } + + // Set property "ProvisioningState": + if typedInput.ProvisioningState != nil { + provisioningState := *typedInput.ProvisioningState + identity.ProvisioningState = &provisioningState + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentity_STATUS populates our ManagedClusterPodIdentity_STATUS from the provided source ManagedClusterPodIdentity_STATUS +func (identity *ManagedClusterPodIdentity_STATUS) AssignProperties_From_ManagedClusterPodIdentity_STATUS(source *v20231001s.ManagedClusterPodIdentity_STATUS) error { + + // BindingSelector + identity.BindingSelector = genruntime.ClonePointerToString(source.BindingSelector) + + // Identity + if source.Identity != nil { + var identityLocal UserAssignedIdentity_STATUS + err := identityLocal.AssignProperties_From_UserAssignedIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentity_STATUS() to populate field Identity") + } + identity.Identity = &identityLocal + } else { + identity.Identity = nil + } + + // Name + identity.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + identity.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // ProvisioningInfo + if source.ProvisioningInfo != nil { + var provisioningInfo ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := provisioningInfo.AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(source.ProvisioningInfo) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS() to populate field ProvisioningInfo") + } + identity.ProvisioningInfo = &provisioningInfo + } else { + identity.ProvisioningInfo = nil + } + + // ProvisioningState + if source.ProvisioningState != nil { + provisioningState := ManagedClusterPodIdentity_ProvisioningState_STATUS(*source.ProvisioningState) + identity.ProvisioningState = &provisioningState + } else { + identity.ProvisioningState = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity_STATUS populates the provided destination ManagedClusterPodIdentity_STATUS from our ManagedClusterPodIdentity_STATUS +func (identity *ManagedClusterPodIdentity_STATUS) AssignProperties_To_ManagedClusterPodIdentity_STATUS(destination *v20231001s.ManagedClusterPodIdentity_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // BindingSelector + destination.BindingSelector = genruntime.ClonePointerToString(identity.BindingSelector) + + // Identity + if identity.Identity != nil { + var identityLocal v20231001s.UserAssignedIdentity_STATUS + err := identity.Identity.AssignProperties_To_UserAssignedIdentity_STATUS(&identityLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identityLocal + } else { + destination.Identity = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(identity.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(identity.Namespace) + + // ProvisioningInfo + if identity.ProvisioningInfo != nil { + var provisioningInfo v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := identity.ProvisioningInfo.AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&provisioningInfo) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS() to populate field ProvisioningInfo") + } + destination.ProvisioningInfo = &provisioningInfo + } else { + destination.ProvisioningInfo = nil + } + + // ProvisioningState + if identity.ProvisioningState != nil { + provisioningState := string(*identity.ProvisioningState) + destination.ProvisioningState = &provisioningState + } else { + destination.ProvisioningState = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException struct { + // +kubebuilder:validation:Required + // Name: The name of the pod identity exception. + Name *string `json:"name,omitempty"` + + // +kubebuilder:validation:Required + // Namespace: The namespace of the pod identity exception. + Namespace *string `json:"namespace,omitempty"` + + // +kubebuilder:validation:Required + // PodLabels: The pod labels to match. + PodLabels map[string]string `json:"podLabels,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterPodIdentityException{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (exception *ManagedClusterPodIdentityException) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if exception == nil { + return nil, nil + } + result := &ManagedClusterPodIdentityException_ARM{} + + // Set property "Name": + if exception.Name != nil { + name := *exception.Name + result.Name = &name + } + + // Set property "Namespace": + if exception.Namespace != nil { + namespace := *exception.Namespace + result.Namespace = &namespace + } + + // Set property "PodLabels": + if exception.PodLabels != nil { + result.PodLabels = make(map[string]string, len(exception.PodLabels)) + for key, value := range exception.PodLabels { + result.PodLabels[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (exception *ManagedClusterPodIdentityException) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityException_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (exception *ManagedClusterPodIdentityException) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityException_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityException_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + exception.Name = &name + } + + // Set property "Namespace": + if typedInput.Namespace != nil { + namespace := *typedInput.Namespace + exception.Namespace = &namespace + } + + // Set property "PodLabels": + if typedInput.PodLabels != nil { + exception.PodLabels = make(map[string]string, len(typedInput.PodLabels)) + for key, value := range typedInput.PodLabels { + exception.PodLabels[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityException populates our ManagedClusterPodIdentityException from the provided source ManagedClusterPodIdentityException +func (exception *ManagedClusterPodIdentityException) AssignProperties_From_ManagedClusterPodIdentityException(source *v20231001s.ManagedClusterPodIdentityException) error { + + // Name + exception.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + exception.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // PodLabels + exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityException populates the provided destination ManagedClusterPodIdentityException from our ManagedClusterPodIdentityException +func (exception *ManagedClusterPodIdentityException) AssignProperties_To_ManagedClusterPodIdentityException(destination *v20231001s.ManagedClusterPodIdentityException) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + destination.Name = genruntime.ClonePointerToString(exception.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(exception.Namespace) + + // PodLabels + destination.PodLabels = genruntime.CloneMapOfStringToString(exception.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterPodIdentityException_STATUS populates our ManagedClusterPodIdentityException from the provided source ManagedClusterPodIdentityException_STATUS +func (exception *ManagedClusterPodIdentityException) Initialize_From_ManagedClusterPodIdentityException_STATUS(source *ManagedClusterPodIdentityException_STATUS) error { + + // Name + exception.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + exception.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // PodLabels + exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + + // No error + return nil +} + +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException_STATUS struct { + // Name: The name of the pod identity exception. + Name *string `json:"name,omitempty"` + + // Namespace: The namespace of the pod identity exception. + Namespace *string `json:"namespace,omitempty"` + + // PodLabels: The pod labels to match. + PodLabels map[string]string `json:"podLabels,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentityException_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (exception *ManagedClusterPodIdentityException_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityException_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (exception *ManagedClusterPodIdentityException_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityException_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityException_STATUS_ARM, got %T", armInput) + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + exception.Name = &name + } + + // Set property "Namespace": + if typedInput.Namespace != nil { + namespace := *typedInput.Namespace + exception.Namespace = &namespace + } + + // Set property "PodLabels": + if typedInput.PodLabels != nil { + exception.PodLabels = make(map[string]string, len(typedInput.PodLabels)) + for key, value := range typedInput.PodLabels { + exception.PodLabels[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityException_STATUS populates our ManagedClusterPodIdentityException_STATUS from the provided source ManagedClusterPodIdentityException_STATUS +func (exception *ManagedClusterPodIdentityException_STATUS) AssignProperties_From_ManagedClusterPodIdentityException_STATUS(source *v20231001s.ManagedClusterPodIdentityException_STATUS) error { + + // Name + exception.Name = genruntime.ClonePointerToString(source.Name) + + // Namespace + exception.Namespace = genruntime.ClonePointerToString(source.Namespace) + + // PodLabels + exception.PodLabels = genruntime.CloneMapOfStringToString(source.PodLabels) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityException_STATUS populates the provided destination ManagedClusterPodIdentityException_STATUS from our ManagedClusterPodIdentityException_STATUS +func (exception *ManagedClusterPodIdentityException_STATUS) AssignProperties_To_ManagedClusterPodIdentityException_STATUS(destination *v20231001s.ManagedClusterPodIdentityException_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Name + destination.Name = genruntime.ClonePointerToString(exception.Name) + + // Namespace + destination.Namespace = genruntime.ClonePointerToString(exception.Namespace) + + // PodLabels + destination.PodLabels = genruntime.CloneMapOfStringToString(exception.PodLabels) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"least-waste","most-pods","priority","random"} +type ManagedClusterProperties_AutoScalerProfile_Expander string + +const ( + ManagedClusterProperties_AutoScalerProfile_Expander_LeastWaste = ManagedClusterProperties_AutoScalerProfile_Expander("least-waste") + ManagedClusterProperties_AutoScalerProfile_Expander_MostPods = ManagedClusterProperties_AutoScalerProfile_Expander("most-pods") + ManagedClusterProperties_AutoScalerProfile_Expander_Priority = ManagedClusterProperties_AutoScalerProfile_Expander("priority") + ManagedClusterProperties_AutoScalerProfile_Expander_Random = ManagedClusterProperties_AutoScalerProfile_Expander("random") +) + +type ManagedClusterProperties_AutoScalerProfile_Expander_STATUS string + +const ( + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_LeastWaste = ManagedClusterProperties_AutoScalerProfile_Expander_STATUS("least-waste") + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_MostPods = ManagedClusterProperties_AutoScalerProfile_Expander_STATUS("most-pods") + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Priority = ManagedClusterProperties_AutoScalerProfile_Expander_STATUS("priority") + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Random = ManagedClusterProperties_AutoScalerProfile_Expander_STATUS("random") +) + +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender struct { + // LogAnalyticsWorkspaceResourceReference: Resource ID of the Log Analytics workspace to be associated with Microsoft + // Defender. When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When + // Microsoft Defender is disabled, leave the field empty. + LogAnalyticsWorkspaceResourceReference *genruntime.ResourceReference `armReference:"LogAnalyticsWorkspaceResourceId" json:"logAnalyticsWorkspaceResourceReference,omitempty"` + + // SecurityMonitoring: Microsoft Defender threat detection for Cloud settings for the security profile. + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring `json:"securityMonitoring,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSecurityProfileDefender{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (defender *ManagedClusterSecurityProfileDefender) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if defender == nil { + return nil, nil + } + result := &ManagedClusterSecurityProfileDefender_ARM{} + + // Set property "LogAnalyticsWorkspaceResourceId": + if defender.LogAnalyticsWorkspaceResourceReference != nil { + logAnalyticsWorkspaceResourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*defender.LogAnalyticsWorkspaceResourceReference) + if err != nil { + return nil, err + } + logAnalyticsWorkspaceResourceReference := logAnalyticsWorkspaceResourceReferenceARMID + result.LogAnalyticsWorkspaceResourceId = &logAnalyticsWorkspaceResourceReference + } + + // Set property "SecurityMonitoring": + if defender.SecurityMonitoring != nil { + securityMonitoring_ARM, err := (*defender.SecurityMonitoring).ConvertToARM(resolved) + if err != nil { + return nil, err + } + securityMonitoring := *securityMonitoring_ARM.(*ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) + result.SecurityMonitoring = &securityMonitoring + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (defender *ManagedClusterSecurityProfileDefender) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileDefender_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (defender *ManagedClusterSecurityProfileDefender) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileDefender_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileDefender_ARM, got %T", armInput) + } + + // no assignment for property "LogAnalyticsWorkspaceResourceReference" + + // Set property "SecurityMonitoring": + if typedInput.SecurityMonitoring != nil { + var securityMonitoring1 ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := securityMonitoring1.PopulateFromARM(owner, *typedInput.SecurityMonitoring) + if err != nil { + return err + } + securityMonitoring := securityMonitoring1 + defender.SecurityMonitoring = &securityMonitoring + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileDefender populates our ManagedClusterSecurityProfileDefender from the provided source ManagedClusterSecurityProfileDefender +func (defender *ManagedClusterSecurityProfileDefender) AssignProperties_From_ManagedClusterSecurityProfileDefender(source *v20231001s.ManagedClusterSecurityProfileDefender) error { + + // LogAnalyticsWorkspaceResourceReference + if source.LogAnalyticsWorkspaceResourceReference != nil { + logAnalyticsWorkspaceResourceReference := source.LogAnalyticsWorkspaceResourceReference.Copy() + defender.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference + } else { + defender.LogAnalyticsWorkspaceResourceReference = nil + } + + // SecurityMonitoring + if source.SecurityMonitoring != nil { + var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := securityMonitoring.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(source.SecurityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring() to populate field SecurityMonitoring") + } + defender.SecurityMonitoring = &securityMonitoring + } else { + defender.SecurityMonitoring = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefender populates the provided destination ManagedClusterSecurityProfileDefender from our ManagedClusterSecurityProfileDefender +func (defender *ManagedClusterSecurityProfileDefender) AssignProperties_To_ManagedClusterSecurityProfileDefender(destination *v20231001s.ManagedClusterSecurityProfileDefender) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // LogAnalyticsWorkspaceResourceReference + if defender.LogAnalyticsWorkspaceResourceReference != nil { + logAnalyticsWorkspaceResourceReference := defender.LogAnalyticsWorkspaceResourceReference.Copy() + destination.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference + } else { + destination.LogAnalyticsWorkspaceResourceReference = nil + } + + // SecurityMonitoring + if defender.SecurityMonitoring != nil { + var securityMonitoring v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := defender.SecurityMonitoring.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&securityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring() to populate field SecurityMonitoring") + } + destination.SecurityMonitoring = &securityMonitoring + } else { + destination.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSecurityProfileDefender_STATUS populates our ManagedClusterSecurityProfileDefender from the provided source ManagedClusterSecurityProfileDefender_STATUS +func (defender *ManagedClusterSecurityProfileDefender) Initialize_From_ManagedClusterSecurityProfileDefender_STATUS(source *ManagedClusterSecurityProfileDefender_STATUS) error { + + // LogAnalyticsWorkspaceResourceReference + if source.LogAnalyticsWorkspaceResourceId != nil { + logAnalyticsWorkspaceResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.LogAnalyticsWorkspaceResourceId) + defender.LogAnalyticsWorkspaceResourceReference = &logAnalyticsWorkspaceResourceReference + } else { + defender.LogAnalyticsWorkspaceResourceReference = nil + } + + // SecurityMonitoring + if source.SecurityMonitoring != nil { + var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := securityMonitoring.Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source.SecurityMonitoring) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") + } + defender.SecurityMonitoring = &securityMonitoring + } else { + defender.SecurityMonitoring = nil + } + + // No error + return nil +} + +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender_STATUS struct { + // LogAnalyticsWorkspaceResourceId: Resource ID of the Log Analytics workspace to be associated with Microsoft Defender. + // When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When Microsoft + // Defender is disabled, leave the field empty. + LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` + + // SecurityMonitoring: Microsoft Defender threat detection for Cloud settings for the security profile. + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS `json:"securityMonitoring,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSecurityProfileDefender_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (defender *ManagedClusterSecurityProfileDefender_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileDefender_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (defender *ManagedClusterSecurityProfileDefender_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileDefender_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileDefender_STATUS_ARM, got %T", armInput) + } + + // Set property "LogAnalyticsWorkspaceResourceId": + if typedInput.LogAnalyticsWorkspaceResourceId != nil { + logAnalyticsWorkspaceResourceId := *typedInput.LogAnalyticsWorkspaceResourceId + defender.LogAnalyticsWorkspaceResourceId = &logAnalyticsWorkspaceResourceId + } + + // Set property "SecurityMonitoring": + if typedInput.SecurityMonitoring != nil { + var securityMonitoring1 ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := securityMonitoring1.PopulateFromARM(owner, *typedInput.SecurityMonitoring) + if err != nil { + return err + } + securityMonitoring := securityMonitoring1 + defender.SecurityMonitoring = &securityMonitoring + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS populates our ManagedClusterSecurityProfileDefender_STATUS from the provided source ManagedClusterSecurityProfileDefender_STATUS +func (defender *ManagedClusterSecurityProfileDefender_STATUS) AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(source *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error { + + // LogAnalyticsWorkspaceResourceId + defender.LogAnalyticsWorkspaceResourceId = genruntime.ClonePointerToString(source.LogAnalyticsWorkspaceResourceId) + + // SecurityMonitoring + if source.SecurityMonitoring != nil { + var securityMonitoring ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := securityMonitoring.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source.SecurityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") + } + defender.SecurityMonitoring = &securityMonitoring + } else { + defender.SecurityMonitoring = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS populates the provided destination ManagedClusterSecurityProfileDefender_STATUS from our ManagedClusterSecurityProfileDefender_STATUS +func (defender *ManagedClusterSecurityProfileDefender_STATUS) AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(destination *v20231001s.ManagedClusterSecurityProfileDefender_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // LogAnalyticsWorkspaceResourceId + destination.LogAnalyticsWorkspaceResourceId = genruntime.ClonePointerToString(defender.LogAnalyticsWorkspaceResourceId) + + // SecurityMonitoring + if defender.SecurityMonitoring != nil { + var securityMonitoring v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := defender.SecurityMonitoring.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&securityMonitoring) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS() to populate field SecurityMonitoring") + } + destination.SecurityMonitoring = &securityMonitoring + } else { + destination.SecurityMonitoring = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner struct { + // Enabled: Whether to enable Image Cleaner on AKS cluster. + Enabled *bool `json:"enabled,omitempty"` + + // IntervalHours: Image Cleaner scanning interval in hours. + IntervalHours *int `json:"intervalHours,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSecurityProfileImageCleaner{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (cleaner *ManagedClusterSecurityProfileImageCleaner) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if cleaner == nil { + return nil, nil + } + result := &ManagedClusterSecurityProfileImageCleaner_ARM{} + + // Set property "Enabled": + if cleaner.Enabled != nil { + enabled := *cleaner.Enabled + result.Enabled = &enabled + } + + // Set property "IntervalHours": + if cleaner.IntervalHours != nil { + intervalHours := *cleaner.IntervalHours + result.IntervalHours = &intervalHours + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (cleaner *ManagedClusterSecurityProfileImageCleaner) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileImageCleaner_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (cleaner *ManagedClusterSecurityProfileImageCleaner) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileImageCleaner_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileImageCleaner_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + cleaner.Enabled = &enabled + } + + // Set property "IntervalHours": + if typedInput.IntervalHours != nil { + intervalHours := *typedInput.IntervalHours + cleaner.IntervalHours = &intervalHours + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileImageCleaner populates our ManagedClusterSecurityProfileImageCleaner from the provided source ManagedClusterSecurityProfileImageCleaner +func (cleaner *ManagedClusterSecurityProfileImageCleaner) AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(source *v20231001s.ManagedClusterSecurityProfileImageCleaner) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + cleaner.Enabled = &enabled + } else { + cleaner.Enabled = nil + } + + // IntervalHours + cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileImageCleaner populates the provided destination ManagedClusterSecurityProfileImageCleaner from our ManagedClusterSecurityProfileImageCleaner +func (cleaner *ManagedClusterSecurityProfileImageCleaner) AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(destination *v20231001s.ManagedClusterSecurityProfileImageCleaner) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if cleaner.Enabled != nil { + enabled := *cleaner.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IntervalHours + destination.IntervalHours = genruntime.ClonePointerToInt(cleaner.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS populates our ManagedClusterSecurityProfileImageCleaner from the provided source ManagedClusterSecurityProfileImageCleaner_STATUS +func (cleaner *ManagedClusterSecurityProfileImageCleaner) Initialize_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source *ManagedClusterSecurityProfileImageCleaner_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + cleaner.Enabled = &enabled + } else { + cleaner.Enabled = nil + } + + // IntervalHours + cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) + + // No error + return nil +} + +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner_STATUS struct { + // Enabled: Whether to enable Image Cleaner on AKS cluster. + Enabled *bool `json:"enabled,omitempty"` + + // IntervalHours: Image Cleaner scanning interval in hours. + IntervalHours *int `json:"intervalHours,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSecurityProfileImageCleaner_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileImageCleaner_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileImageCleaner_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + cleaner.Enabled = &enabled + } + + // Set property "IntervalHours": + if typedInput.IntervalHours != nil { + intervalHours := *typedInput.IntervalHours + cleaner.IntervalHours = &intervalHours + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS populates our ManagedClusterSecurityProfileImageCleaner_STATUS from the provided source ManagedClusterSecurityProfileImageCleaner_STATUS +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(source *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + cleaner.Enabled = &enabled + } else { + cleaner.Enabled = nil + } + + // IntervalHours + cleaner.IntervalHours = genruntime.ClonePointerToInt(source.IntervalHours) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS populates the provided destination ManagedClusterSecurityProfileImageCleaner_STATUS from our ManagedClusterSecurityProfileImageCleaner_STATUS +func (cleaner *ManagedClusterSecurityProfileImageCleaner_STATUS) AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(destination *v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if cleaner.Enabled != nil { + enabled := *cleaner.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // IntervalHours + destination.IntervalHours = genruntime.ClonePointerToInt(cleaner.IntervalHours) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity struct { + // Enabled: Whether to enable workload identity. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSecurityProfileWorkloadIdentity{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if identity == nil { + return nil, nil + } + result := &ManagedClusterSecurityProfileWorkloadIdentity_ARM{} + + // Set property "Enabled": + if identity.Enabled != nil { + enabled := *identity.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileWorkloadIdentity_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileWorkloadIdentity_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileWorkloadIdentity_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + identity.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity populates our ManagedClusterSecurityProfileWorkloadIdentity from the provided source ManagedClusterSecurityProfileWorkloadIdentity +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(source *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + identity.Enabled = &enabled + } else { + identity.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity populates the provided destination ManagedClusterSecurityProfileWorkloadIdentity from our ManagedClusterSecurityProfileWorkloadIdentity +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(destination *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if identity.Enabled != nil { + enabled := *identity.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates our ManagedClusterSecurityProfileWorkloadIdentity from the provided source ManagedClusterSecurityProfileWorkloadIdentity_STATUS +func (identity *ManagedClusterSecurityProfileWorkloadIdentity) Initialize_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + identity.Enabled = &enabled + } else { + identity.Enabled = nil + } + + // No error + return nil +} + +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity_STATUS struct { + // Enabled: Whether to enable workload identity. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSecurityProfileWorkloadIdentity_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + identity.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates our ManagedClusterSecurityProfileWorkloadIdentity_STATUS from the provided source ManagedClusterSecurityProfileWorkloadIdentity_STATUS +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(source *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + identity.Enabled = &enabled + } else { + identity.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS populates the provided destination ManagedClusterSecurityProfileWorkloadIdentity_STATUS from our ManagedClusterSecurityProfileWorkloadIdentity_STATUS +func (identity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(destination *v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if identity.Enabled != nil { + enabled := *identity.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver struct { + // Enabled: Whether to enable AzureBlob CSI Driver. The default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterStorageProfileBlobCSIDriver{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (driver *ManagedClusterStorageProfileBlobCSIDriver) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if driver == nil { + return nil, nil + } + result := &ManagedClusterStorageProfileBlobCSIDriver_ARM{} + + // Set property "Enabled": + if driver.Enabled != nil { + enabled := *driver.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileBlobCSIDriver) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileBlobCSIDriver_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileBlobCSIDriver) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileBlobCSIDriver_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileBlobCSIDriver_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver populates our ManagedClusterStorageProfileBlobCSIDriver from the provided source ManagedClusterStorageProfileBlobCSIDriver +func (driver *ManagedClusterStorageProfileBlobCSIDriver) AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(source *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver populates the provided destination ManagedClusterStorageProfileBlobCSIDriver from our ManagedClusterStorageProfileBlobCSIDriver +func (driver *ManagedClusterStorageProfileBlobCSIDriver) AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(destination *v20231001s.ManagedClusterStorageProfileBlobCSIDriver) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates our ManagedClusterStorageProfileBlobCSIDriver from the provided source ManagedClusterStorageProfileBlobCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileBlobCSIDriver) Initialize_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source *ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver_STATUS struct { + // Enabled: Whether to enable AzureBlob CSI Driver. The default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterStorageProfileBlobCSIDriver_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates our ManagedClusterStorageProfileBlobCSIDriver_STATUS from the provided source ManagedClusterStorageProfileBlobCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileBlobCSIDriver_STATUS from our ManagedClusterStorageProfileBlobCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileBlobCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver struct { + // Enabled: Whether to enable AzureDisk CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterStorageProfileDiskCSIDriver{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (driver *ManagedClusterStorageProfileDiskCSIDriver) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if driver == nil { + return nil, nil + } + result := &ManagedClusterStorageProfileDiskCSIDriver_ARM{} + + // Set property "Enabled": + if driver.Enabled != nil { + enabled := *driver.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileDiskCSIDriver) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileDiskCSIDriver_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileDiskCSIDriver) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileDiskCSIDriver_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileDiskCSIDriver_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver populates our ManagedClusterStorageProfileDiskCSIDriver from the provided source ManagedClusterStorageProfileDiskCSIDriver +func (driver *ManagedClusterStorageProfileDiskCSIDriver) AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(source *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver populates the provided destination ManagedClusterStorageProfileDiskCSIDriver from our ManagedClusterStorageProfileDiskCSIDriver +func (driver *ManagedClusterStorageProfileDiskCSIDriver) AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(destination *v20231001s.ManagedClusterStorageProfileDiskCSIDriver) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates our ManagedClusterStorageProfileDiskCSIDriver from the provided source ManagedClusterStorageProfileDiskCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileDiskCSIDriver) Initialize_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source *ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver_STATUS struct { + // Enabled: Whether to enable AzureDisk CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterStorageProfileDiskCSIDriver_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates our ManagedClusterStorageProfileDiskCSIDriver_STATUS from the provided source ManagedClusterStorageProfileDiskCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileDiskCSIDriver_STATUS from our ManagedClusterStorageProfileDiskCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileDiskCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver struct { + // Enabled: Whether to enable AzureFile CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterStorageProfileFileCSIDriver{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (driver *ManagedClusterStorageProfileFileCSIDriver) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if driver == nil { + return nil, nil + } + result := &ManagedClusterStorageProfileFileCSIDriver_ARM{} + + // Set property "Enabled": + if driver.Enabled != nil { + enabled := *driver.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileFileCSIDriver) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileFileCSIDriver_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileFileCSIDriver) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileFileCSIDriver_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileFileCSIDriver_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver populates our ManagedClusterStorageProfileFileCSIDriver from the provided source ManagedClusterStorageProfileFileCSIDriver +func (driver *ManagedClusterStorageProfileFileCSIDriver) AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(source *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver populates the provided destination ManagedClusterStorageProfileFileCSIDriver from our ManagedClusterStorageProfileFileCSIDriver +func (driver *ManagedClusterStorageProfileFileCSIDriver) AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(destination *v20231001s.ManagedClusterStorageProfileFileCSIDriver) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS populates our ManagedClusterStorageProfileFileCSIDriver from the provided source ManagedClusterStorageProfileFileCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileFileCSIDriver) Initialize_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source *ManagedClusterStorageProfileFileCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver_STATUS struct { + // Enabled: Whether to enable AzureFile CSI Driver. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterStorageProfileFileCSIDriver_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + driver.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS populates our ManagedClusterStorageProfileFileCSIDriver_STATUS from the provided source ManagedClusterStorageProfileFileCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(source *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + driver.Enabled = &enabled + } else { + driver.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS populates the provided destination ManagedClusterStorageProfileFileCSIDriver_STATUS from our ManagedClusterStorageProfileFileCSIDriver_STATUS +func (driver *ManagedClusterStorageProfileFileCSIDriver_STATUS) AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(destination *v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if driver.Enabled != nil { + enabled := *driver.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController struct { + // Enabled: Whether to enable Snapshot Controller. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterStorageProfileSnapshotController{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (controller *ManagedClusterStorageProfileSnapshotController) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if controller == nil { + return nil, nil + } + result := &ManagedClusterStorageProfileSnapshotController_ARM{} + + // Set property "Enabled": + if controller.Enabled != nil { + enabled := *controller.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (controller *ManagedClusterStorageProfileSnapshotController) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileSnapshotController_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (controller *ManagedClusterStorageProfileSnapshotController) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileSnapshotController_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileSnapshotController_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + controller.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileSnapshotController populates our ManagedClusterStorageProfileSnapshotController from the provided source ManagedClusterStorageProfileSnapshotController +func (controller *ManagedClusterStorageProfileSnapshotController) AssignProperties_From_ManagedClusterStorageProfileSnapshotController(source *v20231001s.ManagedClusterStorageProfileSnapshotController) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + controller.Enabled = &enabled + } else { + controller.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileSnapshotController populates the provided destination ManagedClusterStorageProfileSnapshotController from our ManagedClusterStorageProfileSnapshotController +func (controller *ManagedClusterStorageProfileSnapshotController) AssignProperties_To_ManagedClusterStorageProfileSnapshotController(destination *v20231001s.ManagedClusterStorageProfileSnapshotController) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if controller.Enabled != nil { + enabled := *controller.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS populates our ManagedClusterStorageProfileSnapshotController from the provided source ManagedClusterStorageProfileSnapshotController_STATUS +func (controller *ManagedClusterStorageProfileSnapshotController) Initialize_From_ManagedClusterStorageProfileSnapshotController_STATUS(source *ManagedClusterStorageProfileSnapshotController_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + controller.Enabled = &enabled + } else { + controller.Enabled = nil + } + + // No error + return nil +} + +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController_STATUS struct { + // Enabled: Whether to enable Snapshot Controller. The default value is true. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterStorageProfileSnapshotController_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterStorageProfileSnapshotController_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterStorageProfileSnapshotController_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterStorageProfileSnapshotController_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + controller.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS populates our ManagedClusterStorageProfileSnapshotController_STATUS from the provided source ManagedClusterStorageProfileSnapshotController_STATUS +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(source *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + controller.Enabled = &enabled + } else { + controller.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS populates the provided destination ManagedClusterStorageProfileSnapshotController_STATUS from our ManagedClusterStorageProfileSnapshotController_STATUS +func (controller *ManagedClusterStorageProfileSnapshotController_STATUS) AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(destination *v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if controller.Enabled != nil { + enabled := *controller.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"None","Windows_Server"} +type ManagedClusterWindowsProfile_LicenseType string + +const ( + ManagedClusterWindowsProfile_LicenseType_None = ManagedClusterWindowsProfile_LicenseType("None") + ManagedClusterWindowsProfile_LicenseType_Windows_Server = ManagedClusterWindowsProfile_LicenseType("Windows_Server") +) + +type ManagedClusterWindowsProfile_LicenseType_STATUS string + +const ( + ManagedClusterWindowsProfile_LicenseType_STATUS_None = ManagedClusterWindowsProfile_LicenseType_STATUS("None") + ManagedClusterWindowsProfile_LicenseType_STATUS_Windows_Server = ManagedClusterWindowsProfile_LicenseType_STATUS("Windows_Server") +) + +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda struct { + // +kubebuilder:validation:Required + // Enabled: Whether to enable KEDA. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterWorkloadAutoScalerProfileKeda{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if keda == nil { + return nil, nil + } + result := &ManagedClusterWorkloadAutoScalerProfileKeda_ARM{} + + // Set property "Enabled": + if keda.Enabled != nil { + enabled := *keda.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfileKeda_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfileKeda_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfileKeda_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + keda.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda populates our ManagedClusterWorkloadAutoScalerProfileKeda from the provided source ManagedClusterWorkloadAutoScalerProfileKeda +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + keda.Enabled = &enabled + } else { + keda.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda populates the provided destination ManagedClusterWorkloadAutoScalerProfileKeda from our ManagedClusterWorkloadAutoScalerProfileKeda +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if keda.Enabled != nil { + enabled := *keda.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates our ManagedClusterWorkloadAutoScalerProfileKeda from the provided source ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda) Initialize_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + keda.Enabled = &enabled + } else { + keda.Enabled = nil + } + + // No error + return nil +} + +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS struct { + // Enabled: Whether to enable KEDA. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterWorkloadAutoScalerProfileKeda_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + keda.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates our ManagedClusterWorkloadAutoScalerProfileKeda_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + keda.Enabled = &enabled + } else { + keda.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfileKeda_STATUS from our ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +func (keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if keda.Enabled != nil { + enabled := *keda.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler struct { + // +kubebuilder:validation:Required + // Enabled: Whether to enable VPA. Default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if autoscaler == nil { + return nil, nil + } + result := &ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM{} + + // Set property "Enabled": + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + autoscaler.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) Initialize_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // No error + return nil +} + +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS struct { + // Enabled: Whether to enable VPA. Default value is false. + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + autoscaler.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from the provided source ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(source *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + autoscaler.Enabled = &enabled + } else { + autoscaler.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS populates the provided destination ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS from our ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +func (autoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(destination *v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if autoscaler.Enabled != nil { + enabled := *autoscaler.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"azure","kubenet","none"} +type NetworkPlugin string + +const ( + NetworkPlugin_Azure = NetworkPlugin("azure") + NetworkPlugin_Kubenet = NetworkPlugin("kubenet") + NetworkPlugin_None = NetworkPlugin("none") +) + +type PowerState_Code_STATUS string + +const ( + PowerState_Code_STATUS_Running = PowerState_Code_STATUS("Running") + PowerState_Code_STATUS_Stopped = PowerState_Code_STATUS("Stopped") +) + +// +kubebuilder:validation:Enum={"Disabled","Istio"} +type ServiceMeshProfile_Mode string + +const ( + ServiceMeshProfile_Mode_Disabled = ServiceMeshProfile_Mode("Disabled") + ServiceMeshProfile_Mode_Istio = ServiceMeshProfile_Mode("Istio") +) + +type ServiceMeshProfile_Mode_STATUS string + +const ( + ServiceMeshProfile_Mode_STATUS_Disabled = ServiceMeshProfile_Mode_STATUS("Disabled") + ServiceMeshProfile_Mode_STATUS_Istio = ServiceMeshProfile_Mode_STATUS("Istio") +) + +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings struct { + // ForceUpgrade: Whether to force upgrade the cluster. Note that this option instructs upgrade operation to bypass upgrade + // protections such as checking for deprecated API usage. Enable this option only with caution. + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + + // Until: Until when the overrides are effective. Note that this only matches the start time of an upgrade, and the + // effectiveness won't change once an upgrade starts even if the `until` expires as upgrade proceeds. This field is not set + // by default. It must be set for the overrides to take effect. + Until *string `json:"until,omitempty"` +} + +var _ genruntime.ARMTransformer = &UpgradeOverrideSettings{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (settings *UpgradeOverrideSettings) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if settings == nil { + return nil, nil + } + result := &UpgradeOverrideSettings_ARM{} + + // Set property "ForceUpgrade": + if settings.ForceUpgrade != nil { + forceUpgrade := *settings.ForceUpgrade + result.ForceUpgrade = &forceUpgrade + } + + // Set property "Until": + if settings.Until != nil { + until := *settings.Until + result.Until = &until + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *UpgradeOverrideSettings) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &UpgradeOverrideSettings_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *UpgradeOverrideSettings) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(UpgradeOverrideSettings_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected UpgradeOverrideSettings_ARM, got %T", armInput) + } + + // Set property "ForceUpgrade": + if typedInput.ForceUpgrade != nil { + forceUpgrade := *typedInput.ForceUpgrade + settings.ForceUpgrade = &forceUpgrade + } + + // Set property "Until": + if typedInput.Until != nil { + until := *typedInput.Until + settings.Until = &until + } + + // No error + return nil +} + +// AssignProperties_From_UpgradeOverrideSettings populates our UpgradeOverrideSettings from the provided source UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_From_UpgradeOverrideSettings(source *v20231001s.UpgradeOverrideSettings) error { + + // ForceUpgrade + if source.ForceUpgrade != nil { + forceUpgrade := *source.ForceUpgrade + settings.ForceUpgrade = &forceUpgrade + } else { + settings.ForceUpgrade = nil + } + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings populates the provided destination UpgradeOverrideSettings from our UpgradeOverrideSettings +func (settings *UpgradeOverrideSettings) AssignProperties_To_UpgradeOverrideSettings(destination *v20231001s.UpgradeOverrideSettings) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ForceUpgrade + if settings.ForceUpgrade != nil { + forceUpgrade := *settings.ForceUpgrade + destination.ForceUpgrade = &forceUpgrade + } else { + destination.ForceUpgrade = nil + } + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_UpgradeOverrideSettings_STATUS populates our UpgradeOverrideSettings from the provided source UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings) Initialize_From_UpgradeOverrideSettings_STATUS(source *UpgradeOverrideSettings_STATUS) error { + + // ForceUpgrade + if source.ForceUpgrade != nil { + forceUpgrade := *source.ForceUpgrade + settings.ForceUpgrade = &forceUpgrade + } else { + settings.ForceUpgrade = nil + } + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // No error + return nil +} + +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_STATUS struct { + // ForceUpgrade: Whether to force upgrade the cluster. Note that this option instructs upgrade operation to bypass upgrade + // protections such as checking for deprecated API usage. Enable this option only with caution. + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + + // Until: Until when the overrides are effective. Note that this only matches the start time of an upgrade, and the + // effectiveness won't change once an upgrade starts even if the `until` expires as upgrade proceeds. This field is not set + // by default. It must be set for the overrides to take effect. + Until *string `json:"until,omitempty"` +} + +var _ genruntime.FromARMConverter = &UpgradeOverrideSettings_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *UpgradeOverrideSettings_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &UpgradeOverrideSettings_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *UpgradeOverrideSettings_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(UpgradeOverrideSettings_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected UpgradeOverrideSettings_STATUS_ARM, got %T", armInput) + } + + // Set property "ForceUpgrade": + if typedInput.ForceUpgrade != nil { + forceUpgrade := *typedInput.ForceUpgrade + settings.ForceUpgrade = &forceUpgrade + } + + // Set property "Until": + if typedInput.Until != nil { + until := *typedInput.Until + settings.Until = &until + } + + // No error + return nil +} + +// AssignProperties_From_UpgradeOverrideSettings_STATUS populates our UpgradeOverrideSettings_STATUS from the provided source UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_From_UpgradeOverrideSettings_STATUS(source *v20231001s.UpgradeOverrideSettings_STATUS) error { + + // ForceUpgrade + if source.ForceUpgrade != nil { + forceUpgrade := *source.ForceUpgrade + settings.ForceUpgrade = &forceUpgrade + } else { + settings.ForceUpgrade = nil + } + + // Until + settings.Until = genruntime.ClonePointerToString(source.Until) + + // No error + return nil +} + +// AssignProperties_To_UpgradeOverrideSettings_STATUS populates the provided destination UpgradeOverrideSettings_STATUS from our UpgradeOverrideSettings_STATUS +func (settings *UpgradeOverrideSettings_STATUS) AssignProperties_To_UpgradeOverrideSettings_STATUS(destination *v20231001s.UpgradeOverrideSettings_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ForceUpgrade + if settings.ForceUpgrade != nil { + forceUpgrade := *settings.ForceUpgrade + destination.ForceUpgrade = &forceUpgrade + } else { + destination.ForceUpgrade = nil + } + + // Until + destination.Until = genruntime.ClonePointerToString(settings.Until) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +} + +// AssignProperties_From_UserAssignedIdentityDetails populates our UserAssignedIdentityDetails from the provided source UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedIdentityDetails(source *v20231001s.UserAssignedIdentityDetails) error { + + // Reference + details.Reference = source.Reference.Copy() + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentityDetails populates the provided destination UserAssignedIdentityDetails from our UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIdentityDetails(destination *v20231001s.UserAssignedIdentityDetails) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Reference + destination.Reference = details.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile struct { + // DnsServer: Specifies the DNS server for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + DnsServer *string `json:"dnsServer,omitempty"` + + // Enabled: Specifies whether to enable Windows gMSA in the managed cluster. + Enabled *bool `json:"enabled,omitempty"` + + // RootDomainName: Specifies the root domain name for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +var _ genruntime.ARMTransformer = &WindowsGmsaProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *WindowsGmsaProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &WindowsGmsaProfile_ARM{} + + // Set property "DnsServer": + if profile.DnsServer != nil { + dnsServer := *profile.DnsServer + result.DnsServer = &dnsServer + } + + // Set property "Enabled": + if profile.Enabled != nil { + enabled := *profile.Enabled + result.Enabled = &enabled + } + + // Set property "RootDomainName": + if profile.RootDomainName != nil { + rootDomainName := *profile.RootDomainName + result.RootDomainName = &rootDomainName + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *WindowsGmsaProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &WindowsGmsaProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *WindowsGmsaProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(WindowsGmsaProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected WindowsGmsaProfile_ARM, got %T", armInput) + } + + // Set property "DnsServer": + if typedInput.DnsServer != nil { + dnsServer := *typedInput.DnsServer + profile.DnsServer = &dnsServer + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "RootDomainName": + if typedInput.RootDomainName != nil { + rootDomainName := *typedInput.RootDomainName + profile.RootDomainName = &rootDomainName + } + + // No error + return nil +} + +// AssignProperties_From_WindowsGmsaProfile populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_From_WindowsGmsaProfile(source *v20231001s.WindowsGmsaProfile) error { + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // No error + return nil +} + +// AssignProperties_To_WindowsGmsaProfile populates the provided destination WindowsGmsaProfile from our WindowsGmsaProfile +func (profile *WindowsGmsaProfile) AssignProperties_To_WindowsGmsaProfile(destination *v20231001s.WindowsGmsaProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DnsServer + destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // RootDomainName + destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile from the provided source WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile) Initialize_From_WindowsGmsaProfile_STATUS(source *WindowsGmsaProfile_STATUS) error { + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // No error + return nil +} + +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_STATUS struct { + // DnsServer: Specifies the DNS server for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + DnsServer *string `json:"dnsServer,omitempty"` + + // Enabled: Specifies whether to enable Windows gMSA in the managed cluster. + Enabled *bool `json:"enabled,omitempty"` + + // RootDomainName: Specifies the root domain name for Windows gMSA. + // Set it to empty if you have configured the DNS server in the vnet which is used to create the managed cluster. + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +var _ genruntime.FromARMConverter = &WindowsGmsaProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *WindowsGmsaProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &WindowsGmsaProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *WindowsGmsaProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(WindowsGmsaProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected WindowsGmsaProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "DnsServer": + if typedInput.DnsServer != nil { + dnsServer := *typedInput.DnsServer + profile.DnsServer = &dnsServer + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + profile.Enabled = &enabled + } + + // Set property "RootDomainName": + if typedInput.RootDomainName != nil { + rootDomainName := *typedInput.RootDomainName + profile.RootDomainName = &rootDomainName + } + + // No error + return nil +} + +// AssignProperties_From_WindowsGmsaProfile_STATUS populates our WindowsGmsaProfile_STATUS from the provided source WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile_STATUS) AssignProperties_From_WindowsGmsaProfile_STATUS(source *v20231001s.WindowsGmsaProfile_STATUS) error { + + // DnsServer + profile.DnsServer = genruntime.ClonePointerToString(source.DnsServer) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + profile.Enabled = &enabled + } else { + profile.Enabled = nil + } + + // RootDomainName + profile.RootDomainName = genruntime.ClonePointerToString(source.RootDomainName) + + // No error + return nil +} + +// AssignProperties_To_WindowsGmsaProfile_STATUS populates the provided destination WindowsGmsaProfile_STATUS from our WindowsGmsaProfile_STATUS +func (profile *WindowsGmsaProfile_STATUS) AssignProperties_To_WindowsGmsaProfile_STATUS(destination *v20231001s.WindowsGmsaProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DnsServer + destination.DnsServer = genruntime.ClonePointerToString(profile.DnsServer) + + // Enabled + if profile.Enabled != nil { + enabled := *profile.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // RootDomainName + destination.RootDomainName = genruntime.ClonePointerToString(profile.RootDomainName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"Private","Public"} +type AzureKeyVaultKms_KeyVaultNetworkAccess string + +const ( + AzureKeyVaultKms_KeyVaultNetworkAccess_Private = AzureKeyVaultKms_KeyVaultNetworkAccess("Private") + AzureKeyVaultKms_KeyVaultNetworkAccess_Public = AzureKeyVaultKms_KeyVaultNetworkAccess("Public") +) + +type AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS string + +const ( + AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Private = AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS("Private") + AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Public = AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS("Public") +) + +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey struct { + // +kubebuilder:validation:Required + // KeyData: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or + // without headers. + KeyData *string `json:"keyData,omitempty"` +} + +var _ genruntime.ARMTransformer = &ContainerServiceSshPublicKey{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (publicKey *ContainerServiceSshPublicKey) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if publicKey == nil { + return nil, nil + } + result := &ContainerServiceSshPublicKey_ARM{} + + // Set property "KeyData": + if publicKey.KeyData != nil { + keyData := *publicKey.KeyData + result.KeyData = &keyData + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (publicKey *ContainerServiceSshPublicKey) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceSshPublicKey_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (publicKey *ContainerServiceSshPublicKey) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceSshPublicKey_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceSshPublicKey_ARM, got %T", armInput) + } + + // Set property "KeyData": + if typedInput.KeyData != nil { + keyData := *typedInput.KeyData + publicKey.KeyData = &keyData + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceSshPublicKey populates our ContainerServiceSshPublicKey from the provided source ContainerServiceSshPublicKey +func (publicKey *ContainerServiceSshPublicKey) AssignProperties_From_ContainerServiceSshPublicKey(source *v20231001s.ContainerServiceSshPublicKey) error { + + // KeyData + publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshPublicKey populates the provided destination ContainerServiceSshPublicKey from our ContainerServiceSshPublicKey +func (publicKey *ContainerServiceSshPublicKey) AssignProperties_To_ContainerServiceSshPublicKey(destination *v20231001s.ContainerServiceSshPublicKey) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // KeyData + destination.KeyData = genruntime.ClonePointerToString(publicKey.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ContainerServiceSshPublicKey_STATUS populates our ContainerServiceSshPublicKey from the provided source ContainerServiceSshPublicKey_STATUS +func (publicKey *ContainerServiceSshPublicKey) Initialize_From_ContainerServiceSshPublicKey_STATUS(source *ContainerServiceSshPublicKey_STATUS) error { + + // KeyData + publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) + + // No error + return nil +} + +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey_STATUS struct { + // KeyData: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or + // without headers. + KeyData *string `json:"keyData,omitempty"` +} + +var _ genruntime.FromARMConverter = &ContainerServiceSshPublicKey_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (publicKey *ContainerServiceSshPublicKey_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ContainerServiceSshPublicKey_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (publicKey *ContainerServiceSshPublicKey_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ContainerServiceSshPublicKey_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ContainerServiceSshPublicKey_STATUS_ARM, got %T", armInput) + } + + // Set property "KeyData": + if typedInput.KeyData != nil { + keyData := *typedInput.KeyData + publicKey.KeyData = &keyData + } + + // No error + return nil +} + +// AssignProperties_From_ContainerServiceSshPublicKey_STATUS populates our ContainerServiceSshPublicKey_STATUS from the provided source ContainerServiceSshPublicKey_STATUS +func (publicKey *ContainerServiceSshPublicKey_STATUS) AssignProperties_From_ContainerServiceSshPublicKey_STATUS(source *v20231001s.ContainerServiceSshPublicKey_STATUS) error { + + // KeyData + publicKey.KeyData = genruntime.ClonePointerToString(source.KeyData) + + // No error + return nil +} + +// AssignProperties_To_ContainerServiceSshPublicKey_STATUS populates the provided destination ContainerServiceSshPublicKey_STATUS from our ContainerServiceSshPublicKey_STATUS +func (publicKey *ContainerServiceSshPublicKey_STATUS) AssignProperties_To_ContainerServiceSshPublicKey_STATUS(destination *v20231001s.ContainerServiceSshPublicKey_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // KeyData + destination.KeyData = genruntime.ClonePointerToString(publicKey.KeyData) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority struct { + // Plugin: Plugin certificates information for Service Mesh. + Plugin *IstioPluginCertificateAuthority `json:"plugin,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioCertificateAuthority{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (authority *IstioCertificateAuthority) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if authority == nil { + return nil, nil + } + result := &IstioCertificateAuthority_ARM{} + + // Set property "Plugin": + if authority.Plugin != nil { + plugin_ARM, err := (*authority.Plugin).ConvertToARM(resolved) + if err != nil { + return nil, err + } + plugin := *plugin_ARM.(*IstioPluginCertificateAuthority_ARM) + result.Plugin = &plugin + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (authority *IstioCertificateAuthority) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioCertificateAuthority_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (authority *IstioCertificateAuthority) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioCertificateAuthority_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioCertificateAuthority_ARM, got %T", armInput) + } + + // Set property "Plugin": + if typedInput.Plugin != nil { + var plugin1 IstioPluginCertificateAuthority + err := plugin1.PopulateFromARM(owner, *typedInput.Plugin) + if err != nil { + return err + } + plugin := plugin1 + authority.Plugin = &plugin + } + + // No error + return nil +} + +// AssignProperties_From_IstioCertificateAuthority populates our IstioCertificateAuthority from the provided source IstioCertificateAuthority +func (authority *IstioCertificateAuthority) AssignProperties_From_IstioCertificateAuthority(source *v20231001s.IstioCertificateAuthority) error { + + // Plugin + if source.Plugin != nil { + var plugin IstioPluginCertificateAuthority + err := plugin.AssignProperties_From_IstioPluginCertificateAuthority(source.Plugin) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioPluginCertificateAuthority() to populate field Plugin") + } + authority.Plugin = &plugin + } else { + authority.Plugin = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioCertificateAuthority populates the provided destination IstioCertificateAuthority from our IstioCertificateAuthority +func (authority *IstioCertificateAuthority) AssignProperties_To_IstioCertificateAuthority(destination *v20231001s.IstioCertificateAuthority) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Plugin + if authority.Plugin != nil { + var plugin v20231001s.IstioPluginCertificateAuthority + err := authority.Plugin.AssignProperties_To_IstioPluginCertificateAuthority(&plugin) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioPluginCertificateAuthority() to populate field Plugin") + } + destination.Plugin = &plugin + } else { + destination.Plugin = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioCertificateAuthority_STATUS populates our IstioCertificateAuthority from the provided source IstioCertificateAuthority_STATUS +func (authority *IstioCertificateAuthority) Initialize_From_IstioCertificateAuthority_STATUS(source *IstioCertificateAuthority_STATUS) error { + + // Plugin + if source.Plugin != nil { + var plugin IstioPluginCertificateAuthority + err := plugin.Initialize_From_IstioPluginCertificateAuthority_STATUS(source.Plugin) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioPluginCertificateAuthority_STATUS() to populate field Plugin") + } + authority.Plugin = &plugin + } else { + authority.Plugin = nil + } + + // No error + return nil +} + +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority_STATUS struct { + // Plugin: Plugin certificates information for Service Mesh. + Plugin *IstioPluginCertificateAuthority_STATUS `json:"plugin,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioCertificateAuthority_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (authority *IstioCertificateAuthority_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioCertificateAuthority_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (authority *IstioCertificateAuthority_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioCertificateAuthority_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioCertificateAuthority_STATUS_ARM, got %T", armInput) + } + + // Set property "Plugin": + if typedInput.Plugin != nil { + var plugin1 IstioPluginCertificateAuthority_STATUS + err := plugin1.PopulateFromARM(owner, *typedInput.Plugin) + if err != nil { + return err + } + plugin := plugin1 + authority.Plugin = &plugin + } + + // No error + return nil +} + +// AssignProperties_From_IstioCertificateAuthority_STATUS populates our IstioCertificateAuthority_STATUS from the provided source IstioCertificateAuthority_STATUS +func (authority *IstioCertificateAuthority_STATUS) AssignProperties_From_IstioCertificateAuthority_STATUS(source *v20231001s.IstioCertificateAuthority_STATUS) error { + + // Plugin + if source.Plugin != nil { + var plugin IstioPluginCertificateAuthority_STATUS + err := plugin.AssignProperties_From_IstioPluginCertificateAuthority_STATUS(source.Plugin) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioPluginCertificateAuthority_STATUS() to populate field Plugin") + } + authority.Plugin = &plugin + } else { + authority.Plugin = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioCertificateAuthority_STATUS populates the provided destination IstioCertificateAuthority_STATUS from our IstioCertificateAuthority_STATUS +func (authority *IstioCertificateAuthority_STATUS) AssignProperties_To_IstioCertificateAuthority_STATUS(destination *v20231001s.IstioCertificateAuthority_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Plugin + if authority.Plugin != nil { + var plugin v20231001s.IstioPluginCertificateAuthority_STATUS + err := authority.Plugin.AssignProperties_To_IstioPluginCertificateAuthority_STATUS(&plugin) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioPluginCertificateAuthority_STATUS() to populate field Plugin") + } + destination.Plugin = &plugin + } else { + destination.Plugin = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Istio components configuration. +type IstioComponents struct { + // EgressGateways: Istio egress gateways. + EgressGateways []IstioEgressGateway `json:"egressGateways,omitempty"` + + // IngressGateways: Istio ingress gateways. + IngressGateways []IstioIngressGateway `json:"ingressGateways,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioComponents{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (components *IstioComponents) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if components == nil { + return nil, nil + } + result := &IstioComponents_ARM{} + + // Set property "EgressGateways": + for _, item := range components.EgressGateways { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.EgressGateways = append(result.EgressGateways, *item_ARM.(*IstioEgressGateway_ARM)) + } + + // Set property "IngressGateways": + for _, item := range components.IngressGateways { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.IngressGateways = append(result.IngressGateways, *item_ARM.(*IstioIngressGateway_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (components *IstioComponents) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioComponents_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (components *IstioComponents) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioComponents_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioComponents_ARM, got %T", armInput) + } + + // Set property "EgressGateways": + for _, item := range typedInput.EgressGateways { + var item1 IstioEgressGateway + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + components.EgressGateways = append(components.EgressGateways, item1) + } + + // Set property "IngressGateways": + for _, item := range typedInput.IngressGateways { + var item1 IstioIngressGateway + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + components.IngressGateways = append(components.IngressGateways, item1) + } + + // No error + return nil +} + +// AssignProperties_From_IstioComponents populates our IstioComponents from the provided source IstioComponents +func (components *IstioComponents) AssignProperties_From_IstioComponents(source *v20231001s.IstioComponents) error { + + // EgressGateways + if source.EgressGateways != nil { + egressGatewayList := make([]IstioEgressGateway, len(source.EgressGateways)) + for egressGatewayIndex, egressGatewayItem := range source.EgressGateways { + // Shadow the loop variable to avoid aliasing + egressGatewayItem := egressGatewayItem + var egressGateway IstioEgressGateway + err := egressGateway.AssignProperties_From_IstioEgressGateway(&egressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioEgressGateway() to populate field EgressGateways") + } + egressGatewayList[egressGatewayIndex] = egressGateway + } + components.EgressGateways = egressGatewayList + } else { + components.EgressGateways = nil + } + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway + err := ingressGateway.AssignProperties_From_IstioIngressGateway(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents populates the provided destination IstioComponents from our IstioComponents +func (components *IstioComponents) AssignProperties_To_IstioComponents(destination *v20231001s.IstioComponents) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // EgressGateways + if components.EgressGateways != nil { + egressGatewayList := make([]v20231001s.IstioEgressGateway, len(components.EgressGateways)) + for egressGatewayIndex, egressGatewayItem := range components.EgressGateways { + // Shadow the loop variable to avoid aliasing + egressGatewayItem := egressGatewayItem + var egressGateway v20231001s.IstioEgressGateway + err := egressGatewayItem.AssignProperties_To_IstioEgressGateway(&egressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioEgressGateway() to populate field EgressGateways") + } + egressGatewayList[egressGatewayIndex] = egressGateway + } + destination.EgressGateways = egressGatewayList + } else { + destination.EgressGateways = nil + } + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20231001s.IstioIngressGateway, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20231001s.IstioIngressGateway + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioComponents_STATUS populates our IstioComponents from the provided source IstioComponents_STATUS +func (components *IstioComponents) Initialize_From_IstioComponents_STATUS(source *IstioComponents_STATUS) error { + + // EgressGateways + if source.EgressGateways != nil { + egressGatewayList := make([]IstioEgressGateway, len(source.EgressGateways)) + for egressGatewayIndex, egressGatewayItem := range source.EgressGateways { + // Shadow the loop variable to avoid aliasing + egressGatewayItem := egressGatewayItem + var egressGateway IstioEgressGateway + err := egressGateway.Initialize_From_IstioEgressGateway_STATUS(&egressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioEgressGateway_STATUS() to populate field EgressGateways") + } + egressGatewayList[egressGatewayIndex] = egressGateway + } + components.EgressGateways = egressGatewayList + } else { + components.EgressGateways = nil + } + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway + err := ingressGateway.Initialize_From_IstioIngressGateway_STATUS(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // No error + return nil +} + +// Istio components configuration. +type IstioComponents_STATUS struct { + // EgressGateways: Istio egress gateways. + EgressGateways []IstioEgressGateway_STATUS `json:"egressGateways,omitempty"` + + // IngressGateways: Istio ingress gateways. + IngressGateways []IstioIngressGateway_STATUS `json:"ingressGateways,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioComponents_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (components *IstioComponents_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioComponents_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (components *IstioComponents_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioComponents_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioComponents_STATUS_ARM, got %T", armInput) + } + + // Set property "EgressGateways": + for _, item := range typedInput.EgressGateways { + var item1 IstioEgressGateway_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + components.EgressGateways = append(components.EgressGateways, item1) + } + + // Set property "IngressGateways": + for _, item := range typedInput.IngressGateways { + var item1 IstioIngressGateway_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + components.IngressGateways = append(components.IngressGateways, item1) + } + + // No error + return nil +} + +// AssignProperties_From_IstioComponents_STATUS populates our IstioComponents_STATUS from the provided source IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_From_IstioComponents_STATUS(source *v20231001s.IstioComponents_STATUS) error { + + // EgressGateways + if source.EgressGateways != nil { + egressGatewayList := make([]IstioEgressGateway_STATUS, len(source.EgressGateways)) + for egressGatewayIndex, egressGatewayItem := range source.EgressGateways { + // Shadow the loop variable to avoid aliasing + egressGatewayItem := egressGatewayItem + var egressGateway IstioEgressGateway_STATUS + err := egressGateway.AssignProperties_From_IstioEgressGateway_STATUS(&egressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioEgressGateway_STATUS() to populate field EgressGateways") + } + egressGatewayList[egressGatewayIndex] = egressGateway + } + components.EgressGateways = egressGatewayList + } else { + components.EgressGateways = nil + } + + // IngressGateways + if source.IngressGateways != nil { + ingressGatewayList := make([]IstioIngressGateway_STATUS, len(source.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range source.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway IstioIngressGateway_STATUS + err := ingressGateway.AssignProperties_From_IstioIngressGateway_STATUS(&ingressGatewayItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + components.IngressGateways = ingressGatewayList + } else { + components.IngressGateways = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioComponents_STATUS populates the provided destination IstioComponents_STATUS from our IstioComponents_STATUS +func (components *IstioComponents_STATUS) AssignProperties_To_IstioComponents_STATUS(destination *v20231001s.IstioComponents_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // EgressGateways + if components.EgressGateways != nil { + egressGatewayList := make([]v20231001s.IstioEgressGateway_STATUS, len(components.EgressGateways)) + for egressGatewayIndex, egressGatewayItem := range components.EgressGateways { + // Shadow the loop variable to avoid aliasing + egressGatewayItem := egressGatewayItem + var egressGateway v20231001s.IstioEgressGateway_STATUS + err := egressGatewayItem.AssignProperties_To_IstioEgressGateway_STATUS(&egressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioEgressGateway_STATUS() to populate field EgressGateways") + } + egressGatewayList[egressGatewayIndex] = egressGateway + } + destination.EgressGateways = egressGatewayList + } else { + destination.EgressGateways = nil + } + + // IngressGateways + if components.IngressGateways != nil { + ingressGatewayList := make([]v20231001s.IstioIngressGateway_STATUS, len(components.IngressGateways)) + for ingressGatewayIndex, ingressGatewayItem := range components.IngressGateways { + // Shadow the loop variable to avoid aliasing + ingressGatewayItem := ingressGatewayItem + var ingressGateway v20231001s.IstioIngressGateway_STATUS + err := ingressGatewayItem.AssignProperties_To_IstioIngressGateway_STATUS(&ingressGateway) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IstioIngressGateway_STATUS() to populate field IngressGateways") + } + ingressGatewayList[ingressGatewayIndex] = ingressGateway + } + destination.IngressGateways = ingressGatewayList + } else { + destination.IngressGateways = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics struct { + // MetricAnnotationsAllowList: Comma-separated list of Kubernetes annotation keys that will be used in the resource's + // labels metric (Example: 'namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...'). By default the metric + // contains only resource name and namespace labels. + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + + // MetricLabelsAllowlist: Comma-separated list of additional Kubernetes label keys that will be used in the resource's + // labels metric (Example: 'namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...'). By default the metric contains only + // resource name and namespace labels. + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterAzureMonitorProfileKubeStateMetrics{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if metrics == nil { + return nil, nil + } + result := &ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM{} + + // Set property "MetricAnnotationsAllowList": + if metrics.MetricAnnotationsAllowList != nil { + metricAnnotationsAllowList := *metrics.MetricAnnotationsAllowList + result.MetricAnnotationsAllowList = &metricAnnotationsAllowList + } + + // Set property "MetricLabelsAllowlist": + if metrics.MetricLabelsAllowlist != nil { + metricLabelsAllowlist := *metrics.MetricLabelsAllowlist + result.MetricLabelsAllowlist = &metricLabelsAllowlist + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM, got %T", armInput) + } + + // Set property "MetricAnnotationsAllowList": + if typedInput.MetricAnnotationsAllowList != nil { + metricAnnotationsAllowList := *typedInput.MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = &metricAnnotationsAllowList + } + + // Set property "MetricLabelsAllowlist": + if typedInput.MetricLabelsAllowlist != nil { + metricLabelsAllowlist := *typedInput.MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = &metricLabelsAllowlist + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics populates our ManagedClusterAzureMonitorProfileKubeStateMetrics from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(source *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error { + + // MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics populates the provided destination ManagedClusterAzureMonitorProfileKubeStateMetrics from our ManagedClusterAzureMonitorProfileKubeStateMetrics +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(destination *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // MetricAnnotationsAllowList + destination.MetricAnnotationsAllowList = genruntime.ClonePointerToString(metrics.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + destination.MetricLabelsAllowlist = genruntime.ClonePointerToString(metrics.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates our ManagedClusterAzureMonitorProfileKubeStateMetrics from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics) Initialize_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { + + // MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) + + // No error + return nil +} + +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS struct { + // MetricAnnotationsAllowList: Comma-separated list of Kubernetes annotation keys that will be used in the resource's + // labels metric (Example: 'namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...'). By default the metric + // contains only resource name and namespace labels. + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + + // MetricLabelsAllowlist: Comma-separated list of additional Kubernetes label keys that will be used in the resource's + // labels metric (Example: 'namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...'). By default the metric contains only + // resource name and namespace labels. + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM, got %T", armInput) + } + + // Set property "MetricAnnotationsAllowList": + if typedInput.MetricAnnotationsAllowList != nil { + metricAnnotationsAllowList := *typedInput.MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = &metricAnnotationsAllowList + } + + // Set property "MetricLabelsAllowlist": + if typedInput.MetricLabelsAllowlist != nil { + metricLabelsAllowlist := *typedInput.MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = &metricLabelsAllowlist + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates our ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS from the provided source ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(source *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { + + // MetricAnnotationsAllowList + metrics.MetricAnnotationsAllowList = genruntime.ClonePointerToString(source.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + metrics.MetricLabelsAllowlist = genruntime.ClonePointerToString(source.MetricLabelsAllowlist) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS populates the provided destination ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS from our ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +func (metrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(destination *v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // MetricAnnotationsAllowList + destination.MetricAnnotationsAllowList = genruntime.ClonePointerToString(metrics.MetricAnnotationsAllowList) + + // MetricLabelsAllowlist + destination.MetricLabelsAllowlist = genruntime.ClonePointerToString(metrics.MetricLabelsAllowlist) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"NodeIP","NodeIPConfiguration"} +type ManagedClusterLoadBalancerProfile_BackendPoolType string + +const ( + ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIP = ManagedClusterLoadBalancerProfile_BackendPoolType("NodeIP") + ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIPConfiguration = ManagedClusterLoadBalancerProfile_BackendPoolType("NodeIPConfiguration") +) + +type ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS string + +const ( + ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIP = ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS("NodeIP") + ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIPConfiguration = ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS("NodeIPConfiguration") +) + +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs struct { + // +kubebuilder:validation:Maximum=100 + // +kubebuilder:validation:Minimum=1 + // Count: The desired number of IPv4 outbound IPs created/managed by Azure for the cluster load balancer. Allowed values + // must be in the range of 1 to 100 (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` + + // +kubebuilder:validation:Maximum=100 + // +kubebuilder:validation:Minimum=0 + // CountIPv6: The desired number of IPv6 outbound IPs created/managed by Azure for the cluster load balancer. Allowed + // values must be in the range of 1 to 100 (inclusive). The default value is 0 for single-stack and 1 for dual-stack. + CountIPv6 *int `json:"countIPv6,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterLoadBalancerProfile_ManagedOutboundIPs{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if iPs == nil { + return nil, nil + } + result := &ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM{} + + // Set property "Count": + if iPs.Count != nil { + count := *iPs.Count + result.Count = &count + } + + // Set property "CountIPv6": + if iPs.CountIPv6 != nil { + countIPv6 := *iPs.CountIPv6 + result.CountIPv6 = &countIPv6 + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM, got %T", armInput) + } + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + iPs.Count = &count + } + + // Set property "CountIPv6": + if typedInput.CountIPv6 != nil { + countIPv6 := *typedInput.CountIPv6 + iPs.CountIPv6 = &countIPv6 + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(source *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error { + + // Count + if source.Count != nil { + count := *source.Count + iPs.Count = &count + } else { + iPs.Count = nil + } + + // CountIPv6 + if source.CountIPv6 != nil { + countIPv6 := *source.CountIPv6 + iPs.CountIPv6 = &countIPv6 + } else { + iPs.CountIPv6 = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs populates the provided destination ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(destination *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Count + if iPs.Count != nil { + count := *iPs.Count + destination.Count = &count + } else { + destination.Count = nil + } + + // CountIPv6 + if iPs.CountIPv6 != nil { + countIPv6 := *iPs.CountIPv6 + destination.CountIPv6 = &countIPv6 + } else { + destination.CountIPv6 = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) Initialize_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { + + // Count + if source.Count != nil { + count := *source.Count + iPs.Count = &count + } else { + iPs.Count = nil + } + + // CountIPv6 + if source.CountIPv6 != nil { + countIPv6 := *source.CountIPv6 + iPs.CountIPv6 = &countIPv6 + } else { + iPs.CountIPv6 = nil + } + + // No error + return nil +} + +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS struct { + // Count: The desired number of IPv4 outbound IPs created/managed by Azure for the cluster load balancer. Allowed values + // must be in the range of 1 to 100 (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` + + // CountIPv6: The desired number of IPv6 outbound IPs created/managed by Azure for the cluster load balancer. Allowed + // values must be in the range of 1 to 100 (inclusive). The default value is 0 for single-stack and 1 for dual-stack. + CountIPv6 *int `json:"countIPv6,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM, got %T", armInput) + } + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + iPs.Count = &count + } + + // Set property "CountIPv6": + if typedInput.CountIPv6 != nil { + countIPv6 := *typedInput.CountIPv6 + iPs.CountIPv6 = &countIPv6 + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS from the provided source ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { + + // Count + iPs.Count = genruntime.ClonePointerToInt(source.Count) + + // CountIPv6 + iPs.CountIPv6 = genruntime.ClonePointerToInt(source.CountIPv6) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS from our ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Count + destination.Count = genruntime.ClonePointerToInt(iPs.Count) + + // CountIPv6 + destination.CountIPv6 = genruntime.ClonePointerToInt(iPs.CountIPv6) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes struct { + // PublicIPPrefixes: A list of public IP prefix resources. + PublicIPPrefixes []ResourceReference `json:"publicIPPrefixes,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterLoadBalancerProfile_OutboundIPPrefixes{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if prefixes == nil { + return nil, nil + } + result := &ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM{} + + // Set property "PublicIPPrefixes": + for _, item := range prefixes.PublicIPPrefixes { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.PublicIPPrefixes = append(result.PublicIPPrefixes, *item_ARM.(*ResourceReference_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM, got %T", armInput) + } + + // Set property "PublicIPPrefixes": + for _, item := range typedInput.PublicIPPrefixes { + var item1 ResourceReference + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + prefixes.PublicIPPrefixes = append(prefixes.PublicIPPrefixes, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error { + + // PublicIPPrefixes + if source.PublicIPPrefixes != nil { + publicIPPrefixList := make([]ResourceReference, len(source.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix ResourceReference + err := publicIPPrefix.AssignProperties_From_ResourceReference(&publicIPPrefixItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + prefixes.PublicIPPrefixes = publicIPPrefixList + } else { + prefixes.PublicIPPrefixes = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicIPPrefixes + if prefixes.PublicIPPrefixes != nil { + publicIPPrefixList := make([]v20231001s.ResourceReference, len(prefixes.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range prefixes.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix v20231001s.ResourceReference + err := publicIPPrefixItem.AssignProperties_To_ResourceReference(&publicIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + destination.PublicIPPrefixes = publicIPPrefixList + } else { + destination.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { + + // PublicIPPrefixes + if source.PublicIPPrefixes != nil { + publicIPPrefixList := make([]ResourceReference, len(source.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix ResourceReference + err := publicIPPrefix.Initialize_From_ResourceReference_STATUS(&publicIPPrefixItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + prefixes.PublicIPPrefixes = publicIPPrefixList + } else { + prefixes.PublicIPPrefixes = nil + } + + // No error + return nil +} + +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS struct { + // PublicIPPrefixes: A list of public IP prefix resources. + PublicIPPrefixes []ResourceReference_STATUS `json:"publicIPPrefixes,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM, got %T", armInput) + } + + // Set property "PublicIPPrefixes": + for _, item := range typedInput.PublicIPPrefixes { + var item1 ResourceReference_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + prefixes.PublicIPPrefixes = append(prefixes.PublicIPPrefixes, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS from the provided source ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { + + // PublicIPPrefixes + if source.PublicIPPrefixes != nil { + publicIPPrefixList := make([]ResourceReference_STATUS, len(source.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range source.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix ResourceReference_STATUS + err := publicIPPrefix.AssignProperties_From_ResourceReference_STATUS(&publicIPPrefixItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + prefixes.PublicIPPrefixes = publicIPPrefixList + } else { + prefixes.PublicIPPrefixes = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS from our ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +func (prefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicIPPrefixes + if prefixes.PublicIPPrefixes != nil { + publicIPPrefixList := make([]v20231001s.ResourceReference_STATUS, len(prefixes.PublicIPPrefixes)) + for publicIPPrefixIndex, publicIPPrefixItem := range prefixes.PublicIPPrefixes { + // Shadow the loop variable to avoid aliasing + publicIPPrefixItem := publicIPPrefixItem + var publicIPPrefix v20231001s.ResourceReference_STATUS + err := publicIPPrefixItem.AssignProperties_To_ResourceReference_STATUS(&publicIPPrefix) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field PublicIPPrefixes") + } + publicIPPrefixList[publicIPPrefixIndex] = publicIPPrefix + } + destination.PublicIPPrefixes = publicIPPrefixList + } else { + destination.PublicIPPrefixes = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterLoadBalancerProfile_OutboundIPs struct { + // PublicIPs: A list of public IP resources. + PublicIPs []ResourceReference `json:"publicIPs,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterLoadBalancerProfile_OutboundIPs{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if iPs == nil { + return nil, nil + } + result := &ManagedClusterLoadBalancerProfile_OutboundIPs_ARM{} + + // Set property "PublicIPs": + for _, item := range iPs.PublicIPs { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.PublicIPs = append(result.PublicIPs, *item_ARM.(*ResourceReference_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_OutboundIPs_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_OutboundIPs_ARM, got %T", armInput) + } + + // Set property "PublicIPs": + for _, item := range typedInput.PublicIPs { + var item1 ResourceReference + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + iPs.PublicIPs = append(iPs.PublicIPs, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs populates our ManagedClusterLoadBalancerProfile_OutboundIPs from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error { + + // PublicIPs + if source.PublicIPs != nil { + publicIPList := make([]ResourceReference, len(source.PublicIPs)) + for publicIPIndex, publicIPItem := range source.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP ResourceReference + err := publicIP.AssignProperties_From_ResourceReference(&publicIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + iPs.PublicIPs = publicIPList + } else { + iPs.PublicIPs = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPs from our ManagedClusterLoadBalancerProfile_OutboundIPs +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicIPs + if iPs.PublicIPs != nil { + publicIPList := make([]v20231001s.ResourceReference, len(iPs.PublicIPs)) + for publicIPIndex, publicIPItem := range iPs.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP v20231001s.ResourceReference + err := publicIPItem.AssignProperties_To_ResourceReference(&publicIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + destination.PublicIPs = publicIPList + } else { + destination.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPs from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs) Initialize_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { + + // PublicIPs + if source.PublicIPs != nil { + publicIPList := make([]ResourceReference, len(source.PublicIPs)) + for publicIPIndex, publicIPItem := range source.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP ResourceReference + err := publicIP.Initialize_From_ResourceReference_STATUS(&publicIPItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ResourceReference_STATUS() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + iPs.PublicIPs = publicIPList + } else { + iPs.PublicIPs = nil + } + + // No error + return nil +} + +type ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS struct { + // PublicIPs: A list of public IP resources. + PublicIPs []ResourceReference_STATUS `json:"publicIPs,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM, got %T", armInput) + } + + // Set property "PublicIPs": + for _, item := range typedInput.PublicIPs { + var item1 ResourceReference_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + iPs.PublicIPs = append(iPs.PublicIPs, item1) + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates our ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS from the provided source ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(source *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { + + // PublicIPs + if source.PublicIPs != nil { + publicIPList := make([]ResourceReference_STATUS, len(source.PublicIPs)) + for publicIPIndex, publicIPItem := range source.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP ResourceReference_STATUS + err := publicIP.AssignProperties_From_ResourceReference_STATUS(&publicIPItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ResourceReference_STATUS() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + iPs.PublicIPs = publicIPList + } else { + iPs.PublicIPs = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS populates the provided destination ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS from our ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +func (iPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(destination *v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PublicIPs + if iPs.PublicIPs != nil { + publicIPList := make([]v20231001s.ResourceReference_STATUS, len(iPs.PublicIPs)) + for publicIPIndex, publicIPItem := range iPs.PublicIPs { + // Shadow the loop variable to avoid aliasing + publicIPItem := publicIPItem + var publicIP v20231001s.ResourceReference_STATUS + err := publicIPItem.AssignProperties_To_ResourceReference_STATUS(&publicIP) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ResourceReference_STATUS() to populate field PublicIPs") + } + publicIPList[publicIPIndex] = publicIP + } + destination.PublicIPs = publicIPList + } else { + destination.PublicIPs = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile struct { + // +kubebuilder:validation:Maximum=16 + // +kubebuilder:validation:Minimum=1 + // Count: The desired number of outbound IPs created/managed by Azure. Allowed values must be in the range of 1 to 16 + // (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterManagedOutboundIPProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *ManagedClusterManagedOutboundIPProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &ManagedClusterManagedOutboundIPProfile_ARM{} + + // Set property "Count": + if profile.Count != nil { + count := *profile.Count + result.Count = &count + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterManagedOutboundIPProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterManagedOutboundIPProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterManagedOutboundIPProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterManagedOutboundIPProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterManagedOutboundIPProfile_ARM, got %T", armInput) + } + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + profile.Count = &count + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterManagedOutboundIPProfile populates our ManagedClusterManagedOutboundIPProfile from the provided source ManagedClusterManagedOutboundIPProfile +func (profile *ManagedClusterManagedOutboundIPProfile) AssignProperties_From_ManagedClusterManagedOutboundIPProfile(source *v20231001s.ManagedClusterManagedOutboundIPProfile) error { + + // Count + if source.Count != nil { + count := *source.Count + profile.Count = &count + } else { + profile.Count = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterManagedOutboundIPProfile populates the provided destination ManagedClusterManagedOutboundIPProfile from our ManagedClusterManagedOutboundIPProfile +func (profile *ManagedClusterManagedOutboundIPProfile) AssignProperties_To_ManagedClusterManagedOutboundIPProfile(destination *v20231001s.ManagedClusterManagedOutboundIPProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Count + if profile.Count != nil { + count := *profile.Count + destination.Count = &count + } else { + destination.Count = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS populates our ManagedClusterManagedOutboundIPProfile from the provided source ManagedClusterManagedOutboundIPProfile_STATUS +func (profile *ManagedClusterManagedOutboundIPProfile) Initialize_From_ManagedClusterManagedOutboundIPProfile_STATUS(source *ManagedClusterManagedOutboundIPProfile_STATUS) error { + + // Count + if source.Count != nil { + count := *source.Count + profile.Count = &count + } else { + profile.Count = nil + } + + // No error + return nil +} + +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile_STATUS struct { + // Count: The desired number of outbound IPs created/managed by Azure. Allowed values must be in the range of 1 to 16 + // (inclusive). The default value is 1. + Count *int `json:"count,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterManagedOutboundIPProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterManagedOutboundIPProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterManagedOutboundIPProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterManagedOutboundIPProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "Count": + if typedInput.Count != nil { + count := *typedInput.Count + profile.Count = &count + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS populates our ManagedClusterManagedOutboundIPProfile_STATUS from the provided source ManagedClusterManagedOutboundIPProfile_STATUS +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(source *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error { + + // Count + profile.Count = genruntime.ClonePointerToInt(source.Count) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS populates the provided destination ManagedClusterManagedOutboundIPProfile_STATUS from our ManagedClusterManagedOutboundIPProfile_STATUS +func (profile *ManagedClusterManagedOutboundIPProfile_STATUS) AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(destination *v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Count + destination.Count = genruntime.ClonePointerToInt(profile.Count) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterPodIdentity_ProvisioningInfo_STATUS struct { + // Error: Pod identity assignment error (if any). + Error *ManagedClusterPodIdentityProvisioningError_STATUS `json:"error,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentity_ProvisioningInfo_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM, got %T", armInput) + } + + // Set property "Error": + if typedInput.Error != nil { + var error1 ManagedClusterPodIdentityProvisioningError_STATUS + err := error1.PopulateFromARM(owner, *typedInput.Error) + if err != nil { + return err + } + error := error1 + info.Error = &error + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS populates our ManagedClusterPodIdentity_ProvisioningInfo_STATUS from the provided source ManagedClusterPodIdentity_ProvisioningInfo_STATUS +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(source *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error { + + // Error + if source.Error != nil { + var error ManagedClusterPodIdentityProvisioningError_STATUS + err := error.AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(source.Error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS() to populate field Error") + } + info.Error = &error + } else { + info.Error = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS populates the provided destination ManagedClusterPodIdentity_ProvisioningInfo_STATUS from our ManagedClusterPodIdentity_ProvisioningInfo_STATUS +func (info *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(destination *v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Error + if info.Error != nil { + var error v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS + err := info.Error.AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(&error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS() to populate field Error") + } + destination.Error = &error + } else { + destination.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterPodIdentity_ProvisioningState_STATUS string + +const ( + ManagedClusterPodIdentity_ProvisioningState_STATUS_Assigned = ManagedClusterPodIdentity_ProvisioningState_STATUS("Assigned") + ManagedClusterPodIdentity_ProvisioningState_STATUS_Canceled = ManagedClusterPodIdentity_ProvisioningState_STATUS("Canceled") + ManagedClusterPodIdentity_ProvisioningState_STATUS_Deleting = ManagedClusterPodIdentity_ProvisioningState_STATUS("Deleting") + ManagedClusterPodIdentity_ProvisioningState_STATUS_Failed = ManagedClusterPodIdentity_ProvisioningState_STATUS("Failed") + ManagedClusterPodIdentity_ProvisioningState_STATUS_Succeeded = ManagedClusterPodIdentity_ProvisioningState_STATUS("Succeeded") + ManagedClusterPodIdentity_ProvisioningState_STATUS_Updating = ManagedClusterPodIdentity_ProvisioningState_STATUS("Updating") +) + +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring struct { + // Enabled: Whether to enable Defender threat detection + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusterSecurityProfileDefenderSecurityMonitoring{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if monitoring == nil { + return nil, nil + } + result := &ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM{} + + // Set property "Enabled": + if monitoring.Enabled != nil { + enabled := *monitoring.Enabled + result.Enabled = &enabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + monitoring.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(source *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + monitoring.Enabled = &enabled + } else { + monitoring.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring populates the provided destination ManagedClusterSecurityProfileDefenderSecurityMonitoring from our ManagedClusterSecurityProfileDefenderSecurityMonitoring +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(destination *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if monitoring.Enabled != nil { + enabled := *monitoring.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring) Initialize_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + monitoring.Enabled = &enabled + } else { + monitoring.Enabled = nil + } + + // No error + return nil +} + +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS struct { + // Enabled: Whether to enable Defender threat detection + Enabled *bool `json:"enabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + monitoring.Enabled = &enabled + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates our ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS from the provided source ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(source *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + monitoring.Enabled = &enabled + } else { + monitoring.Enabled = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS populates the provided destination ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS from our ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +func (monitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(destination *v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if monitoring.Enabled != nil { + enabled := *monitoring.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// A reference to an Azure resource. +type ResourceReference struct { + // Reference: The fully qualified Azure resource id. + Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` +} + +var _ genruntime.ARMTransformer = &ResourceReference{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (reference *ResourceReference) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if reference == nil { + return nil, nil + } + result := &ResourceReference_ARM{} + + // Set property "Id": + if reference.Reference != nil { + referenceARMID, err := resolved.ResolvedReferences.Lookup(*reference.Reference) + if err != nil { + return nil, err + } + reference1 := referenceARMID + result.Id = &reference1 + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (reference *ResourceReference) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ResourceReference_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (reference *ResourceReference) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + _, ok := armInput.(ResourceReference_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ResourceReference_ARM, got %T", armInput) + } + + // no assignment for property "Reference" + + // No error + return nil +} + +// AssignProperties_From_ResourceReference populates our ResourceReference from the provided source ResourceReference +func (reference *ResourceReference) AssignProperties_From_ResourceReference(source *v20231001s.ResourceReference) error { + + // Reference + if source.Reference != nil { + referenceTemp := source.Reference.Copy() + reference.Reference = &referenceTemp + } else { + reference.Reference = nil + } + + // No error + return nil +} + +// AssignProperties_To_ResourceReference populates the provided destination ResourceReference from our ResourceReference +func (reference *ResourceReference) AssignProperties_To_ResourceReference(destination *v20231001s.ResourceReference) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Reference + if reference.Reference != nil { + referenceTemp := reference.Reference.Copy() + destination.Reference = &referenceTemp + } else { + destination.Reference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ResourceReference_STATUS populates our ResourceReference from the provided source ResourceReference_STATUS +func (reference *ResourceReference) Initialize_From_ResourceReference_STATUS(source *ResourceReference_STATUS) error { + + // Reference + if source.Id != nil { + referenceTemp := genruntime.CreateResourceReferenceFromARMID(*source.Id) + reference.Reference = &referenceTemp + } else { + reference.Reference = nil + } + + // No error + return nil +} + +// A reference to an Azure resource. +type ResourceReference_STATUS struct { + // Id: The fully qualified Azure resource id. + Id *string `json:"id,omitempty"` +} + +var _ genruntime.FromARMConverter = &ResourceReference_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (reference *ResourceReference_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ResourceReference_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (reference *ResourceReference_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ResourceReference_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ResourceReference_STATUS_ARM, got %T", armInput) + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + reference.Id = &id + } + + // No error + return nil +} + +// AssignProperties_From_ResourceReference_STATUS populates our ResourceReference_STATUS from the provided source ResourceReference_STATUS +func (reference *ResourceReference_STATUS) AssignProperties_From_ResourceReference_STATUS(source *v20231001s.ResourceReference_STATUS) error { + + // Id + reference.Id = genruntime.ClonePointerToString(source.Id) + + // No error + return nil +} + +// AssignProperties_To_ResourceReference_STATUS populates the provided destination ResourceReference_STATUS from our ResourceReference_STATUS +func (reference *ResourceReference_STATUS) AssignProperties_To_ResourceReference_STATUS(destination *v20231001s.ResourceReference_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Id + destination.Id = genruntime.ClonePointerToString(reference.Id) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Istio egress gateway configuration. +type IstioEgressGateway struct { + // +kubebuilder:validation:Required + // Enabled: Whether to enable the egress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // NodeSelector: NodeSelector for scheduling the egress gateway. + NodeSelector map[string]string `json:"nodeSelector,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioEgressGateway{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (gateway *IstioEgressGateway) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if gateway == nil { + return nil, nil + } + result := &IstioEgressGateway_ARM{} + + // Set property "Enabled": + if gateway.Enabled != nil { + enabled := *gateway.Enabled + result.Enabled = &enabled + } + + // Set property "NodeSelector": + if gateway.NodeSelector != nil { + result.NodeSelector = make(map[string]string, len(gateway.NodeSelector)) + for key, value := range gateway.NodeSelector { + result.NodeSelector[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (gateway *IstioEgressGateway) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioEgressGateway_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (gateway *IstioEgressGateway) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioEgressGateway_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioEgressGateway_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + gateway.Enabled = &enabled + } + + // Set property "NodeSelector": + if typedInput.NodeSelector != nil { + gateway.NodeSelector = make(map[string]string, len(typedInput.NodeSelector)) + for key, value := range typedInput.NodeSelector { + gateway.NodeSelector[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_IstioEgressGateway populates our IstioEgressGateway from the provided source IstioEgressGateway +func (gateway *IstioEgressGateway) AssignProperties_From_IstioEgressGateway(source *v20231001s.IstioEgressGateway) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // NodeSelector + gateway.NodeSelector = genruntime.CloneMapOfStringToString(source.NodeSelector) + + // No error + return nil +} + +// AssignProperties_To_IstioEgressGateway populates the provided destination IstioEgressGateway from our IstioEgressGateway +func (gateway *IstioEgressGateway) AssignProperties_To_IstioEgressGateway(destination *v20231001s.IstioEgressGateway) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // NodeSelector + destination.NodeSelector = genruntime.CloneMapOfStringToString(gateway.NodeSelector) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioEgressGateway_STATUS populates our IstioEgressGateway from the provided source IstioEgressGateway_STATUS +func (gateway *IstioEgressGateway) Initialize_From_IstioEgressGateway_STATUS(source *IstioEgressGateway_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // NodeSelector + gateway.NodeSelector = genruntime.CloneMapOfStringToString(source.NodeSelector) + + // No error + return nil +} + +// Istio egress gateway configuration. +type IstioEgressGateway_STATUS struct { + // Enabled: Whether to enable the egress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // NodeSelector: NodeSelector for scheduling the egress gateway. + NodeSelector map[string]string `json:"nodeSelector,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioEgressGateway_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (gateway *IstioEgressGateway_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioEgressGateway_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (gateway *IstioEgressGateway_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioEgressGateway_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioEgressGateway_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + gateway.Enabled = &enabled + } + + // Set property "NodeSelector": + if typedInput.NodeSelector != nil { + gateway.NodeSelector = make(map[string]string, len(typedInput.NodeSelector)) + for key, value := range typedInput.NodeSelector { + gateway.NodeSelector[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_IstioEgressGateway_STATUS populates our IstioEgressGateway_STATUS from the provided source IstioEgressGateway_STATUS +func (gateway *IstioEgressGateway_STATUS) AssignProperties_From_IstioEgressGateway_STATUS(source *v20231001s.IstioEgressGateway_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // NodeSelector + gateway.NodeSelector = genruntime.CloneMapOfStringToString(source.NodeSelector) + + // No error + return nil +} + +// AssignProperties_To_IstioEgressGateway_STATUS populates the provided destination IstioEgressGateway_STATUS from our IstioEgressGateway_STATUS +func (gateway *IstioEgressGateway_STATUS) AssignProperties_To_IstioEgressGateway_STATUS(destination *v20231001s.IstioEgressGateway_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // NodeSelector + destination.NodeSelector = genruntime.CloneMapOfStringToString(gateway.NodeSelector) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway struct { + // +kubebuilder:validation:Required + // Enabled: Whether to enable the ingress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // +kubebuilder:validation:Required + // Mode: Mode of an ingress gateway. + Mode *IstioIngressGateway_Mode `json:"mode,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioIngressGateway{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (gateway *IstioIngressGateway) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if gateway == nil { + return nil, nil + } + result := &IstioIngressGateway_ARM{} + + // Set property "Enabled": + if gateway.Enabled != nil { + enabled := *gateway.Enabled + result.Enabled = &enabled + } + + // Set property "Mode": + if gateway.Mode != nil { + mode := *gateway.Mode + result.Mode = &mode + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (gateway *IstioIngressGateway) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioIngressGateway_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (gateway *IstioIngressGateway) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioIngressGateway_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioIngressGateway_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + gateway.Enabled = &enabled + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + gateway.Mode = &mode + } + + // No error + return nil +} + +// AssignProperties_From_IstioIngressGateway populates our IstioIngressGateway from the provided source IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_From_IstioIngressGateway(source *v20231001s.IstioIngressGateway) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + if source.Mode != nil { + mode := IstioIngressGateway_Mode(*source.Mode) + gateway.Mode = &mode + } else { + gateway.Mode = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway populates the provided destination IstioIngressGateway from our IstioIngressGateway +func (gateway *IstioIngressGateway) AssignProperties_To_IstioIngressGateway(destination *v20231001s.IstioIngressGateway) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + if gateway.Mode != nil { + mode := string(*gateway.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioIngressGateway_STATUS populates our IstioIngressGateway from the provided source IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway) Initialize_From_IstioIngressGateway_STATUS(source *IstioIngressGateway_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + if source.Mode != nil { + mode := IstioIngressGateway_Mode(*source.Mode) + gateway.Mode = &mode + } else { + gateway.Mode = nil + } + + // No error + return nil +} + +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway_STATUS struct { + // Enabled: Whether to enable the ingress gateway. + Enabled *bool `json:"enabled,omitempty"` + + // Mode: Mode of an ingress gateway. + Mode *IstioIngressGateway_Mode_STATUS `json:"mode,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioIngressGateway_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (gateway *IstioIngressGateway_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioIngressGateway_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (gateway *IstioIngressGateway_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioIngressGateway_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioIngressGateway_STATUS_ARM, got %T", armInput) + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + gateway.Enabled = &enabled + } + + // Set property "Mode": + if typedInput.Mode != nil { + mode := *typedInput.Mode + gateway.Mode = &mode + } + + // No error + return nil +} + +// AssignProperties_From_IstioIngressGateway_STATUS populates our IstioIngressGateway_STATUS from the provided source IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_From_IstioIngressGateway_STATUS(source *v20231001s.IstioIngressGateway_STATUS) error { + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + gateway.Enabled = &enabled + } else { + gateway.Enabled = nil + } + + // Mode + if source.Mode != nil { + mode := IstioIngressGateway_Mode_STATUS(*source.Mode) + gateway.Mode = &mode + } else { + gateway.Mode = nil + } + + // No error + return nil +} + +// AssignProperties_To_IstioIngressGateway_STATUS populates the provided destination IstioIngressGateway_STATUS from our IstioIngressGateway_STATUS +func (gateway *IstioIngressGateway_STATUS) AssignProperties_To_IstioIngressGateway_STATUS(destination *v20231001s.IstioIngressGateway_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Enabled + if gateway.Enabled != nil { + enabled := *gateway.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Mode + if gateway.Mode != nil { + mode := string(*gateway.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority struct { + // CertChainObjectName: Certificate chain object name in Azure Key Vault. + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + + // CertObjectName: Intermediate certificate object name in Azure Key Vault. + CertObjectName *string `json:"certObjectName,omitempty"` + + // KeyObjectName: Intermediate certificate private key object name in Azure Key Vault. + KeyObjectName *string `json:"keyObjectName,omitempty"` + + // KeyVaultReference: The resource ID of the Key Vault. + KeyVaultReference *genruntime.ResourceReference `armReference:"KeyVaultId" json:"keyVaultReference,omitempty"` + + // RootCertObjectName: Root certificate object name in Azure Key Vault. + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} + +var _ genruntime.ARMTransformer = &IstioPluginCertificateAuthority{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (authority *IstioPluginCertificateAuthority) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if authority == nil { + return nil, nil + } + result := &IstioPluginCertificateAuthority_ARM{} + + // Set property "CertChainObjectName": + if authority.CertChainObjectName != nil { + certChainObjectName := *authority.CertChainObjectName + result.CertChainObjectName = &certChainObjectName + } + + // Set property "CertObjectName": + if authority.CertObjectName != nil { + certObjectName := *authority.CertObjectName + result.CertObjectName = &certObjectName + } + + // Set property "KeyObjectName": + if authority.KeyObjectName != nil { + keyObjectName := *authority.KeyObjectName + result.KeyObjectName = &keyObjectName + } + + // Set property "KeyVaultId": + if authority.KeyVaultReference != nil { + keyVaultReferenceARMID, err := resolved.ResolvedReferences.Lookup(*authority.KeyVaultReference) + if err != nil { + return nil, err + } + keyVaultReference := keyVaultReferenceARMID + result.KeyVaultId = &keyVaultReference + } + + // Set property "RootCertObjectName": + if authority.RootCertObjectName != nil { + rootCertObjectName := *authority.RootCertObjectName + result.RootCertObjectName = &rootCertObjectName + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (authority *IstioPluginCertificateAuthority) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioPluginCertificateAuthority_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (authority *IstioPluginCertificateAuthority) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioPluginCertificateAuthority_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioPluginCertificateAuthority_ARM, got %T", armInput) + } + + // Set property "CertChainObjectName": + if typedInput.CertChainObjectName != nil { + certChainObjectName := *typedInput.CertChainObjectName + authority.CertChainObjectName = &certChainObjectName + } + + // Set property "CertObjectName": + if typedInput.CertObjectName != nil { + certObjectName := *typedInput.CertObjectName + authority.CertObjectName = &certObjectName + } + + // Set property "KeyObjectName": + if typedInput.KeyObjectName != nil { + keyObjectName := *typedInput.KeyObjectName + authority.KeyObjectName = &keyObjectName + } + + // no assignment for property "KeyVaultReference" + + // Set property "RootCertObjectName": + if typedInput.RootCertObjectName != nil { + rootCertObjectName := *typedInput.RootCertObjectName + authority.RootCertObjectName = &rootCertObjectName + } + + // No error + return nil +} + +// AssignProperties_From_IstioPluginCertificateAuthority populates our IstioPluginCertificateAuthority from the provided source IstioPluginCertificateAuthority +func (authority *IstioPluginCertificateAuthority) AssignProperties_From_IstioPluginCertificateAuthority(source *v20231001s.IstioPluginCertificateAuthority) error { + + // CertChainObjectName + authority.CertChainObjectName = genruntime.ClonePointerToString(source.CertChainObjectName) + + // CertObjectName + authority.CertObjectName = genruntime.ClonePointerToString(source.CertObjectName) + + // KeyObjectName + authority.KeyObjectName = genruntime.ClonePointerToString(source.KeyObjectName) + + // KeyVaultReference + if source.KeyVaultReference != nil { + keyVaultReference := source.KeyVaultReference.Copy() + authority.KeyVaultReference = &keyVaultReference + } else { + authority.KeyVaultReference = nil + } + + // RootCertObjectName + authority.RootCertObjectName = genruntime.ClonePointerToString(source.RootCertObjectName) + + // No error + return nil +} + +// AssignProperties_To_IstioPluginCertificateAuthority populates the provided destination IstioPluginCertificateAuthority from our IstioPluginCertificateAuthority +func (authority *IstioPluginCertificateAuthority) AssignProperties_To_IstioPluginCertificateAuthority(destination *v20231001s.IstioPluginCertificateAuthority) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CertChainObjectName + destination.CertChainObjectName = genruntime.ClonePointerToString(authority.CertChainObjectName) + + // CertObjectName + destination.CertObjectName = genruntime.ClonePointerToString(authority.CertObjectName) + + // KeyObjectName + destination.KeyObjectName = genruntime.ClonePointerToString(authority.KeyObjectName) + + // KeyVaultReference + if authority.KeyVaultReference != nil { + keyVaultReference := authority.KeyVaultReference.Copy() + destination.KeyVaultReference = &keyVaultReference + } else { + destination.KeyVaultReference = nil + } + + // RootCertObjectName + destination.RootCertObjectName = genruntime.ClonePointerToString(authority.RootCertObjectName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IstioPluginCertificateAuthority_STATUS populates our IstioPluginCertificateAuthority from the provided source IstioPluginCertificateAuthority_STATUS +func (authority *IstioPluginCertificateAuthority) Initialize_From_IstioPluginCertificateAuthority_STATUS(source *IstioPluginCertificateAuthority_STATUS) error { + + // CertChainObjectName + authority.CertChainObjectName = genruntime.ClonePointerToString(source.CertChainObjectName) + + // CertObjectName + authority.CertObjectName = genruntime.ClonePointerToString(source.CertObjectName) + + // KeyObjectName + authority.KeyObjectName = genruntime.ClonePointerToString(source.KeyObjectName) + + // KeyVaultReference + if source.KeyVaultId != nil { + keyVaultReference := genruntime.CreateResourceReferenceFromARMID(*source.KeyVaultId) + authority.KeyVaultReference = &keyVaultReference + } else { + authority.KeyVaultReference = nil + } + + // RootCertObjectName + authority.RootCertObjectName = genruntime.ClonePointerToString(source.RootCertObjectName) + + // No error + return nil +} + +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority_STATUS struct { + // CertChainObjectName: Certificate chain object name in Azure Key Vault. + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + + // CertObjectName: Intermediate certificate object name in Azure Key Vault. + CertObjectName *string `json:"certObjectName,omitempty"` + + // KeyObjectName: Intermediate certificate private key object name in Azure Key Vault. + KeyObjectName *string `json:"keyObjectName,omitempty"` + + // KeyVaultId: The resource ID of the Key Vault. + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // RootCertObjectName: Root certificate object name in Azure Key Vault. + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} + +var _ genruntime.FromARMConverter = &IstioPluginCertificateAuthority_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (authority *IstioPluginCertificateAuthority_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IstioPluginCertificateAuthority_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (authority *IstioPluginCertificateAuthority_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IstioPluginCertificateAuthority_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IstioPluginCertificateAuthority_STATUS_ARM, got %T", armInput) + } + + // Set property "CertChainObjectName": + if typedInput.CertChainObjectName != nil { + certChainObjectName := *typedInput.CertChainObjectName + authority.CertChainObjectName = &certChainObjectName + } + + // Set property "CertObjectName": + if typedInput.CertObjectName != nil { + certObjectName := *typedInput.CertObjectName + authority.CertObjectName = &certObjectName + } + + // Set property "KeyObjectName": + if typedInput.KeyObjectName != nil { + keyObjectName := *typedInput.KeyObjectName + authority.KeyObjectName = &keyObjectName + } + + // Set property "KeyVaultId": + if typedInput.KeyVaultId != nil { + keyVaultId := *typedInput.KeyVaultId + authority.KeyVaultId = &keyVaultId + } + + // Set property "RootCertObjectName": + if typedInput.RootCertObjectName != nil { + rootCertObjectName := *typedInput.RootCertObjectName + authority.RootCertObjectName = &rootCertObjectName + } + + // No error + return nil +} + +// AssignProperties_From_IstioPluginCertificateAuthority_STATUS populates our IstioPluginCertificateAuthority_STATUS from the provided source IstioPluginCertificateAuthority_STATUS +func (authority *IstioPluginCertificateAuthority_STATUS) AssignProperties_From_IstioPluginCertificateAuthority_STATUS(source *v20231001s.IstioPluginCertificateAuthority_STATUS) error { + + // CertChainObjectName + authority.CertChainObjectName = genruntime.ClonePointerToString(source.CertChainObjectName) + + // CertObjectName + authority.CertObjectName = genruntime.ClonePointerToString(source.CertObjectName) + + // KeyObjectName + authority.KeyObjectName = genruntime.ClonePointerToString(source.KeyObjectName) + + // KeyVaultId + authority.KeyVaultId = genruntime.ClonePointerToString(source.KeyVaultId) + + // RootCertObjectName + authority.RootCertObjectName = genruntime.ClonePointerToString(source.RootCertObjectName) + + // No error + return nil +} + +// AssignProperties_To_IstioPluginCertificateAuthority_STATUS populates the provided destination IstioPluginCertificateAuthority_STATUS from our IstioPluginCertificateAuthority_STATUS +func (authority *IstioPluginCertificateAuthority_STATUS) AssignProperties_To_IstioPluginCertificateAuthority_STATUS(destination *v20231001s.IstioPluginCertificateAuthority_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CertChainObjectName + destination.CertChainObjectName = genruntime.ClonePointerToString(authority.CertChainObjectName) + + // CertObjectName + destination.CertObjectName = genruntime.ClonePointerToString(authority.CertObjectName) + + // KeyObjectName + destination.KeyObjectName = genruntime.ClonePointerToString(authority.KeyObjectName) + + // KeyVaultId + destination.KeyVaultId = genruntime.ClonePointerToString(authority.KeyVaultId) + + // RootCertObjectName + destination.RootCertObjectName = genruntime.ClonePointerToString(authority.RootCertObjectName) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningError_STATUS struct { + // Error: Details about the error. + Error *ManagedClusterPodIdentityProvisioningErrorBody_STATUS `json:"error,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentityProvisioningError_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityProvisioningError_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityProvisioningError_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityProvisioningError_STATUS_ARM, got %T", armInput) + } + + // Set property "Error": + if typedInput.Error != nil { + var error2 ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := error2.PopulateFromARM(owner, *typedInput.Error) + if err != nil { + return err + } + error1 := error2 + error.Error = &error1 + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS populates our ManagedClusterPodIdentityProvisioningError_STATUS from the provided source ManagedClusterPodIdentityProvisioningError_STATUS +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(source *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error { + + // Error + if source.Error != nil { + var errorLocal ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := errorLocal.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(source.Error) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS() to populate field Error") + } + error.Error = &errorLocal + } else { + error.Error = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS populates the provided destination ManagedClusterPodIdentityProvisioningError_STATUS from our ManagedClusterPodIdentityProvisioningError_STATUS +func (error *ManagedClusterPodIdentityProvisioningError_STATUS) AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(destination *v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Error + if error.Error != nil { + var errorLocal v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := error.Error.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&errorLocal) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS() to populate field Error") + } + destination.Error = &errorLocal + } else { + destination.Error = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"External","Internal"} +type IstioIngressGateway_Mode string + +const ( + IstioIngressGateway_Mode_External = IstioIngressGateway_Mode("External") + IstioIngressGateway_Mode_Internal = IstioIngressGateway_Mode("Internal") +) + +type IstioIngressGateway_Mode_STATUS string + +const ( + IstioIngressGateway_Mode_STATUS_External = IstioIngressGateway_Mode_STATUS("External") + IstioIngressGateway_Mode_STATUS_Internal = IstioIngressGateway_Mode_STATUS("Internal") +) + +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS struct { + // Code: An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + + // Details: A list of additional details about the error. + Details []ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled `json:"details,omitempty"` + + // Message: A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + + // Target: The target of the particular error. For example, the name of the property in error. + Target *string `json:"target,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentityProvisioningErrorBody_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM, got %T", armInput) + } + + // Set property "Code": + if typedInput.Code != nil { + code := *typedInput.Code + body.Code = &code + } + + // Set property "Details": + for _, item := range typedInput.Details { + var item1 ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + body.Details = append(body.Details, item1) + } + + // Set property "Message": + if typedInput.Message != nil { + message := *typedInput.Message + body.Message = &message + } + + // Set property "Target": + if typedInput.Target != nil { + target := *typedInput.Target + body.Target = &target + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS populates our ManagedClusterPodIdentityProvisioningErrorBody_STATUS from the provided source ManagedClusterPodIdentityProvisioningErrorBody_STATUS +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(source *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error { + + // Code + body.Code = genruntime.ClonePointerToString(source.Code) + + // Details + if source.Details != nil { + detailList := make([]ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(source.Details)) + for detailIndex, detailItem := range source.Details { + // Shadow the loop variable to avoid aliasing + detailItem := detailItem + var detail ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := detail.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&detailItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled() to populate field Details") + } + detailList[detailIndex] = detail + } + body.Details = detailList + } else { + body.Details = nil + } + + // Message + body.Message = genruntime.ClonePointerToString(source.Message) + + // Target + body.Target = genruntime.ClonePointerToString(source.Target) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS populates the provided destination ManagedClusterPodIdentityProvisioningErrorBody_STATUS from our ManagedClusterPodIdentityProvisioningErrorBody_STATUS +func (body *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(destination *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Code + destination.Code = genruntime.ClonePointerToString(body.Code) + + // Details + if body.Details != nil { + detailList := make([]v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(body.Details)) + for detailIndex, detailItem := range body.Details { + // Shadow the loop variable to avoid aliasing + detailItem := detailItem + var detail v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := detailItem.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&detail) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled() to populate field Details") + } + detailList[detailIndex] = detail + } + destination.Details = detailList + } else { + destination.Details = nil + } + + // Message + destination.Message = genruntime.ClonePointerToString(body.Message) + + // Target + destination.Target = genruntime.ClonePointerToString(body.Target) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled struct { + // Code: An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + + // Message: A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + + // Target: The target of the particular error. For example, the name of the property in error. + Target *string `json:"target,omitempty"` +} + +var _ genruntime.FromARMConverter = &ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM, got %T", armInput) + } + + // Set property "Code": + if typedInput.Code != nil { + code := *typedInput.Code + unrolled.Code = &code + } + + // Set property "Message": + if typedInput.Message != nil { + message := *typedInput.Message + unrolled.Message = &message + } + + // Set property "Target": + if typedInput.Target != nil { + target := *typedInput.Target + unrolled.Target = &target + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled populates our ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled from the provided source ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(source *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error { + + // Code + unrolled.Code = genruntime.ClonePointerToString(source.Code) + + // Message + unrolled.Message = genruntime.ClonePointerToString(source.Message) + + // Target + unrolled.Target = genruntime.ClonePointerToString(source.Target) + + // No error + return nil +} + +// AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled populates the provided destination ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled from our ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled +func (unrolled *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(destination *v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Code + destination.Code = genruntime.ClonePointerToString(unrolled.Code) + + // Message + destination.Message = genruntime.ClonePointerToString(unrolled.Message) + + // Target + destination.Target = genruntime.ClonePointerToString(unrolled.Target) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +func init() { + SchemeBuilder.Register(&ManagedCluster{}, &ManagedClusterList{}) +} diff --git a/v2/api/containerservice/v1api20231001/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_cluster_types_gen_test.go new file mode 100644 index 00000000000..e2d0898a0c3 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_cluster_types_gen_test.go @@ -0,0 +1,14038 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedCluster_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster to hub returns original", + prop.ForAll(RunResourceConversionTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForManagedCluster tests if a specific instance of ManagedCluster round trips to the hub storage version and back losslessly +func RunResourceConversionTestForManagedCluster(subject ManagedCluster) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20231001s.ManagedCluster + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual ManagedCluster + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedCluster_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster to ManagedCluster via AssignProperties_To_ManagedCluster & AssignProperties_From_ManagedCluster returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster tests if a specific instance of ManagedCluster can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster(subject ManagedCluster) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster + err := copied.AssignProperties_To_ManagedCluster(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster + err = actual.AssignProperties_From_ManagedCluster(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedCluster_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster runs a test to see if a specific instance of ManagedCluster round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster(subject ManagedCluster) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster instances for property testing - lazily instantiated by ManagedClusterGenerator() +var managedClusterGenerator gopter.Gen + +// ManagedClusterGenerator returns a generator of ManagedCluster instances for property testing. +func ManagedClusterGenerator() gopter.Gen { + if managedClusterGenerator != nil { + return managedClusterGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedCluster(generators) + managedClusterGenerator = gen.Struct(reflect.TypeOf(ManagedCluster{}), generators) + + return managedClusterGenerator +} + +// AddRelatedPropertyGeneratorsForManagedCluster is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster(gens map[string]gopter.Gen) { + gens["Spec"] = ManagedCluster_SpecGenerator() + gens["Status"] = ManagedCluster_STATUSGenerator() +} + +func Test_ManagedCluster_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster_Spec to ManagedCluster_Spec via AssignProperties_To_ManagedCluster_Spec & AssignProperties_From_ManagedCluster_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster_Spec, ManagedCluster_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster_Spec tests if a specific instance of ManagedCluster_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster_Spec(subject ManagedCluster_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster_Spec + err := copied.AssignProperties_To_ManagedCluster_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster_Spec + err = actual.AssignProperties_From_ManagedCluster_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedCluster_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_Spec, ManagedCluster_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_Spec runs a test to see if a specific instance of ManagedCluster_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_Spec(subject ManagedCluster_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_Spec instances for property testing - lazily instantiated by +// ManagedCluster_SpecGenerator() +var managedCluster_SpecGenerator gopter.Gen + +// ManagedCluster_SpecGenerator returns a generator of ManagedCluster_Spec instances for property testing. +// We first initialize managedCluster_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_SpecGenerator() gopter.Gen { + if managedCluster_SpecGenerator != nil { + return managedCluster_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec(generators) + managedCluster_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec(generators) + AddRelatedPropertyGeneratorsForManagedCluster_Spec(generators) + managedCluster_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec{}), generators) + + return managedCluster_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ManagedClusterProperties_PublicNetworkAccess_Disabled, ManagedClusterProperties_PublicNetworkAccess_Enabled)) + gens["SupportPlan"] = gen.PtrOf(gen.OneConstOf(KubernetesSupportPlan_AKSLongTermSupport, KubernetesSupportPlan_KubernetesOfficial)) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_Spec(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfileGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfileGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfileGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfileGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfileGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfileGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfileGenerator()) + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocationGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfigGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentityGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentityGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfileGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfileGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfileGenerator()) + gens["OperatorSpec"] = gen.PtrOf(ManagedClusterOperatorSpecGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfileGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResourceGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfileGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfileGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfileGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKUGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfileGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettingsGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfileGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileGenerator()) +} + +func Test_ManagedCluster_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedCluster_STATUS to ManagedCluster_STATUS via AssignProperties_To_ManagedCluster_STATUS & AssignProperties_From_ManagedCluster_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedCluster_STATUS, ManagedCluster_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedCluster_STATUS tests if a specific instance of ManagedCluster_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedCluster_STATUS(subject ManagedCluster_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedCluster_STATUS + err := copied.AssignProperties_To_ManagedCluster_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedCluster_STATUS + err = actual.AssignProperties_From_ManagedCluster_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedCluster_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_STATUS, ManagedCluster_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_STATUS runs a test to see if a specific instance of ManagedCluster_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_STATUS(subject ManagedCluster_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_STATUS instances for property testing - lazily instantiated by +// ManagedCluster_STATUSGenerator() +var managedCluster_STATUSGenerator gopter.Gen + +// ManagedCluster_STATUSGenerator returns a generator of ManagedCluster_STATUS instances for property testing. +// We first initialize managedCluster_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_STATUSGenerator() gopter.Gen { + if managedCluster_STATUSGenerator != nil { + return managedCluster_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS(generators) + managedCluster_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedCluster_STATUS(generators) + managedCluster_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS{}), generators) + + return managedCluster_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter.Gen) { + gens["AzurePortalFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["CurrentKubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DiskEncryptionSetID"] = gen.PtrOf(gen.AlphaString()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["Fqdn"] = gen.PtrOf(gen.AlphaString()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["MaxAgentPools"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ManagedClusterProperties_PublicNetworkAccess_STATUS_Disabled, ManagedClusterProperties_PublicNetworkAccess_STATUS_Enabled)) + gens["ResourceUID"] = gen.PtrOf(gen.AlphaString()) + gens["SupportPlan"] = gen.PtrOf(gen.OneConstOf(KubernetesSupportPlan_STATUS_AKSLongTermSupport, KubernetesSupportPlan_STATUS_KubernetesOfficial)) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfile_STATUSGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfile_STATUSGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfile_STATUSGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfile_STATUSGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfile_STATUSGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfile_STATUSGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfile_STATUSGenerator()) + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocation_STATUSGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfig_STATUSGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentity_STATUSGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentity_STATUSGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfile_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfile_STATUSGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfile_STATUSGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResource_STATUSGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfile_STATUSGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfile_STATUSGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfile_STATUSGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKU_STATUSGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfile_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettings_STATUSGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfile_STATUSGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator()) +} + +func Test_ClusterUpgradeSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings to ClusterUpgradeSettings via AssignProperties_To_ClusterUpgradeSettings & AssignProperties_From_ClusterUpgradeSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings tests if a specific instance of ClusterUpgradeSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ClusterUpgradeSettings + err := copied.AssignProperties_To_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings + err = actual.AssignProperties_From_ClusterUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ClusterUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings runs a test to see if a specific instance of ClusterUpgradeSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings instances for property testing - lazily instantiated by +// ClusterUpgradeSettingsGenerator() +var clusterUpgradeSettingsGenerator gopter.Gen + +// ClusterUpgradeSettingsGenerator returns a generator of ClusterUpgradeSettings instances for property testing. +func ClusterUpgradeSettingsGenerator() gopter.Gen { + if clusterUpgradeSettingsGenerator != nil { + return clusterUpgradeSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings(generators) + clusterUpgradeSettingsGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings{}), generators) + + return clusterUpgradeSettingsGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettingsGenerator()) +} + +func Test_ClusterUpgradeSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ClusterUpgradeSettings_STATUS to ClusterUpgradeSettings_STATUS via AssignProperties_To_ClusterUpgradeSettings_STATUS & AssignProperties_From_ClusterUpgradeSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS tests if a specific instance of ClusterUpgradeSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ClusterUpgradeSettings_STATUS + err := copied.AssignProperties_To_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ClusterUpgradeSettings_STATUS + err = actual.AssignProperties_From_ClusterUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ClusterUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings_STATUS runs a test to see if a specific instance of ClusterUpgradeSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings_STATUS instances for property testing - lazily instantiated by +// ClusterUpgradeSettings_STATUSGenerator() +var clusterUpgradeSettings_STATUSGenerator gopter.Gen + +// ClusterUpgradeSettings_STATUSGenerator returns a generator of ClusterUpgradeSettings_STATUS instances for property testing. +func ClusterUpgradeSettings_STATUSGenerator() gopter.Gen { + if clusterUpgradeSettings_STATUSGenerator != nil { + return clusterUpgradeSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(generators) + clusterUpgradeSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings_STATUS{}), generators) + + return clusterUpgradeSettings_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettings_STATUSGenerator()) +} + +func Test_ContainerServiceLinuxProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceLinuxProfile to ContainerServiceLinuxProfile via AssignProperties_To_ContainerServiceLinuxProfile & AssignProperties_From_ContainerServiceLinuxProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceLinuxProfile, ContainerServiceLinuxProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceLinuxProfile tests if a specific instance of ContainerServiceLinuxProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceLinuxProfile(subject ContainerServiceLinuxProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceLinuxProfile + err := copied.AssignProperties_To_ContainerServiceLinuxProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceLinuxProfile + err = actual.AssignProperties_From_ContainerServiceLinuxProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceLinuxProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile, ContainerServiceLinuxProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile runs a test to see if a specific instance of ContainerServiceLinuxProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile(subject ContainerServiceLinuxProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfileGenerator() +var containerServiceLinuxProfileGenerator gopter.Gen + +// ContainerServiceLinuxProfileGenerator returns a generator of ContainerServiceLinuxProfile instances for property testing. +// We first initialize containerServiceLinuxProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfileGenerator() gopter.Gen { + if containerServiceLinuxProfileGenerator != nil { + return containerServiceLinuxProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(generators) + containerServiceLinuxProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile(generators) + containerServiceLinuxProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile{}), generators) + + return containerServiceLinuxProfileGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfigurationGenerator()) +} + +func Test_ContainerServiceLinuxProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceLinuxProfile_STATUS to ContainerServiceLinuxProfile_STATUS via AssignProperties_To_ContainerServiceLinuxProfile_STATUS & AssignProperties_From_ContainerServiceLinuxProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS, ContainerServiceLinuxProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS tests if a specific instance of ContainerServiceLinuxProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceLinuxProfile_STATUS(subject ContainerServiceLinuxProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceLinuxProfile_STATUS + err := copied.AssignProperties_To_ContainerServiceLinuxProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceLinuxProfile_STATUS + err = actual.AssignProperties_From_ContainerServiceLinuxProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceLinuxProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS, ContainerServiceLinuxProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS runs a test to see if a specific instance of ContainerServiceLinuxProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS(subject ContainerServiceLinuxProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile_STATUS instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfile_STATUSGenerator() +var containerServiceLinuxProfile_STATUSGenerator gopter.Gen + +// ContainerServiceLinuxProfile_STATUSGenerator returns a generator of ContainerServiceLinuxProfile_STATUS instances for property testing. +// We first initialize containerServiceLinuxProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfile_STATUSGenerator() gopter.Gen { + if containerServiceLinuxProfile_STATUSGenerator != nil { + return containerServiceLinuxProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + containerServiceLinuxProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + containerServiceLinuxProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS{}), generators) + + return containerServiceLinuxProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfiguration_STATUSGenerator()) +} + +func Test_ContainerServiceNetworkProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceNetworkProfile to ContainerServiceNetworkProfile via AssignProperties_To_ContainerServiceNetworkProfile & AssignProperties_From_ContainerServiceNetworkProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceNetworkProfile, ContainerServiceNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceNetworkProfile tests if a specific instance of ContainerServiceNetworkProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceNetworkProfile(subject ContainerServiceNetworkProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceNetworkProfile + err := copied.AssignProperties_To_ContainerServiceNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceNetworkProfile + err = actual.AssignProperties_From_ContainerServiceNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile, ContainerServiceNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile runs a test to see if a specific instance of ContainerServiceNetworkProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile(subject ContainerServiceNetworkProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfileGenerator() +var containerServiceNetworkProfileGenerator gopter.Gen + +// ContainerServiceNetworkProfileGenerator returns a generator of ContainerServiceNetworkProfile instances for property testing. +// We first initialize containerServiceNetworkProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfileGenerator() gopter.Gen { + if containerServiceNetworkProfileGenerator != nil { + return containerServiceNetworkProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(generators) + containerServiceNetworkProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile(generators) + containerServiceNetworkProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile{}), generators) + + return containerServiceNetworkProfileGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.OneConstOf(ContainerServiceNetworkProfile_IpFamilies_IPv4, ContainerServiceNetworkProfile_IpFamilies_IPv6)) + gens["LoadBalancerSku"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_LoadBalancerSku_Basic, ContainerServiceNetworkProfile_LoadBalancerSku_Standard)) + gens["NetworkDataplane"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkDataplane_Azure, ContainerServiceNetworkProfile_NetworkDataplane_Cilium)) + gens["NetworkMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkMode_Bridge, ContainerServiceNetworkProfile_NetworkMode_Transparent)) + gens["NetworkPlugin"] = gen.PtrOf(gen.OneConstOf(NetworkPlugin_Azure, NetworkPlugin_Kubenet, NetworkPlugin_None)) + gens["NetworkPluginMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPluginMode_Overlay)) + gens["NetworkPolicy"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPolicy_Azure, ContainerServiceNetworkProfile_NetworkPolicy_Calico, ContainerServiceNetworkProfile_NetworkPolicy_Cilium)) + gens["OutboundType"] = gen.PtrOf(gen.OneConstOf( + ContainerServiceNetworkProfile_OutboundType_LoadBalancer, + ContainerServiceNetworkProfile_OutboundType_ManagedNATGateway, + ContainerServiceNetworkProfile_OutboundType_UserAssignedNATGateway, + ContainerServiceNetworkProfile_OutboundType_UserDefinedRouting)) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfileGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfileGenerator()) +} + +func Test_ContainerServiceNetworkProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceNetworkProfile_STATUS to ContainerServiceNetworkProfile_STATUS via AssignProperties_To_ContainerServiceNetworkProfile_STATUS & AssignProperties_From_ContainerServiceNetworkProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS, ContainerServiceNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS tests if a specific instance of ContainerServiceNetworkProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceNetworkProfile_STATUS(subject ContainerServiceNetworkProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceNetworkProfile_STATUS + err := copied.AssignProperties_To_ContainerServiceNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceNetworkProfile_STATUS + err = actual.AssignProperties_From_ContainerServiceNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS, ContainerServiceNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS runs a test to see if a specific instance of ContainerServiceNetworkProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS(subject ContainerServiceNetworkProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile_STATUS instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfile_STATUSGenerator() +var containerServiceNetworkProfile_STATUSGenerator gopter.Gen + +// ContainerServiceNetworkProfile_STATUSGenerator returns a generator of ContainerServiceNetworkProfile_STATUS instances for property testing. +// We first initialize containerServiceNetworkProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfile_STATUSGenerator() gopter.Gen { + if containerServiceNetworkProfile_STATUSGenerator != nil { + return containerServiceNetworkProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + containerServiceNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + containerServiceNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS{}), generators) + + return containerServiceNetworkProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.OneConstOf(ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv4, ContainerServiceNetworkProfile_IpFamilies_STATUS_IPv6)) + gens["LoadBalancerSku"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Basic, ContainerServiceNetworkProfile_LoadBalancerSku_STATUS_Standard)) + gens["NetworkDataplane"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Azure, ContainerServiceNetworkProfile_NetworkDataplane_STATUS_Cilium)) + gens["NetworkMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkMode_STATUS_Bridge, ContainerServiceNetworkProfile_NetworkMode_STATUS_Transparent)) + gens["NetworkPlugin"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Azure, ContainerServiceNetworkProfile_NetworkPlugin_STATUS_Kubenet, ContainerServiceNetworkProfile_NetworkPlugin_STATUS_None)) + gens["NetworkPluginMode"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPluginMode_STATUS_Overlay)) + gens["NetworkPolicy"] = gen.PtrOf(gen.OneConstOf(ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Azure, ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Calico, ContainerServiceNetworkProfile_NetworkPolicy_STATUS_Cilium)) + gens["OutboundType"] = gen.PtrOf(gen.OneConstOf( + ContainerServiceNetworkProfile_OutboundType_STATUS_LoadBalancer, + ContainerServiceNetworkProfile_OutboundType_STATUS_ManagedNATGateway, + ContainerServiceNetworkProfile_OutboundType_STATUS_UserAssignedNATGateway, + ContainerServiceNetworkProfile_OutboundType_STATUS_UserDefinedRouting)) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_STATUSGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfile_STATUSGenerator()) +} + +func Test_ExtendedLocation_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ExtendedLocation to ExtendedLocation via AssignProperties_To_ExtendedLocation & AssignProperties_From_ExtendedLocation returns original", + prop.ForAll(RunPropertyAssignmentTestForExtendedLocation, ExtendedLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForExtendedLocation tests if a specific instance of ExtendedLocation can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForExtendedLocation(subject ExtendedLocation) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ExtendedLocation + err := copied.AssignProperties_To_ExtendedLocation(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ExtendedLocation + err = actual.AssignProperties_From_ExtendedLocation(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ExtendedLocation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation, ExtendedLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation runs a test to see if a specific instance of ExtendedLocation round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation(subject ExtendedLocation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation instances for property testing - lazily instantiated by ExtendedLocationGenerator() +var extendedLocationGenerator gopter.Gen + +// ExtendedLocationGenerator returns a generator of ExtendedLocation instances for property testing. +func ExtendedLocationGenerator() gopter.Gen { + if extendedLocationGenerator != nil { + return extendedLocationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation(generators) + extendedLocationGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation{}), generators) + + return extendedLocationGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ExtendedLocationType_EdgeZone)) +} + +func Test_ExtendedLocation_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ExtendedLocation_STATUS to ExtendedLocation_STATUS via AssignProperties_To_ExtendedLocation_STATUS & AssignProperties_From_ExtendedLocation_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForExtendedLocation_STATUS tests if a specific instance of ExtendedLocation_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ExtendedLocation_STATUS + err := copied.AssignProperties_To_ExtendedLocation_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ExtendedLocation_STATUS + err = actual.AssignProperties_From_ExtendedLocation_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ExtendedLocation_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation_STATUS runs a test to see if a specific instance of ExtendedLocation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation_STATUS instances for property testing - lazily instantiated by +// ExtendedLocation_STATUSGenerator() +var extendedLocation_STATUSGenerator gopter.Gen + +// ExtendedLocation_STATUSGenerator returns a generator of ExtendedLocation_STATUS instances for property testing. +func ExtendedLocation_STATUSGenerator() gopter.Gen { + if extendedLocation_STATUSGenerator != nil { + return extendedLocation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation_STATUS(generators) + extendedLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation_STATUS{}), generators) + + return extendedLocation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ExtendedLocationType_STATUS_EdgeZone)) +} + +func Test_ManagedClusterAADProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAADProfile to ManagedClusterAADProfile via AssignProperties_To_ManagedClusterAADProfile & AssignProperties_From_ManagedClusterAADProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAADProfile, ManagedClusterAADProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAADProfile tests if a specific instance of ManagedClusterAADProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAADProfile(subject ManagedClusterAADProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAADProfile + err := copied.AssignProperties_To_ManagedClusterAADProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAADProfile + err = actual.AssignProperties_From_ManagedClusterAADProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAADProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile, ManagedClusterAADProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile runs a test to see if a specific instance of ManagedClusterAADProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile(subject ManagedClusterAADProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile instances for property testing - lazily instantiated by +// ManagedClusterAADProfileGenerator() +var managedClusterAADProfileGenerator gopter.Gen + +// ManagedClusterAADProfileGenerator returns a generator of ManagedClusterAADProfile instances for property testing. +func ManagedClusterAADProfileGenerator() gopter.Gen { + if managedClusterAADProfileGenerator != nil { + return managedClusterAADProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile(generators) + managedClusterAADProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile{}), generators) + + return managedClusterAADProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAADProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAADProfile_STATUS to ManagedClusterAADProfile_STATUS via AssignProperties_To_ManagedClusterAADProfile_STATUS & AssignProperties_From_ManagedClusterAADProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS, ManagedClusterAADProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS tests if a specific instance of ManagedClusterAADProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAADProfile_STATUS(subject ManagedClusterAADProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAADProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAADProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAADProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAADProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAADProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile_STATUS, ManagedClusterAADProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile_STATUS runs a test to see if a specific instance of ManagedClusterAADProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile_STATUS(subject ManagedClusterAADProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAADProfile_STATUSGenerator() +var managedClusterAADProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAADProfile_STATUSGenerator returns a generator of ManagedClusterAADProfile_STATUS instances for property testing. +func ManagedClusterAADProfile_STATUSGenerator() gopter.Gen { + if managedClusterAADProfile_STATUSGenerator != nil { + return managedClusterAADProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS(generators) + managedClusterAADProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile_STATUS{}), generators) + + return managedClusterAADProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAddonProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAddonProfile to ManagedClusterAddonProfile via AssignProperties_To_ManagedClusterAddonProfile & AssignProperties_From_ManagedClusterAddonProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAddonProfile, ManagedClusterAddonProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAddonProfile tests if a specific instance of ManagedClusterAddonProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAddonProfile(subject ManagedClusterAddonProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAddonProfile + err := copied.AssignProperties_To_ManagedClusterAddonProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAddonProfile + err = actual.AssignProperties_From_ManagedClusterAddonProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAddonProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile, ManagedClusterAddonProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile runs a test to see if a specific instance of ManagedClusterAddonProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile(subject ManagedClusterAddonProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile instances for property testing - lazily instantiated by +// ManagedClusterAddonProfileGenerator() +var managedClusterAddonProfileGenerator gopter.Gen + +// ManagedClusterAddonProfileGenerator returns a generator of ManagedClusterAddonProfile instances for property testing. +func ManagedClusterAddonProfileGenerator() gopter.Gen { + if managedClusterAddonProfileGenerator != nil { + return managedClusterAddonProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile(generators) + managedClusterAddonProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile{}), generators) + + return managedClusterAddonProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterAddonProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAddonProfile_STATUS to ManagedClusterAddonProfile_STATUS via AssignProperties_To_ManagedClusterAddonProfile_STATUS & AssignProperties_From_ManagedClusterAddonProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS, ManagedClusterAddonProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS tests if a specific instance of ManagedClusterAddonProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAddonProfile_STATUS(subject ManagedClusterAddonProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAddonProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAddonProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAddonProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAddonProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAddonProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile_STATUS, ManagedClusterAddonProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile_STATUS runs a test to see if a specific instance of ManagedClusterAddonProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile_STATUS(subject ManagedClusterAddonProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAddonProfile_STATUSGenerator() +var managedClusterAddonProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAddonProfile_STATUSGenerator returns a generator of ManagedClusterAddonProfile_STATUS instances for property testing. +// We first initialize managedClusterAddonProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAddonProfile_STATUSGenerator() gopter.Gen { + if managedClusterAddonProfile_STATUSGenerator != nil { + return managedClusterAddonProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + managedClusterAddonProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + managedClusterAddonProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS{}), generators) + + return managedClusterAddonProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUSGenerator()) +} + +func Test_ManagedClusterAgentPoolProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAgentPoolProfile to ManagedClusterAgentPoolProfile via AssignProperties_To_ManagedClusterAgentPoolProfile & AssignProperties_From_ManagedClusterAgentPoolProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAgentPoolProfile, ManagedClusterAgentPoolProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAgentPoolProfile tests if a specific instance of ManagedClusterAgentPoolProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAgentPoolProfile(subject ManagedClusterAgentPoolProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAgentPoolProfile + err := copied.AssignProperties_To_ManagedClusterAgentPoolProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAgentPoolProfile + err = actual.AssignProperties_From_ManagedClusterAgentPoolProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAgentPoolProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile, ManagedClusterAgentPoolProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile runs a test to see if a specific instance of ManagedClusterAgentPoolProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile(subject ManagedClusterAgentPoolProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfileGenerator() +var managedClusterAgentPoolProfileGenerator gopter.Gen + +// ManagedClusterAgentPoolProfileGenerator returns a generator of ManagedClusterAgentPoolProfile instances for property testing. +// We first initialize managedClusterAgentPoolProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfileGenerator() gopter.Gen { + if managedClusterAgentPoolProfileGenerator != nil { + return managedClusterAgentPoolProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + managedClusterAgentPoolProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + managedClusterAgentPoolProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile{}), generators) + + return managedClusterAgentPoolProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_MIG1G, + GPUInstanceProfile_MIG2G, + GPUInstanceProfile_MIG3G, + GPUInstanceProfile_MIG4G, + GPUInstanceProfile_MIG7G)) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_OS, KubeletDiskType_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_System, AgentPoolMode_User)) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int().Map(func(it int) ContainerServiceOSDisk { + return ContainerServiceOSDisk(it) + })) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_Ephemeral, OSDiskType_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_AzureLinux, + OSSKU_CBLMariner, + OSSKU_Ubuntu, + OSSKU_Windows2019, + OSSKU_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_Linux, OSType_Windows)) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_Deallocate, ScaleDownMode_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_Deallocate, ScaleSetEvictionPolicy_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_Regular, ScaleSetPriority_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_AvailabilitySet, AgentPoolType_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_OCIContainer, WorkloadRuntime_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationDataGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfigGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfigGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfileGenerator()) + gens["PowerState"] = gen.PtrOf(PowerStateGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) +} + +func Test_ManagedClusterAgentPoolProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAgentPoolProfile_STATUS to ManagedClusterAgentPoolProfile_STATUS via AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS & AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS, ManagedClusterAgentPoolProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS tests if a specific instance of ManagedClusterAgentPoolProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAgentPoolProfile_STATUS(subject ManagedClusterAgentPoolProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAgentPoolProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAgentPoolProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAgentPoolProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAgentPoolProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAgentPoolProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS, ManagedClusterAgentPoolProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS runs a test to see if a specific instance of ManagedClusterAgentPoolProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS(subject ManagedClusterAgentPoolProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfile_STATUSGenerator() +var managedClusterAgentPoolProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAgentPoolProfile_STATUSGenerator returns a generator of ManagedClusterAgentPoolProfile_STATUS instances for property testing. +// We first initialize managedClusterAgentPoolProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfile_STATUSGenerator() gopter.Gen { + if managedClusterAgentPoolProfile_STATUSGenerator != nil { + return managedClusterAgentPoolProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + managedClusterAgentPoolProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + managedClusterAgentPoolProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS{}), generators) + + return managedClusterAgentPoolProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_STATUS_MIG1G, + GPUInstanceProfile_STATUS_MIG2G, + GPUInstanceProfile_STATUS_MIG3G, + GPUInstanceProfile_STATUS_MIG4G, + GPUInstanceProfile_STATUS_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_STATUS_OS, KubeletDiskType_STATUS_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_STATUS_System, AgentPoolMode_STATUS_User)) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_STATUS_Ephemeral, OSDiskType_STATUS_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_STATUS_AzureLinux, + OSSKU_STATUS_CBLMariner, + OSSKU_STATUS_Ubuntu, + OSSKU_STATUS_Windows2019, + OSSKU_STATUS_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_STATUS_Linux, OSType_STATUS_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_STATUS_Deallocate, ScaleDownMode_STATUS_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_STATUS_Deallocate, ScaleSetEvictionPolicy_STATUS_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_STATUS_Regular, ScaleSetPriority_STATUS_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_STATUS_AvailabilitySet, AgentPoolType_STATUS_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_STATUS_OCIContainer, WorkloadRuntime_STATUS_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUSGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUSGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) +} + +func Test_ManagedClusterAPIServerAccessProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAPIServerAccessProfile to ManagedClusterAPIServerAccessProfile via AssignProperties_To_ManagedClusterAPIServerAccessProfile & AssignProperties_From_ManagedClusterAPIServerAccessProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile, ManagedClusterAPIServerAccessProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile tests if a specific instance of ManagedClusterAPIServerAccessProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile(subject ManagedClusterAPIServerAccessProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAPIServerAccessProfile + err := copied.AssignProperties_To_ManagedClusterAPIServerAccessProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAPIServerAccessProfile + err = actual.AssignProperties_From_ManagedClusterAPIServerAccessProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAPIServerAccessProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile, ManagedClusterAPIServerAccessProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile(subject ManagedClusterAPIServerAccessProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfileGenerator() +var managedClusterAPIServerAccessProfileGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfileGenerator returns a generator of ManagedClusterAPIServerAccessProfile instances for property testing. +func ManagedClusterAPIServerAccessProfileGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfileGenerator != nil { + return managedClusterAPIServerAccessProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile(generators) + managedClusterAPIServerAccessProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile{}), generators) + + return managedClusterAPIServerAccessProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAPIServerAccessProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAPIServerAccessProfile_STATUS to ManagedClusterAPIServerAccessProfile_STATUS via AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS & AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS, ManagedClusterAPIServerAccessProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS tests if a specific instance of ManagedClusterAPIServerAccessProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAPIServerAccessProfile_STATUS(subject ManagedClusterAPIServerAccessProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAPIServerAccessProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAPIServerAccessProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAPIServerAccessProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAPIServerAccessProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAPIServerAccessProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS, ManagedClusterAPIServerAccessProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS(subject ManagedClusterAPIServerAccessProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfile_STATUSGenerator() +var managedClusterAPIServerAccessProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfile_STATUSGenerator returns a generator of ManagedClusterAPIServerAccessProfile_STATUS instances for property testing. +func ManagedClusterAPIServerAccessProfile_STATUSGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfile_STATUSGenerator != nil { + return managedClusterAPIServerAccessProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS(generators) + managedClusterAPIServerAccessProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile_STATUS{}), generators) + + return managedClusterAPIServerAccessProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAutoUpgradeProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAutoUpgradeProfile to ManagedClusterAutoUpgradeProfile via AssignProperties_To_ManagedClusterAutoUpgradeProfile & AssignProperties_From_ManagedClusterAutoUpgradeProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile, ManagedClusterAutoUpgradeProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile tests if a specific instance of ManagedClusterAutoUpgradeProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile(subject ManagedClusterAutoUpgradeProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAutoUpgradeProfile + err := copied.AssignProperties_To_ManagedClusterAutoUpgradeProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAutoUpgradeProfile + err = actual.AssignProperties_From_ManagedClusterAutoUpgradeProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAutoUpgradeProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile, ManagedClusterAutoUpgradeProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile(subject ManagedClusterAutoUpgradeProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfileGenerator() +var managedClusterAutoUpgradeProfileGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfileGenerator returns a generator of ManagedClusterAutoUpgradeProfile instances for property testing. +func ManagedClusterAutoUpgradeProfileGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfileGenerator != nil { + return managedClusterAutoUpgradeProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile(generators) + managedClusterAutoUpgradeProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile{}), generators) + + return managedClusterAutoUpgradeProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.OneConstOf(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_NodeImage, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_None, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_Unmanaged)) + gens["UpgradeChannel"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_NodeImage, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_None, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Patch, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Rapid, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_Stable)) +} + +func Test_ManagedClusterAutoUpgradeProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAutoUpgradeProfile_STATUS to ManagedClusterAutoUpgradeProfile_STATUS via AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS & AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS, ManagedClusterAutoUpgradeProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS tests if a specific instance of ManagedClusterAutoUpgradeProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAutoUpgradeProfile_STATUS(subject ManagedClusterAutoUpgradeProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAutoUpgradeProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAutoUpgradeProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAutoUpgradeProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAutoUpgradeProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAutoUpgradeProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS, ManagedClusterAutoUpgradeProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS(subject ManagedClusterAutoUpgradeProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfile_STATUSGenerator() +var managedClusterAutoUpgradeProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfile_STATUSGenerator returns a generator of ManagedClusterAutoUpgradeProfile_STATUS instances for property testing. +func ManagedClusterAutoUpgradeProfile_STATUSGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfile_STATUSGenerator != nil { + return managedClusterAutoUpgradeProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS(generators) + managedClusterAutoUpgradeProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile_STATUS{}), generators) + + return managedClusterAutoUpgradeProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.OneConstOf(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_NodeImage, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_None, ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS_Unmanaged)) + gens["UpgradeChannel"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_NodeImage, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_None, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Patch, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Rapid, + ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS_Stable)) +} + +func Test_ManagedClusterAzureMonitorProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfile to ManagedClusterAzureMonitorProfile via AssignProperties_To_ManagedClusterAzureMonitorProfile & AssignProperties_From_ManagedClusterAzureMonitorProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile, ManagedClusterAzureMonitorProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile tests if a specific instance of ManagedClusterAzureMonitorProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile(subject ManagedClusterAzureMonitorProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfile + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfile + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile, ManagedClusterAzureMonitorProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile(subject ManagedClusterAzureMonitorProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileGenerator() +var managedClusterAzureMonitorProfileGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileGenerator returns a generator of ManagedClusterAzureMonitorProfile instances for property testing. +func ManagedClusterAzureMonitorProfileGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileGenerator != nil { + return managedClusterAzureMonitorProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile(generators) + managedClusterAzureMonitorProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile{}), generators) + + return managedClusterAzureMonitorProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetricsGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfile_STATUS to ManagedClusterAzureMonitorProfile_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS, ManagedClusterAzureMonitorProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfile_STATUS(subject ManagedClusterAzureMonitorProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS, ManagedClusterAzureMonitorProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS(subject ManagedClusterAzureMonitorProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfile_STATUSGenerator() +var managedClusterAzureMonitorProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfile_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfile_STATUS instances for property testing. +func ManagedClusterAzureMonitorProfile_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfile_STATUSGenerator != nil { + return managedClusterAzureMonitorProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS(generators) + managedClusterAzureMonitorProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile_STATUS{}), generators) + + return managedClusterAzureMonitorProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator()) +} + +func Test_ManagedClusterHTTPProxyConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterHTTPProxyConfig to ManagedClusterHTTPProxyConfig via AssignProperties_To_ManagedClusterHTTPProxyConfig & AssignProperties_From_ManagedClusterHTTPProxyConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig, ManagedClusterHTTPProxyConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig tests if a specific instance of ManagedClusterHTTPProxyConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig(subject ManagedClusterHTTPProxyConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterHTTPProxyConfig + err := copied.AssignProperties_To_ManagedClusterHTTPProxyConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterHTTPProxyConfig + err = actual.AssignProperties_From_ManagedClusterHTTPProxyConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterHTTPProxyConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig, ManagedClusterHTTPProxyConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig(subject ManagedClusterHTTPProxyConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfigGenerator() +var managedClusterHTTPProxyConfigGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfigGenerator returns a generator of ManagedClusterHTTPProxyConfig instances for property testing. +func ManagedClusterHTTPProxyConfigGenerator() gopter.Gen { + if managedClusterHTTPProxyConfigGenerator != nil { + return managedClusterHTTPProxyConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig(generators) + managedClusterHTTPProxyConfigGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig{}), generators) + + return managedClusterHTTPProxyConfigGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterHTTPProxyConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterHTTPProxyConfig_STATUS to ManagedClusterHTTPProxyConfig_STATUS via AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS & AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS, ManagedClusterHTTPProxyConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS tests if a specific instance of ManagedClusterHTTPProxyConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterHTTPProxyConfig_STATUS(subject ManagedClusterHTTPProxyConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterHTTPProxyConfig_STATUS + err := copied.AssignProperties_To_ManagedClusterHTTPProxyConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterHTTPProxyConfig_STATUS + err = actual.AssignProperties_From_ManagedClusterHTTPProxyConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterHTTPProxyConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS, ManagedClusterHTTPProxyConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS(subject ManagedClusterHTTPProxyConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig_STATUS instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfig_STATUSGenerator() +var managedClusterHTTPProxyConfig_STATUSGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfig_STATUSGenerator returns a generator of ManagedClusterHTTPProxyConfig_STATUS instances for property testing. +func ManagedClusterHTTPProxyConfig_STATUSGenerator() gopter.Gen { + if managedClusterHTTPProxyConfig_STATUSGenerator != nil { + return managedClusterHTTPProxyConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS(generators) + managedClusterHTTPProxyConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig_STATUS{}), generators) + + return managedClusterHTTPProxyConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity to ManagedClusterIdentity via AssignProperties_To_ManagedClusterIdentity & AssignProperties_From_ManagedClusterIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity, ManagedClusterIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity tests if a specific instance of ManagedClusterIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity(subject ManagedClusterIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity + err := copied.AssignProperties_To_ManagedClusterIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity + err = actual.AssignProperties_From_ManagedClusterIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity, ManagedClusterIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity runs a test to see if a specific instance of ManagedClusterIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity(subject ManagedClusterIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity instances for property testing - lazily instantiated by +// ManagedClusterIdentityGenerator() +var managedClusterIdentityGenerator gopter.Gen + +// ManagedClusterIdentityGenerator returns a generator of ManagedClusterIdentity instances for property testing. +// We first initialize managedClusterIdentityGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentityGenerator() gopter.Gen { + if managedClusterIdentityGenerator != nil { + return managedClusterIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity(generators) + managedClusterIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity(generators) + managedClusterIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity{}), generators) + + return managedClusterIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.OneConstOf(ManagedClusterIdentity_Type_None, ManagedClusterIdentity_Type_SystemAssigned, ManagedClusterIdentity_Type_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResourceGenerator()) + gens["UserAssignedIdentities"] = gen.SliceOf(UserAssignedIdentityDetailsGenerator()) +} + +func Test_ManagedClusterIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity_STATUS to ManagedClusterIdentity_STATUS via AssignProperties_To_ManagedClusterIdentity_STATUS & AssignProperties_From_ManagedClusterIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity_STATUS, ManagedClusterIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity_STATUS tests if a specific instance of ManagedClusterIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity_STATUS(subject ManagedClusterIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_STATUS, ManagedClusterIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_STATUS runs a test to see if a specific instance of ManagedClusterIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_STATUS(subject ManagedClusterIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_STATUS instances for property testing - lazily instantiated by +// ManagedClusterIdentity_STATUSGenerator() +var managedClusterIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterIdentity_STATUSGenerator returns a generator of ManagedClusterIdentity_STATUS instances for property testing. +// We first initialize managedClusterIdentity_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentity_STATUSGenerator() gopter.Gen { + if managedClusterIdentity_STATUSGenerator != nil { + return managedClusterIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + managedClusterIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + managedClusterIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS{}), generators) + + return managedClusterIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(ManagedClusterIdentity_Type_STATUS_None, ManagedClusterIdentity_Type_STATUS_SystemAssigned, ManagedClusterIdentity_Type_STATUS_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResource_STATUSGenerator()) + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator()) +} + +func Test_ManagedClusterOIDCIssuerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOIDCIssuerProfile to ManagedClusterOIDCIssuerProfile via AssignProperties_To_ManagedClusterOIDCIssuerProfile & AssignProperties_From_ManagedClusterOIDCIssuerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile, ManagedClusterOIDCIssuerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile tests if a specific instance of ManagedClusterOIDCIssuerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile(subject ManagedClusterOIDCIssuerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOIDCIssuerProfile + err := copied.AssignProperties_To_ManagedClusterOIDCIssuerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOIDCIssuerProfile + err = actual.AssignProperties_From_ManagedClusterOIDCIssuerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOIDCIssuerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile, ManagedClusterOIDCIssuerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile(subject ManagedClusterOIDCIssuerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfileGenerator() +var managedClusterOIDCIssuerProfileGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfileGenerator returns a generator of ManagedClusterOIDCIssuerProfile instances for property testing. +func ManagedClusterOIDCIssuerProfileGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfileGenerator != nil { + return managedClusterOIDCIssuerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile(generators) + managedClusterOIDCIssuerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile{}), generators) + + return managedClusterOIDCIssuerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOIDCIssuerProfile_STATUS to ManagedClusterOIDCIssuerProfile_STATUS via AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS & AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS tests if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOIDCIssuerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterOIDCIssuerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOIDCIssuerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterOIDCIssuerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfile_STATUSGenerator() +var managedClusterOIDCIssuerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfile_STATUSGenerator returns a generator of ManagedClusterOIDCIssuerProfile_STATUS instances for property testing. +func ManagedClusterOIDCIssuerProfile_STATUSGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfile_STATUSGenerator != nil { + return managedClusterOIDCIssuerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS(generators) + managedClusterOIDCIssuerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile_STATUS{}), generators) + + return managedClusterOIDCIssuerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IssuerURL"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterOperatorSpec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOperatorSpec to ManagedClusterOperatorSpec via AssignProperties_To_ManagedClusterOperatorSpec & AssignProperties_From_ManagedClusterOperatorSpec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorSpec, ManagedClusterOperatorSpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOperatorSpec tests if a specific instance of ManagedClusterOperatorSpec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorSpec(subject ManagedClusterOperatorSpec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorSpec + err := copied.AssignProperties_To_ManagedClusterOperatorSpec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorSpec + err = actual.AssignProperties_From_ManagedClusterOperatorSpec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOperatorSpec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorSpec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSpec, ManagedClusterOperatorSpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorSpec runs a test to see if a specific instance of ManagedClusterOperatorSpec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorSpec(subject ManagedClusterOperatorSpec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorSpec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorSpec instances for property testing - lazily instantiated by +// ManagedClusterOperatorSpecGenerator() +var managedClusterOperatorSpecGenerator gopter.Gen + +// ManagedClusterOperatorSpecGenerator returns a generator of ManagedClusterOperatorSpec instances for property testing. +func ManagedClusterOperatorSpecGenerator() gopter.Gen { + if managedClusterOperatorSpecGenerator != nil { + return managedClusterOperatorSpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(generators) + managedClusterOperatorSpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorSpec{}), generators) + + return managedClusterOperatorSpecGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) { + gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator()) + gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator()) +} + +func Test_ManagedClusterPodIdentityProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProfile to ManagedClusterPodIdentityProfile via AssignProperties_To_ManagedClusterPodIdentityProfile & AssignProperties_From_ManagedClusterPodIdentityProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProfile, ManagedClusterPodIdentityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProfile tests if a specific instance of ManagedClusterPodIdentityProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProfile(subject ManagedClusterPodIdentityProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProfile + err := copied.AssignProperties_To_ManagedClusterPodIdentityProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProfile + err = actual.AssignProperties_From_ManagedClusterPodIdentityProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile, ManagedClusterPodIdentityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile runs a test to see if a specific instance of ManagedClusterPodIdentityProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile(subject ManagedClusterPodIdentityProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfileGenerator() +var managedClusterPodIdentityProfileGenerator gopter.Gen + +// ManagedClusterPodIdentityProfileGenerator returns a generator of ManagedClusterPodIdentityProfile instances for property testing. +// We first initialize managedClusterPodIdentityProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfileGenerator() gopter.Gen { + if managedClusterPodIdentityProfileGenerator != nil { + return managedClusterPodIdentityProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + managedClusterPodIdentityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + managedClusterPodIdentityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile{}), generators) + + return managedClusterPodIdentityProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentityGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityExceptionGenerator()) +} + +func Test_ManagedClusterPodIdentityProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProfile_STATUS to ManagedClusterPodIdentityProfile_STATUS via AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS & AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS, ManagedClusterPodIdentityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS tests if a specific instance of ManagedClusterPodIdentityProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProfile_STATUS(subject ManagedClusterPodIdentityProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS, ManagedClusterPodIdentityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS(subject ManagedClusterPodIdentityProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfile_STATUSGenerator() +var managedClusterPodIdentityProfile_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProfile_STATUSGenerator returns a generator of ManagedClusterPodIdentityProfile_STATUS instances for property testing. +// We first initialize managedClusterPodIdentityProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfile_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProfile_STATUSGenerator != nil { + return managedClusterPodIdentityProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + managedClusterPodIdentityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + managedClusterPodIdentityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS{}), generators) + + return managedClusterPodIdentityProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentity_STATUSGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityException_STATUSGenerator()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterProperties_AutoScalerProfile to ManagedClusterProperties_AutoScalerProfile via AssignProperties_To_ManagedClusterProperties_AutoScalerProfile & AssignProperties_From_ManagedClusterProperties_AutoScalerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile, ManagedClusterProperties_AutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile tests if a specific instance of ManagedClusterProperties_AutoScalerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile(subject ManagedClusterProperties_AutoScalerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterProperties_AutoScalerProfile + err := copied.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterProperties_AutoScalerProfile + err = actual.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterProperties_AutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile, ManagedClusterProperties_AutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile(subject ManagedClusterProperties_AutoScalerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile instances for property testing - lazily instantiated by +// ManagedClusterProperties_AutoScalerProfileGenerator() +var managedClusterProperties_AutoScalerProfileGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfileGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile instances for property testing. +func ManagedClusterProperties_AutoScalerProfileGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfileGenerator != nil { + return managedClusterProperties_AutoScalerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile(generators) + managedClusterProperties_AutoScalerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile{}), generators) + + return managedClusterProperties_AutoScalerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterProperties_AutoScalerProfile_Expander_LeastWaste, + ManagedClusterProperties_AutoScalerProfile_Expander_MostPods, + ManagedClusterProperties_AutoScalerProfile_Expander_Priority, + ManagedClusterProperties_AutoScalerProfile_Expander_Random)) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterProperties_AutoScalerProfile_STATUS to ManagedClusterProperties_AutoScalerProfile_STATUS via AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS & AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS, ManagedClusterProperties_AutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS tests if a specific instance of ManagedClusterProperties_AutoScalerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterProperties_AutoScalerProfile_STATUS(subject ManagedClusterProperties_AutoScalerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterProperties_AutoScalerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterProperties_AutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterProperties_AutoScalerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterProperties_AutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS, ManagedClusterProperties_AutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS(subject ManagedClusterProperties_AutoScalerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile_STATUS instances for property testing - lazily instantiated +// by ManagedClusterProperties_AutoScalerProfile_STATUSGenerator() +var managedClusterProperties_AutoScalerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfile_STATUSGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile_STATUS instances for property testing. +func ManagedClusterProperties_AutoScalerProfile_STATUSGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfile_STATUSGenerator != nil { + return managedClusterProperties_AutoScalerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS(generators) + managedClusterProperties_AutoScalerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile_STATUS{}), generators) + + return managedClusterProperties_AutoScalerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_LeastWaste, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_MostPods, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Priority, + ManagedClusterProperties_AutoScalerProfile_Expander_STATUS_Random)) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfile to ManagedClusterSecurityProfile via AssignProperties_To_ManagedClusterSecurityProfile & AssignProperties_From_ManagedClusterSecurityProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfile, ManagedClusterSecurityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfile tests if a specific instance of ManagedClusterSecurityProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfile(subject ManagedClusterSecurityProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfile + err := copied.AssignProperties_To_ManagedClusterSecurityProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfile + err = actual.AssignProperties_From_ManagedClusterSecurityProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile, ManagedClusterSecurityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile runs a test to see if a specific instance of ManagedClusterSecurityProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile(subject ManagedClusterSecurityProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileGenerator() +var managedClusterSecurityProfileGenerator gopter.Gen + +// ManagedClusterSecurityProfileGenerator returns a generator of ManagedClusterSecurityProfile instances for property testing. +func ManagedClusterSecurityProfileGenerator() gopter.Gen { + if managedClusterSecurityProfileGenerator != nil { + return managedClusterSecurityProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile(generators) + managedClusterSecurityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile{}), generators) + + return managedClusterSecurityProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKmsGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleanerGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentityGenerator()) +} + +func Test_ManagedClusterSecurityProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfile_STATUS to ManagedClusterSecurityProfile_STATUS via AssignProperties_To_ManagedClusterSecurityProfile_STATUS & AssignProperties_From_ManagedClusterSecurityProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS, ManagedClusterSecurityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS tests if a specific instance of ManagedClusterSecurityProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfile_STATUS(subject ManagedClusterSecurityProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS, ManagedClusterSecurityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS(subject ManagedClusterSecurityProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfile_STATUSGenerator() +var managedClusterSecurityProfile_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfile_STATUSGenerator returns a generator of ManagedClusterSecurityProfile_STATUS instances for property testing. +func ManagedClusterSecurityProfile_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfile_STATUSGenerator != nil { + return managedClusterSecurityProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS(generators) + managedClusterSecurityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile_STATUS{}), generators) + + return managedClusterSecurityProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKms_STATUSGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefender_STATUSGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleaner_STATUSGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator()) +} + +func Test_ManagedClusterServicePrincipalProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterServicePrincipalProfile to ManagedClusterServicePrincipalProfile via AssignProperties_To_ManagedClusterServicePrincipalProfile & AssignProperties_From_ManagedClusterServicePrincipalProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile, ManagedClusterServicePrincipalProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile tests if a specific instance of ManagedClusterServicePrincipalProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile(subject ManagedClusterServicePrincipalProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterServicePrincipalProfile + err := copied.AssignProperties_To_ManagedClusterServicePrincipalProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterServicePrincipalProfile + err = actual.AssignProperties_From_ManagedClusterServicePrincipalProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterServicePrincipalProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile, ManagedClusterServicePrincipalProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile(subject ManagedClusterServicePrincipalProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfileGenerator() +var managedClusterServicePrincipalProfileGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfileGenerator returns a generator of ManagedClusterServicePrincipalProfile instances for property testing. +func ManagedClusterServicePrincipalProfileGenerator() gopter.Gen { + if managedClusterServicePrincipalProfileGenerator != nil { + return managedClusterServicePrincipalProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile(generators) + managedClusterServicePrincipalProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile{}), generators) + + return managedClusterServicePrincipalProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterServicePrincipalProfile_STATUS to ManagedClusterServicePrincipalProfile_STATUS via AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS & AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS, ManagedClusterServicePrincipalProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS tests if a specific instance of ManagedClusterServicePrincipalProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterServicePrincipalProfile_STATUS(subject ManagedClusterServicePrincipalProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterServicePrincipalProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterServicePrincipalProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterServicePrincipalProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterServicePrincipalProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS, ManagedClusterServicePrincipalProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS(subject ManagedClusterServicePrincipalProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfile_STATUSGenerator() +var managedClusterServicePrincipalProfile_STATUSGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfile_STATUSGenerator returns a generator of ManagedClusterServicePrincipalProfile_STATUS instances for property testing. +func ManagedClusterServicePrincipalProfile_STATUSGenerator() gopter.Gen { + if managedClusterServicePrincipalProfile_STATUSGenerator != nil { + return managedClusterServicePrincipalProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS(generators) + managedClusterServicePrincipalProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile_STATUS{}), generators) + + return managedClusterServicePrincipalProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSKU_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSKU to ManagedClusterSKU via AssignProperties_To_ManagedClusterSKU & AssignProperties_From_ManagedClusterSKU returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSKU, ManagedClusterSKUGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSKU tests if a specific instance of ManagedClusterSKU can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSKU(subject ManagedClusterSKU) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSKU + err := copied.AssignProperties_To_ManagedClusterSKU(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSKU + err = actual.AssignProperties_From_ManagedClusterSKU(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSKU_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU, ManagedClusterSKUGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU runs a test to see if a specific instance of ManagedClusterSKU round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU(subject ManagedClusterSKU) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU instances for property testing - lazily instantiated by ManagedClusterSKUGenerator() +var managedClusterSKUGenerator gopter.Gen + +// ManagedClusterSKUGenerator returns a generator of ManagedClusterSKU instances for property testing. +func ManagedClusterSKUGenerator() gopter.Gen { + if managedClusterSKUGenerator != nil { + return managedClusterSKUGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU(generators) + managedClusterSKUGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU{}), generators) + + return managedClusterSKUGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Name_Base)) + gens["Tier"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Tier_Free, ManagedClusterSKU_Tier_Premium, ManagedClusterSKU_Tier_Standard)) +} + +func Test_ManagedClusterSKU_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSKU_STATUS to ManagedClusterSKU_STATUS via AssignProperties_To_ManagedClusterSKU_STATUS & AssignProperties_From_ManagedClusterSKU_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSKU_STATUS, ManagedClusterSKU_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSKU_STATUS tests if a specific instance of ManagedClusterSKU_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSKU_STATUS(subject ManagedClusterSKU_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSKU_STATUS + err := copied.AssignProperties_To_ManagedClusterSKU_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSKU_STATUS + err = actual.AssignProperties_From_ManagedClusterSKU_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSKU_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU_STATUS, ManagedClusterSKU_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU_STATUS runs a test to see if a specific instance of ManagedClusterSKU_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU_STATUS(subject ManagedClusterSKU_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSKU_STATUSGenerator() +var managedClusterSKU_STATUSGenerator gopter.Gen + +// ManagedClusterSKU_STATUSGenerator returns a generator of ManagedClusterSKU_STATUS instances for property testing. +func ManagedClusterSKU_STATUSGenerator() gopter.Gen { + if managedClusterSKU_STATUSGenerator != nil { + return managedClusterSKU_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS(generators) + managedClusterSKU_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU_STATUS{}), generators) + + return managedClusterSKU_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Name_STATUS_Base)) + gens["Tier"] = gen.PtrOf(gen.OneConstOf(ManagedClusterSKU_Tier_STATUS_Free, ManagedClusterSKU_Tier_STATUS_Premium, ManagedClusterSKU_Tier_STATUS_Standard)) +} + +func Test_ManagedClusterStorageProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfile to ManagedClusterStorageProfile via AssignProperties_To_ManagedClusterStorageProfile & AssignProperties_From_ManagedClusterStorageProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfile, ManagedClusterStorageProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfile tests if a specific instance of ManagedClusterStorageProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfile(subject ManagedClusterStorageProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfile + err := copied.AssignProperties_To_ManagedClusterStorageProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfile + err = actual.AssignProperties_From_ManagedClusterStorageProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile, ManagedClusterStorageProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile runs a test to see if a specific instance of ManagedClusterStorageProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile(subject ManagedClusterStorageProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileGenerator() +var managedClusterStorageProfileGenerator gopter.Gen + +// ManagedClusterStorageProfileGenerator returns a generator of ManagedClusterStorageProfile instances for property testing. +func ManagedClusterStorageProfileGenerator() gopter.Gen { + if managedClusterStorageProfileGenerator != nil { + return managedClusterStorageProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile(generators) + managedClusterStorageProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile{}), generators) + + return managedClusterStorageProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriverGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriverGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriverGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotControllerGenerator()) +} + +func Test_ManagedClusterStorageProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfile_STATUS to ManagedClusterStorageProfile_STATUS via AssignProperties_To_ManagedClusterStorageProfile_STATUS & AssignProperties_From_ManagedClusterStorageProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS, ManagedClusterStorageProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS tests if a specific instance of ManagedClusterStorageProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfile_STATUS(subject ManagedClusterStorageProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile_STATUS, ManagedClusterStorageProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile_STATUS(subject ManagedClusterStorageProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfile_STATUSGenerator() +var managedClusterStorageProfile_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfile_STATUSGenerator returns a generator of ManagedClusterStorageProfile_STATUS instances for property testing. +func ManagedClusterStorageProfile_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfile_STATUSGenerator != nil { + return managedClusterStorageProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS(generators) + managedClusterStorageProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile_STATUS{}), generators) + + return managedClusterStorageProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotController_STATUSGenerator()) +} + +func Test_ManagedClusterWindowsProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWindowsProfile to ManagedClusterWindowsProfile via AssignProperties_To_ManagedClusterWindowsProfile & AssignProperties_From_ManagedClusterWindowsProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWindowsProfile, ManagedClusterWindowsProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWindowsProfile tests if a specific instance of ManagedClusterWindowsProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWindowsProfile(subject ManagedClusterWindowsProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWindowsProfile + err := copied.AssignProperties_To_ManagedClusterWindowsProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWindowsProfile + err = actual.AssignProperties_From_ManagedClusterWindowsProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWindowsProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile, ManagedClusterWindowsProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile runs a test to see if a specific instance of ManagedClusterWindowsProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile(subject ManagedClusterWindowsProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfileGenerator() +var managedClusterWindowsProfileGenerator gopter.Gen + +// ManagedClusterWindowsProfileGenerator returns a generator of ManagedClusterWindowsProfile instances for property testing. +// We first initialize managedClusterWindowsProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfileGenerator() gopter.Gen { + if managedClusterWindowsProfileGenerator != nil { + return managedClusterWindowsProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(generators) + managedClusterWindowsProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile(generators) + managedClusterWindowsProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile{}), generators) + + return managedClusterWindowsProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterWindowsProfile_LicenseType_None, ManagedClusterWindowsProfile_LicenseType_Windows_Server)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfileGenerator()) +} + +func Test_ManagedClusterWindowsProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWindowsProfile_STATUS to ManagedClusterWindowsProfile_STATUS via AssignProperties_To_ManagedClusterWindowsProfile_STATUS & AssignProperties_From_ManagedClusterWindowsProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS, ManagedClusterWindowsProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS tests if a specific instance of ManagedClusterWindowsProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWindowsProfile_STATUS(subject ManagedClusterWindowsProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWindowsProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterWindowsProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWindowsProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterWindowsProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWindowsProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS, ManagedClusterWindowsProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS runs a test to see if a specific instance of ManagedClusterWindowsProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS(subject ManagedClusterWindowsProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfile_STATUSGenerator() +var managedClusterWindowsProfile_STATUSGenerator gopter.Gen + +// ManagedClusterWindowsProfile_STATUSGenerator returns a generator of ManagedClusterWindowsProfile_STATUS instances for property testing. +// We first initialize managedClusterWindowsProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfile_STATUSGenerator() gopter.Gen { + if managedClusterWindowsProfile_STATUSGenerator != nil { + return managedClusterWindowsProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + managedClusterWindowsProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + managedClusterWindowsProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS{}), generators) + + return managedClusterWindowsProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterWindowsProfile_LicenseType_STATUS_None, ManagedClusterWindowsProfile_LicenseType_STATUS_Windows_Server)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfile_STATUSGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfile to ManagedClusterWorkloadAutoScalerProfile via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile, ManagedClusterWorkloadAutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile tests if a specific instance of ManagedClusterWorkloadAutoScalerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile(subject ManagedClusterWorkloadAutoScalerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfile + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfile + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile, ManagedClusterWorkloadAutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile(subject ManagedClusterWorkloadAutoScalerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfileGenerator() +var managedClusterWorkloadAutoScalerProfileGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileGenerator != nil { + return managedClusterWorkloadAutoScalerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile(generators) + managedClusterWorkloadAutoScalerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile{}), generators) + + return managedClusterWorkloadAutoScalerProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKedaGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfile_STATUS to ManagedClusterWorkloadAutoScalerProfile_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS, ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfile_STATUS(subject ManagedClusterWorkloadAutoScalerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS, ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS(subject ManagedClusterWorkloadAutoScalerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfile_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS(generators) + managedClusterWorkloadAutoScalerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator()) +} + +func Test_PowerState_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PowerState_STATUS to PowerState_STATUS via AssignProperties_To_PowerState_STATUS & AssignProperties_From_PowerState_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPowerState_STATUS, PowerState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPowerState_STATUS tests if a specific instance of PowerState_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPowerState_STATUS(subject PowerState_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PowerState_STATUS + err := copied.AssignProperties_To_PowerState_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PowerState_STATUS + err = actual.AssignProperties_From_PowerState_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PowerState_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState_STATUS, PowerState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState_STATUS runs a test to see if a specific instance of PowerState_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState_STATUS(subject PowerState_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState_STATUS instances for property testing - lazily instantiated by PowerState_STATUSGenerator() +var powerState_STATUSGenerator gopter.Gen + +// PowerState_STATUSGenerator returns a generator of PowerState_STATUS instances for property testing. +func PowerState_STATUSGenerator() gopter.Gen { + if powerState_STATUSGenerator != nil { + return powerState_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState_STATUS(generators) + powerState_STATUSGenerator = gen.Struct(reflect.TypeOf(PowerState_STATUS{}), generators) + + return powerState_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState_STATUS(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.OneConstOf(PowerState_Code_STATUS_Running, PowerState_Code_STATUS_Stopped)) +} + +func Test_PrivateLinkResource_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateLinkResource to PrivateLinkResource via AssignProperties_To_PrivateLinkResource & AssignProperties_From_PrivateLinkResource returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateLinkResource, PrivateLinkResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateLinkResource tests if a specific instance of PrivateLinkResource can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrivateLinkResource(subject PrivateLinkResource) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PrivateLinkResource + err := copied.AssignProperties_To_PrivateLinkResource(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateLinkResource + err = actual.AssignProperties_From_PrivateLinkResource(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PrivateLinkResource_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource, PrivateLinkResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource runs a test to see if a specific instance of PrivateLinkResource round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource(subject PrivateLinkResource) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource instances for property testing - lazily instantiated by +// PrivateLinkResourceGenerator() +var privateLinkResourceGenerator gopter.Gen + +// PrivateLinkResourceGenerator returns a generator of PrivateLinkResource instances for property testing. +func PrivateLinkResourceGenerator() gopter.Gen { + if privateLinkResourceGenerator != nil { + return privateLinkResourceGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource(generators) + privateLinkResourceGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource{}), generators) + + return privateLinkResourceGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkResource_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateLinkResource_STATUS to PrivateLinkResource_STATUS via AssignProperties_To_PrivateLinkResource_STATUS & AssignProperties_From_PrivateLinkResource_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateLinkResource_STATUS, PrivateLinkResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateLinkResource_STATUS tests if a specific instance of PrivateLinkResource_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrivateLinkResource_STATUS(subject PrivateLinkResource_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PrivateLinkResource_STATUS + err := copied.AssignProperties_To_PrivateLinkResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateLinkResource_STATUS + err = actual.AssignProperties_From_PrivateLinkResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PrivateLinkResource_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource_STATUS, PrivateLinkResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource_STATUS runs a test to see if a specific instance of PrivateLinkResource_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource_STATUS(subject PrivateLinkResource_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource_STATUS instances for property testing - lazily instantiated by +// PrivateLinkResource_STATUSGenerator() +var privateLinkResource_STATUSGenerator gopter.Gen + +// PrivateLinkResource_STATUSGenerator returns a generator of PrivateLinkResource_STATUS instances for property testing. +func PrivateLinkResource_STATUSGenerator() gopter.Gen { + if privateLinkResource_STATUSGenerator != nil { + return privateLinkResource_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(generators) + privateLinkResource_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource_STATUS{}), generators) + + return privateLinkResource_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateLinkServiceID"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ServiceMeshProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile to ServiceMeshProfile via AssignProperties_To_ServiceMeshProfile & AssignProperties_From_ServiceMeshProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile tests if a specific instance of ServiceMeshProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ServiceMeshProfile + err := copied.AssignProperties_To_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile + err = actual.AssignProperties_From_ServiceMeshProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ServiceMeshProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile runs a test to see if a specific instance of ServiceMeshProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile instances for property testing - lazily instantiated by ServiceMeshProfileGenerator() +var serviceMeshProfileGenerator gopter.Gen + +// ServiceMeshProfileGenerator returns a generator of ServiceMeshProfile instances for property testing. +// We first initialize serviceMeshProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfileGenerator() gopter.Gen { + if serviceMeshProfileGenerator != nil { + return serviceMeshProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + return serviceMeshProfileGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.OneConstOf(ServiceMeshProfile_Mode_Disabled, ServiceMeshProfile_Mode_Istio)) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMeshGenerator()) +} + +func Test_ServiceMeshProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ServiceMeshProfile_STATUS to ServiceMeshProfile_STATUS via AssignProperties_To_ServiceMeshProfile_STATUS & AssignProperties_From_ServiceMeshProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForServiceMeshProfile_STATUS tests if a specific instance of ServiceMeshProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ServiceMeshProfile_STATUS + err := copied.AssignProperties_To_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ServiceMeshProfile_STATUS + err = actual.AssignProperties_From_ServiceMeshProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ServiceMeshProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile_STATUS runs a test to see if a specific instance of ServiceMeshProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile_STATUS instances for property testing - lazily instantiated by +// ServiceMeshProfile_STATUSGenerator() +var serviceMeshProfile_STATUSGenerator gopter.Gen + +// ServiceMeshProfile_STATUSGenerator returns a generator of ServiceMeshProfile_STATUS instances for property testing. +// We first initialize serviceMeshProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfile_STATUSGenerator() gopter.Gen { + if serviceMeshProfile_STATUSGenerator != nil { + return serviceMeshProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + return serviceMeshProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.OneConstOf(ServiceMeshProfile_Mode_STATUS_Disabled, ServiceMeshProfile_Mode_STATUS_Istio)) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMesh_STATUSGenerator()) +} + +func Test_SystemData_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SystemData_STATUS to SystemData_STATUS via AssignProperties_To_SystemData_STATUS & AssignProperties_From_SystemData_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSystemData_STATUS tests if a specific instance of SystemData_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SystemData_STATUS + err := copied.AssignProperties_To_SystemData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SystemData_STATUS + err = actual.AssignProperties_From_SystemData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_SystemData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SystemData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS runs a test to see if a specific instance of SystemData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SystemData_STATUS instances for property testing - lazily instantiated by SystemData_STATUSGenerator() +var systemData_STATUSGenerator gopter.Gen + +// SystemData_STATUSGenerator returns a generator of SystemData_STATUS instances for property testing. +func SystemData_STATUSGenerator() gopter.Gen { + if systemData_STATUSGenerator != nil { + return systemData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS(generators) + systemData_STATUSGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS{}), generators) + + return systemData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_CreatedByType_STATUS_Application, + SystemData_CreatedByType_STATUS_Key, + SystemData_CreatedByType_STATUS_ManagedIdentity, + SystemData_CreatedByType_STATUS_User)) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_LastModifiedByType_STATUS_Application, + SystemData_LastModifiedByType_STATUS_Key, + SystemData_LastModifiedByType_STATUS_ManagedIdentity, + SystemData_LastModifiedByType_STATUS_User)) +} + +func Test_UserAssignedIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentity to UserAssignedIdentity via AssignProperties_To_UserAssignedIdentity & AssignProperties_From_UserAssignedIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentity, UserAssignedIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentity tests if a specific instance of UserAssignedIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentity(subject UserAssignedIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentity + err := copied.AssignProperties_To_UserAssignedIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentity + err = actual.AssignProperties_From_UserAssignedIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UserAssignedIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity, UserAssignedIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity runs a test to see if a specific instance of UserAssignedIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity(subject UserAssignedIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity instances for property testing - lazily instantiated by +// UserAssignedIdentityGenerator() +var userAssignedIdentityGenerator gopter.Gen + +// UserAssignedIdentityGenerator returns a generator of UserAssignedIdentity instances for property testing. +func UserAssignedIdentityGenerator() gopter.Gen { + if userAssignedIdentityGenerator != nil { + return userAssignedIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity(generators) + userAssignedIdentityGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity{}), generators) + + return userAssignedIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentity_STATUS to UserAssignedIdentity_STATUS via AssignProperties_To_UserAssignedIdentity_STATUS & AssignProperties_From_UserAssignedIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentity_STATUS, UserAssignedIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentity_STATUS tests if a specific instance of UserAssignedIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentity_STATUS(subject UserAssignedIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentity_STATUS + err := copied.AssignProperties_To_UserAssignedIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentity_STATUS + err = actual.AssignProperties_From_UserAssignedIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UserAssignedIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity_STATUS, UserAssignedIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity_STATUS runs a test to see if a specific instance of UserAssignedIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity_STATUS(subject UserAssignedIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity_STATUS instances for property testing - lazily instantiated by +// UserAssignedIdentity_STATUSGenerator() +var userAssignedIdentity_STATUSGenerator gopter.Gen + +// UserAssignedIdentity_STATUSGenerator returns a generator of UserAssignedIdentity_STATUS instances for property testing. +func UserAssignedIdentity_STATUSGenerator() gopter.Gen { + if userAssignedIdentity_STATUSGenerator != nil { + return userAssignedIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS(generators) + userAssignedIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity_STATUS{}), generators) + + return userAssignedIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AzureKeyVaultKms_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AzureKeyVaultKms to AzureKeyVaultKms via AssignProperties_To_AzureKeyVaultKms & AssignProperties_From_AzureKeyVaultKms returns original", + prop.ForAll(RunPropertyAssignmentTestForAzureKeyVaultKms, AzureKeyVaultKmsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAzureKeyVaultKms tests if a specific instance of AzureKeyVaultKms can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAzureKeyVaultKms(subject AzureKeyVaultKms) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AzureKeyVaultKms + err := copied.AssignProperties_To_AzureKeyVaultKms(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AzureKeyVaultKms + err = actual.AssignProperties_From_AzureKeyVaultKms(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AzureKeyVaultKms_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms, AzureKeyVaultKmsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms runs a test to see if a specific instance of AzureKeyVaultKms round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms(subject AzureKeyVaultKms) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms instances for property testing - lazily instantiated by AzureKeyVaultKmsGenerator() +var azureKeyVaultKmsGenerator gopter.Gen + +// AzureKeyVaultKmsGenerator returns a generator of AzureKeyVaultKms instances for property testing. +func AzureKeyVaultKmsGenerator() gopter.Gen { + if azureKeyVaultKmsGenerator != nil { + return azureKeyVaultKmsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms(generators) + azureKeyVaultKmsGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms{}), generators) + + return azureKeyVaultKmsGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureKeyVaultKms_KeyVaultNetworkAccess_Private, AzureKeyVaultKms_KeyVaultNetworkAccess_Public)) +} + +func Test_AzureKeyVaultKms_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AzureKeyVaultKms_STATUS to AzureKeyVaultKms_STATUS via AssignProperties_To_AzureKeyVaultKms_STATUS & AssignProperties_From_AzureKeyVaultKms_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS, AzureKeyVaultKms_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS tests if a specific instance of AzureKeyVaultKms_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAzureKeyVaultKms_STATUS(subject AzureKeyVaultKms_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AzureKeyVaultKms_STATUS + err := copied.AssignProperties_To_AzureKeyVaultKms_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AzureKeyVaultKms_STATUS + err = actual.AssignProperties_From_AzureKeyVaultKms_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AzureKeyVaultKms_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms_STATUS, AzureKeyVaultKms_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms_STATUS runs a test to see if a specific instance of AzureKeyVaultKms_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms_STATUS(subject AzureKeyVaultKms_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms_STATUS instances for property testing - lazily instantiated by +// AzureKeyVaultKms_STATUSGenerator() +var azureKeyVaultKms_STATUSGenerator gopter.Gen + +// AzureKeyVaultKms_STATUSGenerator returns a generator of AzureKeyVaultKms_STATUS instances for property testing. +func AzureKeyVaultKms_STATUSGenerator() gopter.Gen { + if azureKeyVaultKms_STATUSGenerator != nil { + return azureKeyVaultKms_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS(generators) + azureKeyVaultKms_STATUSGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms_STATUS{}), generators) + + return azureKeyVaultKms_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Private, AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS_Public)) + gens["KeyVaultResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshConfiguration to ContainerServiceSshConfiguration via AssignProperties_To_ContainerServiceSshConfiguration & AssignProperties_From_ContainerServiceSshConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshConfiguration, ContainerServiceSshConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshConfiguration tests if a specific instance of ContainerServiceSshConfiguration can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshConfiguration(subject ContainerServiceSshConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshConfiguration + err := copied.AssignProperties_To_ContainerServiceSshConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshConfiguration + err = actual.AssignProperties_From_ContainerServiceSshConfiguration(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceSshConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration, ContainerServiceSshConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration runs a test to see if a specific instance of ContainerServiceSshConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration(subject ContainerServiceSshConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration instances for property testing - lazily instantiated by +// ContainerServiceSshConfigurationGenerator() +var containerServiceSshConfigurationGenerator gopter.Gen + +// ContainerServiceSshConfigurationGenerator returns a generator of ContainerServiceSshConfiguration instances for property testing. +func ContainerServiceSshConfigurationGenerator() gopter.Gen { + if containerServiceSshConfigurationGenerator != nil { + return containerServiceSshConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration(generators) + containerServiceSshConfigurationGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration{}), generators) + + return containerServiceSshConfigurationGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKeyGenerator()) +} + +func Test_ContainerServiceSshConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshConfiguration_STATUS to ContainerServiceSshConfiguration_STATUS via AssignProperties_To_ContainerServiceSshConfiguration_STATUS & AssignProperties_From_ContainerServiceSshConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS, ContainerServiceSshConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS tests if a specific instance of ContainerServiceSshConfiguration_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshConfiguration_STATUS(subject ContainerServiceSshConfiguration_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshConfiguration_STATUS + err := copied.AssignProperties_To_ContainerServiceSshConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshConfiguration_STATUS + err = actual.AssignProperties_From_ContainerServiceSshConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceSshConfiguration_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS, ContainerServiceSshConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS runs a test to see if a specific instance of ContainerServiceSshConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS(subject ContainerServiceSshConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration_STATUS instances for property testing - lazily instantiated by +// ContainerServiceSshConfiguration_STATUSGenerator() +var containerServiceSshConfiguration_STATUSGenerator gopter.Gen + +// ContainerServiceSshConfiguration_STATUSGenerator returns a generator of ContainerServiceSshConfiguration_STATUS instances for property testing. +func ContainerServiceSshConfiguration_STATUSGenerator() gopter.Gen { + if containerServiceSshConfiguration_STATUSGenerator != nil { + return containerServiceSshConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(generators) + containerServiceSshConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration_STATUS{}), generators) + + return containerServiceSshConfiguration_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_STATUSGenerator()) +} + +func Test_DelegatedResource_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from DelegatedResource to DelegatedResource via AssignProperties_To_DelegatedResource & AssignProperties_From_DelegatedResource returns original", + prop.ForAll(RunPropertyAssignmentTestForDelegatedResource, DelegatedResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForDelegatedResource tests if a specific instance of DelegatedResource can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForDelegatedResource(subject DelegatedResource) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.DelegatedResource + err := copied.AssignProperties_To_DelegatedResource(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual DelegatedResource + err = actual.AssignProperties_From_DelegatedResource(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_DelegatedResource_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource, DelegatedResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource runs a test to see if a specific instance of DelegatedResource round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource(subject DelegatedResource) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource instances for property testing - lazily instantiated by DelegatedResourceGenerator() +var delegatedResourceGenerator gopter.Gen + +// DelegatedResourceGenerator returns a generator of DelegatedResource instances for property testing. +func DelegatedResourceGenerator() gopter.Gen { + if delegatedResourceGenerator != nil { + return delegatedResourceGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource(generators) + delegatedResourceGenerator = gen.Struct(reflect.TypeOf(DelegatedResource{}), generators) + + return delegatedResourceGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_DelegatedResource_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from DelegatedResource_STATUS to DelegatedResource_STATUS via AssignProperties_To_DelegatedResource_STATUS & AssignProperties_From_DelegatedResource_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForDelegatedResource_STATUS, DelegatedResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForDelegatedResource_STATUS tests if a specific instance of DelegatedResource_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForDelegatedResource_STATUS(subject DelegatedResource_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.DelegatedResource_STATUS + err := copied.AssignProperties_To_DelegatedResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual DelegatedResource_STATUS + err = actual.AssignProperties_From_DelegatedResource_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_DelegatedResource_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource_STATUS, DelegatedResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource_STATUS runs a test to see if a specific instance of DelegatedResource_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource_STATUS(subject DelegatedResource_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource_STATUS instances for property testing - lazily instantiated by +// DelegatedResource_STATUSGenerator() +var delegatedResource_STATUSGenerator gopter.Gen + +// DelegatedResource_STATUSGenerator returns a generator of DelegatedResource_STATUS instances for property testing. +func DelegatedResource_STATUSGenerator() gopter.Gen { + if delegatedResource_STATUSGenerator != nil { + return delegatedResource_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource_STATUS(generators) + delegatedResource_STATUSGenerator = gen.Struct(reflect.TypeOf(DelegatedResource_STATUS{}), generators) + + return delegatedResource_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource_STATUS(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioServiceMesh_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh to IstioServiceMesh via AssignProperties_To_IstioServiceMesh & AssignProperties_From_IstioServiceMesh returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh tests if a specific instance of IstioServiceMesh can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioServiceMesh + err := copied.AssignProperties_To_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh + err = actual.AssignProperties_From_IstioServiceMesh(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioServiceMesh_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh runs a test to see if a specific instance of IstioServiceMesh round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh instances for property testing - lazily instantiated by IstioServiceMeshGenerator() +var istioServiceMeshGenerator gopter.Gen + +// IstioServiceMeshGenerator returns a generator of IstioServiceMesh instances for property testing. +// We first initialize istioServiceMeshGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMeshGenerator() gopter.Gen { + if istioServiceMeshGenerator != nil { + return istioServiceMeshGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh(generators) + istioServiceMeshGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh(generators) + istioServiceMeshGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh{}), generators) + + return istioServiceMeshGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthorityGenerator()) + gens["Components"] = gen.PtrOf(IstioComponentsGenerator()) +} + +func Test_IstioServiceMesh_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioServiceMesh_STATUS to IstioServiceMesh_STATUS via AssignProperties_To_IstioServiceMesh_STATUS & AssignProperties_From_IstioServiceMesh_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioServiceMesh_STATUS tests if a specific instance of IstioServiceMesh_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioServiceMesh_STATUS + err := copied.AssignProperties_To_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioServiceMesh_STATUS + err = actual.AssignProperties_From_IstioServiceMesh_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioServiceMesh_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh_STATUS runs a test to see if a specific instance of IstioServiceMesh_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh_STATUS instances for property testing - lazily instantiated by +// IstioServiceMesh_STATUSGenerator() +var istioServiceMesh_STATUSGenerator gopter.Gen + +// IstioServiceMesh_STATUSGenerator returns a generator of IstioServiceMesh_STATUS instances for property testing. +// We first initialize istioServiceMesh_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMesh_STATUSGenerator() gopter.Gen { + if istioServiceMesh_STATUSGenerator != nil { + return istioServiceMesh_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + istioServiceMesh_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + istioServiceMesh_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS{}), generators) + + return istioServiceMesh_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthority_STATUSGenerator()) + gens["Components"] = gen.PtrOf(IstioComponents_STATUSGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileMetrics to ManagedClusterAzureMonitorProfileMetrics via AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics & AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics, ManagedClusterAzureMonitorProfileMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics tests if a specific instance of ManagedClusterAzureMonitorProfileMetrics can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics(subject ManagedClusterAzureMonitorProfileMetrics) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileMetrics + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileMetrics + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics, ManagedClusterAzureMonitorProfileMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics(subject ManagedClusterAzureMonitorProfileMetrics) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileMetricsGenerator() +var managedClusterAzureMonitorProfileMetricsGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetricsGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetricsGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetricsGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetricsGenerator != nil { + return managedClusterAzureMonitorProfileMetricsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + managedClusterAzureMonitorProfileMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + managedClusterAzureMonitorProfileMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics{}), generators) + + return managedClusterAzureMonitorProfileMetricsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileMetrics_STATUS to ManagedClusterAzureMonitorProfileMetrics_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS, ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfileMetrics_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileMetrics_STATUS(subject ManagedClusterAzureMonitorProfileMetrics_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileMetrics_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileMetrics_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS, ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS(subject ManagedClusterAzureMonitorProfileMetrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator() +var managedClusterAzureMonitorProfileMetrics_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics_STATUS instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetrics_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetrics_STATUSGenerator != nil { + return managedClusterAzureMonitorProfileMetrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + managedClusterAzureMonitorProfileMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + managedClusterAzureMonitorProfileMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS{}), generators) + + return managedClusterAzureMonitorProfileMetrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator()) +} + +func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterIdentity_UserAssignedIdentities_STATUS to ManagedClusterIdentity_UserAssignedIdentities_STATUS via AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS & AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS, ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS tests if a specific instance of ManagedClusterIdentity_UserAssignedIdentities_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterIdentity_UserAssignedIdentities_STATUS(subject ManagedClusterIdentity_UserAssignedIdentities_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterIdentity_UserAssignedIdentities_STATUS + err := copied.AssignProperties_To_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterIdentity_UserAssignedIdentities_STATUS + err = actual.AssignProperties_From_ManagedClusterIdentity_UserAssignedIdentities_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_UserAssignedIdentities_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS, ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS runs a test to see if a specific instance of ManagedClusterIdentity_UserAssignedIdentities_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS(subject ManagedClusterIdentity_UserAssignedIdentities_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_UserAssignedIdentities_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS instances for property testing - lazily +// instantiated by ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator() +var managedClusterIdentity_UserAssignedIdentities_STATUSGenerator gopter.Gen + +// ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator returns a generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS instances for property testing. +func ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator() gopter.Gen { + if managedClusterIdentity_UserAssignedIdentities_STATUSGenerator != nil { + return managedClusterIdentity_UserAssignedIdentities_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS(generators) + managedClusterIdentity_UserAssignedIdentities_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_UserAssignedIdentities_STATUS{}), generators) + + return managedClusterIdentity_UserAssignedIdentities_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile to ManagedClusterLoadBalancerProfile via AssignProperties_To_ManagedClusterLoadBalancerProfile & AssignProperties_From_ManagedClusterLoadBalancerProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile, ManagedClusterLoadBalancerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile tests if a specific instance of ManagedClusterLoadBalancerProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile(subject ManagedClusterLoadBalancerProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile, ManagedClusterLoadBalancerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile(subject ManagedClusterLoadBalancerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfileGenerator() +var managedClusterLoadBalancerProfileGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfileGenerator returns a generator of ManagedClusterLoadBalancerProfile instances for property testing. +// We first initialize managedClusterLoadBalancerProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfileGenerator() gopter.Gen { + if managedClusterLoadBalancerProfileGenerator != nil { + return managedClusterLoadBalancerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + managedClusterLoadBalancerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + managedClusterLoadBalancerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile{}), generators) + + return managedClusterLoadBalancerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIP, ManagedClusterLoadBalancerProfile_BackendPoolType_NodeIPConfiguration)) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReferenceGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPsGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_STATUS to ManagedClusterLoadBalancerProfile_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS, ManagedClusterLoadBalancerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_STATUS(subject ManagedClusterLoadBalancerProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS, ManagedClusterLoadBalancerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS(subject ManagedClusterLoadBalancerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_STATUSGenerator() +var managedClusterLoadBalancerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_STATUS instances for property testing. +// We first initialize managedClusterLoadBalancerProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfile_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + managedClusterLoadBalancerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + managedClusterLoadBalancerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.OneConstOf(ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIP, ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS_NodeIPConfiguration)) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterNATGatewayProfile to ManagedClusterNATGatewayProfile via AssignProperties_To_ManagedClusterNATGatewayProfile & AssignProperties_From_ManagedClusterNATGatewayProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterNATGatewayProfile, ManagedClusterNATGatewayProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterNATGatewayProfile tests if a specific instance of ManagedClusterNATGatewayProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterNATGatewayProfile(subject ManagedClusterNATGatewayProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterNATGatewayProfile + err := copied.AssignProperties_To_ManagedClusterNATGatewayProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterNATGatewayProfile + err = actual.AssignProperties_From_ManagedClusterNATGatewayProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterNATGatewayProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile, ManagedClusterNATGatewayProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile runs a test to see if a specific instance of ManagedClusterNATGatewayProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile(subject ManagedClusterNATGatewayProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfileGenerator() +var managedClusterNATGatewayProfileGenerator gopter.Gen + +// ManagedClusterNATGatewayProfileGenerator returns a generator of ManagedClusterNATGatewayProfile instances for property testing. +// We first initialize managedClusterNATGatewayProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfileGenerator() gopter.Gen { + if managedClusterNATGatewayProfileGenerator != nil { + return managedClusterNATGatewayProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + managedClusterNATGatewayProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + managedClusterNATGatewayProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile{}), generators) + + return managedClusterNATGatewayProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReferenceGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfileGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterNATGatewayProfile_STATUS to ManagedClusterNATGatewayProfile_STATUS via AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS & AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS, ManagedClusterNATGatewayProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS tests if a specific instance of ManagedClusterNATGatewayProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterNATGatewayProfile_STATUS(subject ManagedClusterNATGatewayProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterNATGatewayProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterNATGatewayProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterNATGatewayProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterNATGatewayProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterNATGatewayProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS, ManagedClusterNATGatewayProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS runs a test to see if a specific instance of ManagedClusterNATGatewayProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS(subject ManagedClusterNATGatewayProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfile_STATUSGenerator() +var managedClusterNATGatewayProfile_STATUSGenerator gopter.Gen + +// ManagedClusterNATGatewayProfile_STATUSGenerator returns a generator of ManagedClusterNATGatewayProfile_STATUS instances for property testing. +// We first initialize managedClusterNATGatewayProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfile_STATUSGenerator() gopter.Gen { + if managedClusterNATGatewayProfile_STATUSGenerator != nil { + return managedClusterNATGatewayProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + managedClusterNATGatewayProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + managedClusterNATGatewayProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS{}), generators) + + return managedClusterNATGatewayProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator()) +} + +func Test_ManagedClusterOperatorConfigMaps_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOperatorConfigMaps to ManagedClusterOperatorConfigMaps via AssignProperties_To_ManagedClusterOperatorConfigMaps & AssignProperties_From_ManagedClusterOperatorConfigMaps returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps tests if a specific instance of ManagedClusterOperatorConfigMaps can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorConfigMaps + err := copied.AssignProperties_To_ManagedClusterOperatorConfigMaps(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorConfigMaps + err = actual.AssignProperties_From_ManagedClusterOperatorConfigMaps(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorConfigMaps + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by +// ManagedClusterOperatorConfigMapsGenerator() +var managedClusterOperatorConfigMapsGenerator gopter.Gen + +// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing. +func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen { + if managedClusterOperatorConfigMapsGenerator != nil { + return managedClusterOperatorConfigMapsGenerator + } + + generators := make(map[string]gopter.Gen) + managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators) + + return managedClusterOperatorConfigMapsGenerator +} + +func Test_ManagedClusterOperatorSecrets_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterOperatorSecrets to ManagedClusterOperatorSecrets via AssignProperties_To_ManagedClusterOperatorSecrets & AssignProperties_From_ManagedClusterOperatorSecrets returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterOperatorSecrets tests if a specific instance of ManagedClusterOperatorSecrets can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterOperatorSecrets + err := copied.AssignProperties_To_ManagedClusterOperatorSecrets(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterOperatorSecrets + err = actual.AssignProperties_From_ManagedClusterOperatorSecrets(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterOperatorSecrets_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorSecrets via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorSecrets runs a test to see if a specific instance of ManagedClusterOperatorSecrets round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorSecrets + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorSecrets instances for property testing - lazily instantiated by +// ManagedClusterOperatorSecretsGenerator() +var managedClusterOperatorSecretsGenerator gopter.Gen + +// ManagedClusterOperatorSecretsGenerator returns a generator of ManagedClusterOperatorSecrets instances for property testing. +func ManagedClusterOperatorSecretsGenerator() gopter.Gen { + if managedClusterOperatorSecretsGenerator != nil { + return managedClusterOperatorSecretsGenerator + } + + generators := make(map[string]gopter.Gen) + managedClusterOperatorSecretsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorSecrets{}), generators) + + return managedClusterOperatorSecretsGenerator +} + +func Test_ManagedClusterPodIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity to ManagedClusterPodIdentity via AssignProperties_To_ManagedClusterPodIdentity & AssignProperties_From_ManagedClusterPodIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity, ManagedClusterPodIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity tests if a specific instance of ManagedClusterPodIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity(subject ManagedClusterPodIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity + err := copied.AssignProperties_To_ManagedClusterPodIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity + err = actual.AssignProperties_From_ManagedClusterPodIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity, ManagedClusterPodIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity runs a test to see if a specific instance of ManagedClusterPodIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity(subject ManagedClusterPodIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityGenerator() +var managedClusterPodIdentityGenerator gopter.Gen + +// ManagedClusterPodIdentityGenerator returns a generator of ManagedClusterPodIdentity instances for property testing. +// We first initialize managedClusterPodIdentityGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityGenerator() gopter.Gen { + if managedClusterPodIdentityGenerator != nil { + return managedClusterPodIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(generators) + managedClusterPodIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity(generators) + managedClusterPodIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity{}), generators) + + return managedClusterPodIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentityGenerator()) +} + +func Test_ManagedClusterPodIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity_STATUS to ManagedClusterPodIdentity_STATUS via AssignProperties_To_ManagedClusterPodIdentity_STATUS & AssignProperties_From_ManagedClusterPodIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS, ManagedClusterPodIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS tests if a specific instance of ManagedClusterPodIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity_STATUS(subject ManagedClusterPodIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_STATUS, ManagedClusterPodIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_STATUS(subject ManagedClusterPodIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentity_STATUSGenerator() +var managedClusterPodIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentity_STATUSGenerator returns a generator of ManagedClusterPodIdentity_STATUS instances for property testing. +// We first initialize managedClusterPodIdentity_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentity_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentity_STATUSGenerator != nil { + return managedClusterPodIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + managedClusterPodIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + managedClusterPodIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS{}), generators) + + return managedClusterPodIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + ManagedClusterPodIdentity_ProvisioningState_STATUS_Assigned, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Canceled, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Deleting, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Failed, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Succeeded, + ManagedClusterPodIdentity_ProvisioningState_STATUS_Updating)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUSGenerator()) + gens["ProvisioningInfo"] = gen.PtrOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator()) +} + +func Test_ManagedClusterPodIdentityException_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityException to ManagedClusterPodIdentityException via AssignProperties_To_ManagedClusterPodIdentityException & AssignProperties_From_ManagedClusterPodIdentityException returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityException, ManagedClusterPodIdentityExceptionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityException tests if a specific instance of ManagedClusterPodIdentityException can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityException(subject ManagedClusterPodIdentityException) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityException + err := copied.AssignProperties_To_ManagedClusterPodIdentityException(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityException + err = actual.AssignProperties_From_ManagedClusterPodIdentityException(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityException_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException, ManagedClusterPodIdentityExceptionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException runs a test to see if a specific instance of ManagedClusterPodIdentityException round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException(subject ManagedClusterPodIdentityException) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityExceptionGenerator() +var managedClusterPodIdentityExceptionGenerator gopter.Gen + +// ManagedClusterPodIdentityExceptionGenerator returns a generator of ManagedClusterPodIdentityException instances for property testing. +func ManagedClusterPodIdentityExceptionGenerator() gopter.Gen { + if managedClusterPodIdentityExceptionGenerator != nil { + return managedClusterPodIdentityExceptionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException(generators) + managedClusterPodIdentityExceptionGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException{}), generators) + + return managedClusterPodIdentityExceptionGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityException_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityException_STATUS to ManagedClusterPodIdentityException_STATUS via AssignProperties_To_ManagedClusterPodIdentityException_STATUS & AssignProperties_From_ManagedClusterPodIdentityException_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS, ManagedClusterPodIdentityException_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS tests if a specific instance of ManagedClusterPodIdentityException_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityException_STATUS(subject ManagedClusterPodIdentityException_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityException_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityException_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityException_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityException_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityException_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS, ManagedClusterPodIdentityException_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityException_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS(subject ManagedClusterPodIdentityException_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityException_STATUSGenerator() +var managedClusterPodIdentityException_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityException_STATUSGenerator returns a generator of ManagedClusterPodIdentityException_STATUS instances for property testing. +func ManagedClusterPodIdentityException_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityException_STATUSGenerator != nil { + return managedClusterPodIdentityException_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS(generators) + managedClusterPodIdentityException_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException_STATUS{}), generators) + + return managedClusterPodIdentityException_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfileDefender_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefender to ManagedClusterSecurityProfileDefender via AssignProperties_To_ManagedClusterSecurityProfileDefender & AssignProperties_From_ManagedClusterSecurityProfileDefender returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender, ManagedClusterSecurityProfileDefenderGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender tests if a specific instance of ManagedClusterSecurityProfileDefender can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender(subject ManagedClusterSecurityProfileDefender) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefender + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefender(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefender + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefender(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileDefender_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender, ManagedClusterSecurityProfileDefenderGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender(subject ManagedClusterSecurityProfileDefender) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefenderGenerator() +var managedClusterSecurityProfileDefenderGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderGenerator returns a generator of ManagedClusterSecurityProfileDefender instances for property testing. +func ManagedClusterSecurityProfileDefenderGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderGenerator != nil { + return managedClusterSecurityProfileDefenderGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender(generators) + managedClusterSecurityProfileDefenderGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender{}), generators) + + return managedClusterSecurityProfileDefenderGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator()) +} + +func Test_ManagedClusterSecurityProfileDefender_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefender_STATUS to ManagedClusterSecurityProfileDefender_STATUS via AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS & AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS, ManagedClusterSecurityProfileDefender_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS tests if a specific instance of ManagedClusterSecurityProfileDefender_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefender_STATUS(subject ManagedClusterSecurityProfileDefender_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefender_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefender_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefender_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefender_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileDefender_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS, ManagedClusterSecurityProfileDefender_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS(subject ManagedClusterSecurityProfileDefender_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefender_STATUSGenerator() +var managedClusterSecurityProfileDefender_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefender_STATUSGenerator returns a generator of ManagedClusterSecurityProfileDefender_STATUS instances for property testing. +// We first initialize managedClusterSecurityProfileDefender_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterSecurityProfileDefender_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileDefender_STATUSGenerator != nil { + return managedClusterSecurityProfileDefender_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + managedClusterSecurityProfileDefender_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + managedClusterSecurityProfileDefender_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS{}), generators) + + return managedClusterSecurityProfileDefender_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(gens map[string]gopter.Gen) { + gens["LogAnalyticsWorkspaceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileImageCleaner to ManagedClusterSecurityProfileImageCleaner via AssignProperties_To_ManagedClusterSecurityProfileImageCleaner & AssignProperties_From_ManagedClusterSecurityProfileImageCleaner returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner, ManagedClusterSecurityProfileImageCleanerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner tests if a specific instance of ManagedClusterSecurityProfileImageCleaner can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner(subject ManagedClusterSecurityProfileImageCleaner) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileImageCleaner + err := copied.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileImageCleaner + err = actual.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileImageCleaner_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner, ManagedClusterSecurityProfileImageCleanerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner(subject ManagedClusterSecurityProfileImageCleaner) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileImageCleanerGenerator() +var managedClusterSecurityProfileImageCleanerGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleanerGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner instances for property testing. +func ManagedClusterSecurityProfileImageCleanerGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleanerGenerator != nil { + return managedClusterSecurityProfileImageCleanerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner(generators) + managedClusterSecurityProfileImageCleanerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner{}), generators) + + return managedClusterSecurityProfileImageCleanerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileImageCleaner_STATUS to ManagedClusterSecurityProfileImageCleaner_STATUS via AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS & AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS, ManagedClusterSecurityProfileImageCleaner_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS tests if a specific instance of ManagedClusterSecurityProfileImageCleaner_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileImageCleaner_STATUS(subject ManagedClusterSecurityProfileImageCleaner_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileImageCleaner_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileImageCleaner_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileImageCleaner_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileImageCleaner_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS, ManagedClusterSecurityProfileImageCleaner_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS(subject ManagedClusterSecurityProfileImageCleaner_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileImageCleaner_STATUSGenerator() +var managedClusterSecurityProfileImageCleaner_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleaner_STATUSGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner_STATUS instances for property testing. +func ManagedClusterSecurityProfileImageCleaner_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleaner_STATUSGenerator != nil { + return managedClusterSecurityProfileImageCleaner_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS(generators) + managedClusterSecurityProfileImageCleaner_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner_STATUS{}), generators) + + return managedClusterSecurityProfileImageCleaner_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileWorkloadIdentity to ManagedClusterSecurityProfileWorkloadIdentity via AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity & AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity, ManagedClusterSecurityProfileWorkloadIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity tests if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity(subject ManagedClusterSecurityProfileWorkloadIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileWorkloadIdentity + err := copied.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileWorkloadIdentity + err = actual.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity, ManagedClusterSecurityProfileWorkloadIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity(subject ManagedClusterSecurityProfileWorkloadIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileWorkloadIdentityGenerator() +var managedClusterSecurityProfileWorkloadIdentityGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentityGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentityGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentityGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity(generators) + managedClusterSecurityProfileWorkloadIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity{}), generators) + + return managedClusterSecurityProfileWorkloadIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileWorkloadIdentity_STATUS to ManagedClusterSecurityProfileWorkloadIdentity_STATUS via AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS & AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS, ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS tests if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS(subject ManagedClusterSecurityProfileWorkloadIdentity_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileWorkloadIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS, ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS(subject ManagedClusterSecurityProfileWorkloadIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator() +var managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS(generators) + managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUS{}), generators) + + return managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileBlobCSIDriver to ManagedClusterStorageProfileBlobCSIDriver via AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver & AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver, ManagedClusterStorageProfileBlobCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver tests if a specific instance of ManagedClusterStorageProfileBlobCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver(subject ManagedClusterStorageProfileBlobCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileBlobCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileBlobCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver, ManagedClusterStorageProfileBlobCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver(subject ManagedClusterStorageProfileBlobCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileBlobCSIDriverGenerator() +var managedClusterStorageProfileBlobCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriverGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriverGenerator != nil { + return managedClusterStorageProfileBlobCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver(generators) + managedClusterStorageProfileBlobCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver{}), generators) + + return managedClusterStorageProfileBlobCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileBlobCSIDriver_STATUS to ManagedClusterStorageProfileBlobCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS, ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileBlobCSIDriver_STATUS(subject ManagedClusterStorageProfileBlobCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileBlobCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileBlobCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileBlobCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS, ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS(subject ManagedClusterStorageProfileBlobCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator() +var managedClusterStorageProfileBlobCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileBlobCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS(generators) + managedClusterStorageProfileBlobCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileBlobCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileDiskCSIDriver to ManagedClusterStorageProfileDiskCSIDriver via AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver & AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver, ManagedClusterStorageProfileDiskCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver tests if a specific instance of ManagedClusterStorageProfileDiskCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver(subject ManagedClusterStorageProfileDiskCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileDiskCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileDiskCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver, ManagedClusterStorageProfileDiskCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver(subject ManagedClusterStorageProfileDiskCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileDiskCSIDriverGenerator() +var managedClusterStorageProfileDiskCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriverGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriverGenerator != nil { + return managedClusterStorageProfileDiskCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver(generators) + managedClusterStorageProfileDiskCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver{}), generators) + + return managedClusterStorageProfileDiskCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileDiskCSIDriver_STATUS to ManagedClusterStorageProfileDiskCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS, ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileDiskCSIDriver_STATUS(subject ManagedClusterStorageProfileDiskCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileDiskCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileDiskCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileDiskCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS, ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS(subject ManagedClusterStorageProfileDiskCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator() +var managedClusterStorageProfileDiskCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileDiskCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS(generators) + managedClusterStorageProfileDiskCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileDiskCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileFileCSIDriver to ManagedClusterStorageProfileFileCSIDriver via AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver & AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver, ManagedClusterStorageProfileFileCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver tests if a specific instance of ManagedClusterStorageProfileFileCSIDriver can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver(subject ManagedClusterStorageProfileFileCSIDriver) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileFileCSIDriver + err := copied.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileFileCSIDriver + err = actual.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver, ManagedClusterStorageProfileFileCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver(subject ManagedClusterStorageProfileFileCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileFileCSIDriverGenerator() +var managedClusterStorageProfileFileCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriverGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver instances for property testing. +func ManagedClusterStorageProfileFileCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriverGenerator != nil { + return managedClusterStorageProfileFileCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver(generators) + managedClusterStorageProfileFileCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver{}), generators) + + return managedClusterStorageProfileFileCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileFileCSIDriver_STATUS to ManagedClusterStorageProfileFileCSIDriver_STATUS via AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS & AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS, ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS tests if a specific instance of ManagedClusterStorageProfileFileCSIDriver_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileFileCSIDriver_STATUS(subject ManagedClusterStorageProfileFileCSIDriver_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileFileCSIDriver_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileFileCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileFileCSIDriver_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileFileCSIDriver_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS, ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS(subject ManagedClusterStorageProfileFileCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator() +var managedClusterStorageProfileFileCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileFileCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS(generators) + managedClusterStorageProfileFileCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileFileCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileSnapshotController to ManagedClusterStorageProfileSnapshotController via AssignProperties_To_ManagedClusterStorageProfileSnapshotController & AssignProperties_From_ManagedClusterStorageProfileSnapshotController returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController, ManagedClusterStorageProfileSnapshotControllerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController tests if a specific instance of ManagedClusterStorageProfileSnapshotController can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController(subject ManagedClusterStorageProfileSnapshotController) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileSnapshotController + err := copied.AssignProperties_To_ManagedClusterStorageProfileSnapshotController(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileSnapshotController + err = actual.AssignProperties_From_ManagedClusterStorageProfileSnapshotController(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileSnapshotController_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController, ManagedClusterStorageProfileSnapshotControllerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController(subject ManagedClusterStorageProfileSnapshotController) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileSnapshotControllerGenerator() +var managedClusterStorageProfileSnapshotControllerGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotControllerGenerator returns a generator of ManagedClusterStorageProfileSnapshotController instances for property testing. +func ManagedClusterStorageProfileSnapshotControllerGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotControllerGenerator != nil { + return managedClusterStorageProfileSnapshotControllerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController(generators) + managedClusterStorageProfileSnapshotControllerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController{}), generators) + + return managedClusterStorageProfileSnapshotControllerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterStorageProfileSnapshotController_STATUS to ManagedClusterStorageProfileSnapshotController_STATUS via AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS & AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS, ManagedClusterStorageProfileSnapshotController_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS tests if a specific instance of ManagedClusterStorageProfileSnapshotController_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterStorageProfileSnapshotController_STATUS(subject ManagedClusterStorageProfileSnapshotController_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterStorageProfileSnapshotController_STATUS + err := copied.AssignProperties_To_ManagedClusterStorageProfileSnapshotController_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterStorageProfileSnapshotController_STATUS + err = actual.AssignProperties_From_ManagedClusterStorageProfileSnapshotController_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterStorageProfileSnapshotController_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS, ManagedClusterStorageProfileSnapshotController_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS(subject ManagedClusterStorageProfileSnapshotController_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController_STATUS instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileSnapshotController_STATUSGenerator() +var managedClusterStorageProfileSnapshotController_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotController_STATUSGenerator returns a generator of ManagedClusterStorageProfileSnapshotController_STATUS instances for property testing. +func ManagedClusterStorageProfileSnapshotController_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotController_STATUSGenerator != nil { + return managedClusterStorageProfileSnapshotController_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS(generators) + managedClusterStorageProfileSnapshotController_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController_STATUS{}), generators) + + return managedClusterStorageProfileSnapshotController_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileKeda to ManagedClusterWorkloadAutoScalerProfileKeda via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda, ManagedClusterWorkloadAutoScalerProfileKedaGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda(subject ManagedClusterWorkloadAutoScalerProfileKeda) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileKeda + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda, ManagedClusterWorkloadAutoScalerProfileKedaGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda(subject ManagedClusterWorkloadAutoScalerProfileKeda) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfileKedaGenerator() +var managedClusterWorkloadAutoScalerProfileKedaGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKedaGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKedaGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKedaGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKedaGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda(generators) + managedClusterWorkloadAutoScalerProfileKedaGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda{}), generators) + + return managedClusterWorkloadAutoScalerProfileKedaGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileKeda_STATUS to ManagedClusterWorkloadAutoScalerProfileKeda_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS, ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(subject ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS, ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(subject ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS instances for property testing - lazily instantiated +// by ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(generators) + managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing - lazily +// instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS to ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS & AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS tests if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err := copied.AssignProperties_To_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = actual.AssignProperties_From_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing - +// lazily instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_UpgradeOverrideSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings to UpgradeOverrideSettings via AssignProperties_To_UpgradeOverrideSettings & AssignProperties_From_UpgradeOverrideSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings tests if a specific instance of UpgradeOverrideSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UpgradeOverrideSettings + err := copied.AssignProperties_To_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings + err = actual.AssignProperties_From_UpgradeOverrideSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UpgradeOverrideSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings runs a test to see if a specific instance of UpgradeOverrideSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings instances for property testing - lazily instantiated by +// UpgradeOverrideSettingsGenerator() +var upgradeOverrideSettingsGenerator gopter.Gen + +// UpgradeOverrideSettingsGenerator returns a generator of UpgradeOverrideSettings instances for property testing. +func UpgradeOverrideSettingsGenerator() gopter.Gen { + if upgradeOverrideSettingsGenerator != nil { + return upgradeOverrideSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(generators) + upgradeOverrideSettingsGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings{}), generators) + + return upgradeOverrideSettingsGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UpgradeOverrideSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UpgradeOverrideSettings_STATUS to UpgradeOverrideSettings_STATUS via AssignProperties_To_UpgradeOverrideSettings_STATUS & AssignProperties_From_UpgradeOverrideSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS tests if a specific instance of UpgradeOverrideSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UpgradeOverrideSettings_STATUS + err := copied.AssignProperties_To_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UpgradeOverrideSettings_STATUS + err = actual.AssignProperties_From_UpgradeOverrideSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UpgradeOverrideSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings_STATUS runs a test to see if a specific instance of UpgradeOverrideSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings_STATUS instances for property testing - lazily instantiated by +// UpgradeOverrideSettings_STATUSGenerator() +var upgradeOverrideSettings_STATUSGenerator gopter.Gen + +// UpgradeOverrideSettings_STATUSGenerator returns a generator of UpgradeOverrideSettings_STATUS instances for property testing. +func UpgradeOverrideSettings_STATUSGenerator() gopter.Gen { + if upgradeOverrideSettings_STATUSGenerator != nil { + return upgradeOverrideSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(generators) + upgradeOverrideSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings_STATUS{}), generators) + + return upgradeOverrideSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentityDetails_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentityDetails to UserAssignedIdentityDetails via AssignProperties_To_UserAssignedIdentityDetails & AssignProperties_From_UserAssignedIdentityDetails returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentityDetails tests if a specific instance of UserAssignedIdentityDetails can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.UserAssignedIdentityDetails + err := copied.AssignProperties_To_UserAssignedIdentityDetails(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentityDetails + err = actual.AssignProperties_From_UserAssignedIdentityDetails(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_UserAssignedIdentityDetails_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails runs a test to see if a specific instance of UserAssignedIdentityDetails round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentityDetails instances for property testing - lazily instantiated by +// UserAssignedIdentityDetailsGenerator() +var userAssignedIdentityDetailsGenerator gopter.Gen + +// UserAssignedIdentityDetailsGenerator returns a generator of UserAssignedIdentityDetails instances for property testing. +func UserAssignedIdentityDetailsGenerator() gopter.Gen { + if userAssignedIdentityDetailsGenerator != nil { + return userAssignedIdentityDetailsGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetailsGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails{}), generators) + + return userAssignedIdentityDetailsGenerator +} + +func Test_WindowsGmsaProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from WindowsGmsaProfile to WindowsGmsaProfile via AssignProperties_To_WindowsGmsaProfile & AssignProperties_From_WindowsGmsaProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForWindowsGmsaProfile, WindowsGmsaProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForWindowsGmsaProfile tests if a specific instance of WindowsGmsaProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForWindowsGmsaProfile(subject WindowsGmsaProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.WindowsGmsaProfile + err := copied.AssignProperties_To_WindowsGmsaProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual WindowsGmsaProfile + err = actual.AssignProperties_From_WindowsGmsaProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_WindowsGmsaProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile, WindowsGmsaProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile runs a test to see if a specific instance of WindowsGmsaProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile(subject WindowsGmsaProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile instances for property testing - lazily instantiated by WindowsGmsaProfileGenerator() +var windowsGmsaProfileGenerator gopter.Gen + +// WindowsGmsaProfileGenerator returns a generator of WindowsGmsaProfile instances for property testing. +func WindowsGmsaProfileGenerator() gopter.Gen { + if windowsGmsaProfileGenerator != nil { + return windowsGmsaProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile(generators) + windowsGmsaProfileGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile{}), generators) + + return windowsGmsaProfileGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_WindowsGmsaProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from WindowsGmsaProfile_STATUS to WindowsGmsaProfile_STATUS via AssignProperties_To_WindowsGmsaProfile_STATUS & AssignProperties_From_WindowsGmsaProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS, WindowsGmsaProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS tests if a specific instance of WindowsGmsaProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForWindowsGmsaProfile_STATUS(subject WindowsGmsaProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.WindowsGmsaProfile_STATUS + err := copied.AssignProperties_To_WindowsGmsaProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual WindowsGmsaProfile_STATUS + err = actual.AssignProperties_From_WindowsGmsaProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_WindowsGmsaProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile_STATUS, WindowsGmsaProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile_STATUS runs a test to see if a specific instance of WindowsGmsaProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile_STATUS(subject WindowsGmsaProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile_STATUS instances for property testing - lazily instantiated by +// WindowsGmsaProfile_STATUSGenerator() +var windowsGmsaProfile_STATUSGenerator gopter.Gen + +// WindowsGmsaProfile_STATUSGenerator returns a generator of WindowsGmsaProfile_STATUS instances for property testing. +func WindowsGmsaProfile_STATUSGenerator() gopter.Gen { + if windowsGmsaProfile_STATUSGenerator != nil { + return windowsGmsaProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS(generators) + windowsGmsaProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile_STATUS{}), generators) + + return windowsGmsaProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshPublicKey to ContainerServiceSshPublicKey via AssignProperties_To_ContainerServiceSshPublicKey & AssignProperties_From_ContainerServiceSshPublicKey returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshPublicKey, ContainerServiceSshPublicKeyGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshPublicKey tests if a specific instance of ContainerServiceSshPublicKey can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshPublicKey(subject ContainerServiceSshPublicKey) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshPublicKey + err := copied.AssignProperties_To_ContainerServiceSshPublicKey(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshPublicKey + err = actual.AssignProperties_From_ContainerServiceSshPublicKey(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceSshPublicKey_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey, ContainerServiceSshPublicKeyGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey runs a test to see if a specific instance of ContainerServiceSshPublicKey round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey(subject ContainerServiceSshPublicKey) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKeyGenerator() +var containerServiceSshPublicKeyGenerator gopter.Gen + +// ContainerServiceSshPublicKeyGenerator returns a generator of ContainerServiceSshPublicKey instances for property testing. +func ContainerServiceSshPublicKeyGenerator() gopter.Gen { + if containerServiceSshPublicKeyGenerator != nil { + return containerServiceSshPublicKeyGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(generators) + containerServiceSshPublicKeyGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey{}), generators) + + return containerServiceSshPublicKeyGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ContainerServiceSshPublicKey_STATUS to ContainerServiceSshPublicKey_STATUS via AssignProperties_To_ContainerServiceSshPublicKey_STATUS & AssignProperties_From_ContainerServiceSshPublicKey_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS, ContainerServiceSshPublicKey_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS tests if a specific instance of ContainerServiceSshPublicKey_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForContainerServiceSshPublicKey_STATUS(subject ContainerServiceSshPublicKey_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ContainerServiceSshPublicKey_STATUS + err := copied.AssignProperties_To_ContainerServiceSshPublicKey_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ContainerServiceSshPublicKey_STATUS + err = actual.AssignProperties_From_ContainerServiceSshPublicKey_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ContainerServiceSshPublicKey_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS, ContainerServiceSshPublicKey_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS runs a test to see if a specific instance of ContainerServiceSshPublicKey_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS(subject ContainerServiceSshPublicKey_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey_STATUS instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKey_STATUSGenerator() +var containerServiceSshPublicKey_STATUSGenerator gopter.Gen + +// ContainerServiceSshPublicKey_STATUSGenerator returns a generator of ContainerServiceSshPublicKey_STATUS instances for property testing. +func ContainerServiceSshPublicKey_STATUSGenerator() gopter.Gen { + if containerServiceSshPublicKey_STATUSGenerator != nil { + return containerServiceSshPublicKey_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(generators) + containerServiceSshPublicKey_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey_STATUS{}), generators) + + return containerServiceSshPublicKey_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioCertificateAuthority_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioCertificateAuthority to IstioCertificateAuthority via AssignProperties_To_IstioCertificateAuthority & AssignProperties_From_IstioCertificateAuthority returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioCertificateAuthority, IstioCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioCertificateAuthority tests if a specific instance of IstioCertificateAuthority can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioCertificateAuthority(subject IstioCertificateAuthority) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioCertificateAuthority + err := copied.AssignProperties_To_IstioCertificateAuthority(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioCertificateAuthority + err = actual.AssignProperties_From_IstioCertificateAuthority(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioCertificateAuthority_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority, IstioCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority runs a test to see if a specific instance of IstioCertificateAuthority round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority(subject IstioCertificateAuthority) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority instances for property testing - lazily instantiated by +// IstioCertificateAuthorityGenerator() +var istioCertificateAuthorityGenerator gopter.Gen + +// IstioCertificateAuthorityGenerator returns a generator of IstioCertificateAuthority instances for property testing. +func IstioCertificateAuthorityGenerator() gopter.Gen { + if istioCertificateAuthorityGenerator != nil { + return istioCertificateAuthorityGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority(generators) + istioCertificateAuthorityGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority{}), generators) + + return istioCertificateAuthorityGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthorityGenerator()) +} + +func Test_IstioCertificateAuthority_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioCertificateAuthority_STATUS to IstioCertificateAuthority_STATUS via AssignProperties_To_IstioCertificateAuthority_STATUS & AssignProperties_From_IstioCertificateAuthority_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioCertificateAuthority_STATUS, IstioCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioCertificateAuthority_STATUS tests if a specific instance of IstioCertificateAuthority_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioCertificateAuthority_STATUS(subject IstioCertificateAuthority_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioCertificateAuthority_STATUS + err := copied.AssignProperties_To_IstioCertificateAuthority_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioCertificateAuthority_STATUS + err = actual.AssignProperties_From_IstioCertificateAuthority_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioCertificateAuthority_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority_STATUS, IstioCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority_STATUS runs a test to see if a specific instance of IstioCertificateAuthority_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority_STATUS(subject IstioCertificateAuthority_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority_STATUS instances for property testing - lazily instantiated by +// IstioCertificateAuthority_STATUSGenerator() +var istioCertificateAuthority_STATUSGenerator gopter.Gen + +// IstioCertificateAuthority_STATUSGenerator returns a generator of IstioCertificateAuthority_STATUS instances for property testing. +func IstioCertificateAuthority_STATUSGenerator() gopter.Gen { + if istioCertificateAuthority_STATUSGenerator != nil { + return istioCertificateAuthority_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS(generators) + istioCertificateAuthority_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority_STATUS{}), generators) + + return istioCertificateAuthority_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthority_STATUSGenerator()) +} + +func Test_IstioComponents_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents to IstioComponents via AssignProperties_To_IstioComponents & AssignProperties_From_IstioComponents returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents tests if a specific instance of IstioComponents can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioComponents(subject IstioComponents) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioComponents + err := copied.AssignProperties_To_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents + err = actual.AssignProperties_From_IstioComponents(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioComponents_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents runs a test to see if a specific instance of IstioComponents round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents(subject IstioComponents) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents instances for property testing - lazily instantiated by IstioComponentsGenerator() +var istioComponentsGenerator gopter.Gen + +// IstioComponentsGenerator returns a generator of IstioComponents instances for property testing. +func IstioComponentsGenerator() gopter.Gen { + if istioComponentsGenerator != nil { + return istioComponentsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents(generators) + istioComponentsGenerator = gen.Struct(reflect.TypeOf(IstioComponents{}), generators) + + return istioComponentsGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGatewayGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGatewayGenerator()) +} + +func Test_IstioComponents_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioComponents_STATUS to IstioComponents_STATUS via AssignProperties_To_IstioComponents_STATUS & AssignProperties_From_IstioComponents_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioComponents_STATUS tests if a specific instance of IstioComponents_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioComponents_STATUS + err := copied.AssignProperties_To_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioComponents_STATUS + err = actual.AssignProperties_From_IstioComponents_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioComponents_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents_STATUS runs a test to see if a specific instance of IstioComponents_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents_STATUS instances for property testing - lazily instantiated by +// IstioComponents_STATUSGenerator() +var istioComponents_STATUSGenerator gopter.Gen + +// IstioComponents_STATUSGenerator returns a generator of IstioComponents_STATUS instances for property testing. +func IstioComponents_STATUSGenerator() gopter.Gen { + if istioComponents_STATUSGenerator != nil { + return istioComponents_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents_STATUS(generators) + istioComponents_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioComponents_STATUS{}), generators) + + return istioComponents_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents_STATUS(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGateway_STATUSGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGateway_STATUSGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileKubeStateMetrics to ManagedClusterAzureMonitorProfileKubeStateMetrics via AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics & AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics, ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics tests if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics(subject ManagedClusterAzureMonitorProfileKubeStateMetrics) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics, ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics(subject ManagedClusterAzureMonitorProfileKubeStateMetrics) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics instances for property testing - lazily instantiated +// by ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator() +var managedClusterAzureMonitorProfileKubeStateMetricsGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetricsGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetricsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics(generators) + managedClusterAzureMonitorProfileKubeStateMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetricsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS to ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS via AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS & AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS, ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS tests if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err := copied.AssignProperties_To_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err = actual.AssignProperties_From_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS, ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS instances for property testing - lazily +// instantiated by ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator() +var managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(generators) + managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_ManagedOutboundIPs to ManagedClusterLoadBalancerProfile_ManagedOutboundIPs via AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs & AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs, ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs tests if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs, ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS to ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPPrefixes to ManagedClusterLoadBalancerProfile_OutboundIPPrefixes via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes, ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes, ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReferenceGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS to ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReference_STATUSGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPs to ManagedClusterLoadBalancerProfile_OutboundIPs via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs, ManagedClusterLoadBalancerProfile_OutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs(subject ManagedClusterLoadBalancerProfile_OutboundIPs) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPs + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs, ManagedClusterLoadBalancerProfile_OutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs(subject ManagedClusterLoadBalancerProfile_OutboundIPs) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_OutboundIPsGenerator() +var managedClusterLoadBalancerProfile_OutboundIPsGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPsGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPsGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPsGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs(generators) + managedClusterLoadBalancerProfile_OutboundIPsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPsGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReferenceGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS to ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS via AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS & AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS tests if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err := copied.AssignProperties_To_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err = actual.AssignProperties_From_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator() +var managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(generators) + managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterManagedOutboundIPProfile to ManagedClusterManagedOutboundIPProfile via AssignProperties_To_ManagedClusterManagedOutboundIPProfile & AssignProperties_From_ManagedClusterManagedOutboundIPProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile, ManagedClusterManagedOutboundIPProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile tests if a specific instance of ManagedClusterManagedOutboundIPProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile(subject ManagedClusterManagedOutboundIPProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterManagedOutboundIPProfile + err := copied.AssignProperties_To_ManagedClusterManagedOutboundIPProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterManagedOutboundIPProfile + err = actual.AssignProperties_From_ManagedClusterManagedOutboundIPProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterManagedOutboundIPProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile, ManagedClusterManagedOutboundIPProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile(subject ManagedClusterManagedOutboundIPProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile instances for property testing - lazily instantiated by +// ManagedClusterManagedOutboundIPProfileGenerator() +var managedClusterManagedOutboundIPProfileGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfileGenerator returns a generator of ManagedClusterManagedOutboundIPProfile instances for property testing. +func ManagedClusterManagedOutboundIPProfileGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfileGenerator != nil { + return managedClusterManagedOutboundIPProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile(generators) + managedClusterManagedOutboundIPProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile{}), generators) + + return managedClusterManagedOutboundIPProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterManagedOutboundIPProfile_STATUS to ManagedClusterManagedOutboundIPProfile_STATUS via AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS & AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS, ManagedClusterManagedOutboundIPProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS tests if a specific instance of ManagedClusterManagedOutboundIPProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterManagedOutboundIPProfile_STATUS(subject ManagedClusterManagedOutboundIPProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterManagedOutboundIPProfile_STATUS + err := copied.AssignProperties_To_ManagedClusterManagedOutboundIPProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterManagedOutboundIPProfile_STATUS + err = actual.AssignProperties_From_ManagedClusterManagedOutboundIPProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterManagedOutboundIPProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS, ManagedClusterManagedOutboundIPProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS(subject ManagedClusterManagedOutboundIPProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterManagedOutboundIPProfile_STATUSGenerator() +var managedClusterManagedOutboundIPProfile_STATUSGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfile_STATUSGenerator returns a generator of ManagedClusterManagedOutboundIPProfile_STATUS instances for property testing. +func ManagedClusterManagedOutboundIPProfile_STATUSGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfile_STATUSGenerator != nil { + return managedClusterManagedOutboundIPProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS(generators) + managedClusterManagedOutboundIPProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile_STATUS{}), generators) + + return managedClusterManagedOutboundIPProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentity_ProvisioningInfo_STATUS to ManagedClusterPodIdentity_ProvisioningInfo_STATUS via AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS & AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS, ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS tests if a specific instance of ManagedClusterPodIdentity_ProvisioningInfo_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS(subject ManagedClusterPodIdentity_ProvisioningInfo_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentity_ProvisioningInfo_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_ProvisioningInfo_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS, ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentity_ProvisioningInfo_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS(subject ManagedClusterPodIdentity_ProvisioningInfo_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS instances for property testing - lazily instantiated +// by ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator() +var managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator returns a generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS instances for property testing. +func ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator != nil { + return managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS(generators) + managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUS{}), generators) + + return managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningError_STATUSGenerator()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefenderSecurityMonitoring to ManagedClusterSecurityProfileDefenderSecurityMonitoring via AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring & AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring, ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring tests if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring, ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoringGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoringGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoringGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring(generators) + managedClusterSecurityProfileDefenderSecurityMonitoringGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoringGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS to ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS via AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS & AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS, ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS tests if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err := copied.AssignProperties_To_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err = actual.AssignProperties_From_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS, ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(generators) + managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ResourceReference_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ResourceReference to ResourceReference via AssignProperties_To_ResourceReference & AssignProperties_From_ResourceReference returns original", + prop.ForAll(RunPropertyAssignmentTestForResourceReference, ResourceReferenceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForResourceReference tests if a specific instance of ResourceReference can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForResourceReference(subject ResourceReference) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ResourceReference + err := copied.AssignProperties_To_ResourceReference(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ResourceReference + err = actual.AssignProperties_From_ResourceReference(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ResourceReference_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference, ResourceReferenceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference runs a test to see if a specific instance of ResourceReference round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference(subject ResourceReference) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference instances for property testing - lazily instantiated by ResourceReferenceGenerator() +var resourceReferenceGenerator gopter.Gen + +// ResourceReferenceGenerator returns a generator of ResourceReference instances for property testing. +func ResourceReferenceGenerator() gopter.Gen { + if resourceReferenceGenerator != nil { + return resourceReferenceGenerator + } + + generators := make(map[string]gopter.Gen) + resourceReferenceGenerator = gen.Struct(reflect.TypeOf(ResourceReference{}), generators) + + return resourceReferenceGenerator +} + +func Test_ResourceReference_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ResourceReference_STATUS to ResourceReference_STATUS via AssignProperties_To_ResourceReference_STATUS & AssignProperties_From_ResourceReference_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForResourceReference_STATUS, ResourceReference_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForResourceReference_STATUS tests if a specific instance of ResourceReference_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForResourceReference_STATUS(subject ResourceReference_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ResourceReference_STATUS + err := copied.AssignProperties_To_ResourceReference_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ResourceReference_STATUS + err = actual.AssignProperties_From_ResourceReference_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ResourceReference_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference_STATUS, ResourceReference_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference_STATUS runs a test to see if a specific instance of ResourceReference_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference_STATUS(subject ResourceReference_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference_STATUS instances for property testing - lazily instantiated by +// ResourceReference_STATUSGenerator() +var resourceReference_STATUSGenerator gopter.Gen + +// ResourceReference_STATUSGenerator returns a generator of ResourceReference_STATUS instances for property testing. +func ResourceReference_STATUSGenerator() gopter.Gen { + if resourceReference_STATUSGenerator != nil { + return resourceReference_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForResourceReference_STATUS(generators) + resourceReference_STATUSGenerator = gen.Struct(reflect.TypeOf(ResourceReference_STATUS{}), generators) + + return resourceReference_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForResourceReference_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForResourceReference_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioEgressGateway_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioEgressGateway to IstioEgressGateway via AssignProperties_To_IstioEgressGateway & AssignProperties_From_IstioEgressGateway returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioEgressGateway, IstioEgressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioEgressGateway tests if a specific instance of IstioEgressGateway can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioEgressGateway(subject IstioEgressGateway) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioEgressGateway + err := copied.AssignProperties_To_IstioEgressGateway(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioEgressGateway + err = actual.AssignProperties_From_IstioEgressGateway(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioEgressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway, IstioEgressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway runs a test to see if a specific instance of IstioEgressGateway round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway(subject IstioEgressGateway) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway instances for property testing - lazily instantiated by IstioEgressGatewayGenerator() +var istioEgressGatewayGenerator gopter.Gen + +// IstioEgressGatewayGenerator returns a generator of IstioEgressGateway instances for property testing. +func IstioEgressGatewayGenerator() gopter.Gen { + if istioEgressGatewayGenerator != nil { + return istioEgressGatewayGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway(generators) + istioEgressGatewayGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway{}), generators) + + return istioEgressGatewayGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioEgressGateway_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioEgressGateway_STATUS to IstioEgressGateway_STATUS via AssignProperties_To_IstioEgressGateway_STATUS & AssignProperties_From_IstioEgressGateway_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioEgressGateway_STATUS, IstioEgressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioEgressGateway_STATUS tests if a specific instance of IstioEgressGateway_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioEgressGateway_STATUS(subject IstioEgressGateway_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioEgressGateway_STATUS + err := copied.AssignProperties_To_IstioEgressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioEgressGateway_STATUS + err = actual.AssignProperties_From_IstioEgressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioEgressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway_STATUS, IstioEgressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway_STATUS runs a test to see if a specific instance of IstioEgressGateway_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway_STATUS(subject IstioEgressGateway_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway_STATUS instances for property testing - lazily instantiated by +// IstioEgressGateway_STATUSGenerator() +var istioEgressGateway_STATUSGenerator gopter.Gen + +// IstioEgressGateway_STATUSGenerator returns a generator of IstioEgressGateway_STATUS instances for property testing. +func IstioEgressGateway_STATUSGenerator() gopter.Gen { + if istioEgressGateway_STATUSGenerator != nil { + return istioEgressGateway_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS(generators) + istioEgressGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway_STATUS{}), generators) + + return istioEgressGateway_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioIngressGateway_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway to IstioIngressGateway via AssignProperties_To_IstioIngressGateway & AssignProperties_From_IstioIngressGateway returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway tests if a specific instance of IstioIngressGateway can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioIngressGateway + err := copied.AssignProperties_To_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway + err = actual.AssignProperties_From_IstioIngressGateway(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioIngressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway runs a test to see if a specific instance of IstioIngressGateway round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway instances for property testing - lazily instantiated by +// IstioIngressGatewayGenerator() +var istioIngressGatewayGenerator gopter.Gen + +// IstioIngressGatewayGenerator returns a generator of IstioIngressGateway instances for property testing. +func IstioIngressGatewayGenerator() gopter.Gen { + if istioIngressGatewayGenerator != nil { + return istioIngressGatewayGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway(generators) + istioIngressGatewayGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway{}), generators) + + return istioIngressGatewayGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(IstioIngressGateway_Mode_External, IstioIngressGateway_Mode_Internal)) +} + +func Test_IstioIngressGateway_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioIngressGateway_STATUS to IstioIngressGateway_STATUS via AssignProperties_To_IstioIngressGateway_STATUS & AssignProperties_From_IstioIngressGateway_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioIngressGateway_STATUS tests if a specific instance of IstioIngressGateway_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioIngressGateway_STATUS + err := copied.AssignProperties_To_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioIngressGateway_STATUS + err = actual.AssignProperties_From_IstioIngressGateway_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioIngressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway_STATUS runs a test to see if a specific instance of IstioIngressGateway_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway_STATUS instances for property testing - lazily instantiated by +// IstioIngressGateway_STATUSGenerator() +var istioIngressGateway_STATUSGenerator gopter.Gen + +// IstioIngressGateway_STATUSGenerator returns a generator of IstioIngressGateway_STATUS instances for property testing. +func IstioIngressGateway_STATUSGenerator() gopter.Gen { + if istioIngressGateway_STATUSGenerator != nil { + return istioIngressGateway_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(generators) + istioIngressGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway_STATUS{}), generators) + + return istioIngressGateway_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(IstioIngressGateway_Mode_STATUS_External, IstioIngressGateway_Mode_STATUS_Internal)) +} + +func Test_IstioPluginCertificateAuthority_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioPluginCertificateAuthority to IstioPluginCertificateAuthority via AssignProperties_To_IstioPluginCertificateAuthority & AssignProperties_From_IstioPluginCertificateAuthority returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioPluginCertificateAuthority, IstioPluginCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioPluginCertificateAuthority tests if a specific instance of IstioPluginCertificateAuthority can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioPluginCertificateAuthority(subject IstioPluginCertificateAuthority) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioPluginCertificateAuthority + err := copied.AssignProperties_To_IstioPluginCertificateAuthority(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioPluginCertificateAuthority + err = actual.AssignProperties_From_IstioPluginCertificateAuthority(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioPluginCertificateAuthority_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority, IstioPluginCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority runs a test to see if a specific instance of IstioPluginCertificateAuthority round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority(subject IstioPluginCertificateAuthority) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthorityGenerator() +var istioPluginCertificateAuthorityGenerator gopter.Gen + +// IstioPluginCertificateAuthorityGenerator returns a generator of IstioPluginCertificateAuthority instances for property testing. +func IstioPluginCertificateAuthorityGenerator() gopter.Gen { + if istioPluginCertificateAuthorityGenerator != nil { + return istioPluginCertificateAuthorityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority(generators) + istioPluginCertificateAuthorityGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority{}), generators) + + return istioPluginCertificateAuthorityGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioPluginCertificateAuthority_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IstioPluginCertificateAuthority_STATUS to IstioPluginCertificateAuthority_STATUS via AssignProperties_To_IstioPluginCertificateAuthority_STATUS & AssignProperties_From_IstioPluginCertificateAuthority_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIstioPluginCertificateAuthority_STATUS, IstioPluginCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIstioPluginCertificateAuthority_STATUS tests if a specific instance of IstioPluginCertificateAuthority_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIstioPluginCertificateAuthority_STATUS(subject IstioPluginCertificateAuthority_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IstioPluginCertificateAuthority_STATUS + err := copied.AssignProperties_To_IstioPluginCertificateAuthority_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IstioPluginCertificateAuthority_STATUS + err = actual.AssignProperties_From_IstioPluginCertificateAuthority_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IstioPluginCertificateAuthority_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS, IstioPluginCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS runs a test to see if a specific instance of IstioPluginCertificateAuthority_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS(subject IstioPluginCertificateAuthority_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority_STATUS instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthority_STATUSGenerator() +var istioPluginCertificateAuthority_STATUSGenerator gopter.Gen + +// IstioPluginCertificateAuthority_STATUSGenerator returns a generator of IstioPluginCertificateAuthority_STATUS instances for property testing. +func IstioPluginCertificateAuthority_STATUSGenerator() gopter.Gen { + if istioPluginCertificateAuthority_STATUSGenerator != nil { + return istioPluginCertificateAuthority_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS(generators) + istioPluginCertificateAuthority_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority_STATUS{}), generators) + + return istioPluginCertificateAuthority_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityProvisioningError_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningError_STATUS to ManagedClusterPodIdentityProvisioningError_STATUS via AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS & AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS, ManagedClusterPodIdentityProvisioningError_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS tests if a specific instance of ManagedClusterPodIdentityProvisioningError_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningError_STATUS(subject ManagedClusterPodIdentityProvisioningError_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningError_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningError_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningError_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningError_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityProvisioningError_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningError_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS, ManagedClusterPodIdentityProvisioningError_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningError_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS(subject ManagedClusterPodIdentityProvisioningError_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningError_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningError_STATUS instances for property testing - lazily instantiated +// by ManagedClusterPodIdentityProvisioningError_STATUSGenerator() +var managedClusterPodIdentityProvisioningError_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningError_STATUSGenerator returns a generator of ManagedClusterPodIdentityProvisioningError_STATUS instances for property testing. +func ManagedClusterPodIdentityProvisioningError_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningError_STATUSGenerator != nil { + return managedClusterPodIdentityProvisioningError_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS(generators) + managedClusterPodIdentityProvisioningError_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningError_STATUS{}), generators) + + return managedClusterPodIdentityProvisioningError_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningErrorBody_STATUS to ManagedClusterPodIdentityProvisioningErrorBody_STATUS via AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS & AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS, ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS tests if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS, ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS instances for property testing. +// We first initialize managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(gens map[string]gopter.Gen) { + gens["Details"] = gen.SliceOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled to ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled via AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled & AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled tests if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err := copied.AssignProperties_To_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err = actual.AssignProperties_From_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled instances for property testing. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen.go new file mode 100644 index 00000000000..00739d2905a --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen.go @@ -0,0 +1,374 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type ManagedClusters_AgentPool_Spec_ARM struct { + Name string `json:"name,omitempty"` + + // Properties: Properties of an agent pool. + Properties *ManagedClusterAgentPoolProfileProperties_ARM `json:"properties,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &ManagedClusters_AgentPool_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (pool ManagedClusters_AgentPool_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (pool *ManagedClusters_AgentPool_Spec_ARM) GetName() string { + return pool.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/agentPools" +func (pool *ManagedClusters_AgentPool_Spec_ARM) GetType() string { + return "Microsoft.ContainerService/managedClusters/agentPools" +} + +// Properties for the container service agent pool profile. +type ManagedClusterAgentPoolProfileProperties_ARM struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones"` + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_ARM `json:"creationData,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile `json:"gpuInstanceProfile,omitempty"` + HostGroupID *string `json:"hostGroupID,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_ARM `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_ARM `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode `json:"mode,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_ARM `json:"networkProfile,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels"` + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *ContainerServiceOSDisk `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType `json:"osType,omitempty"` + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_ARM `json:"powerState,omitempty"` + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags"` + + // Type: The type of Agent Pool. + Type *AgentPoolType `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_ARM `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime `json:"workloadRuntime,omitempty"` +} + +// Network settings of an agent pool. +type AgentPoolNetworkProfile_ARM struct { + // AllowedHostPorts: The port ranges that are allowed to access. The specified ranges are allowed to overlap. + AllowedHostPorts []PortRange_ARM `json:"allowedHostPorts"` + ApplicationSecurityGroups []string `json:"applicationSecurityGroups,omitempty"` + + // NodePublicIPTags: IPTags of instance-level public IPs. + NodePublicIPTags []IPTag_ARM `json:"nodePublicIPTags"` +} + +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings_ARM struct { + // DrainTimeoutInMinutes: The amount of time (in minutes) to wait on eviction of pods and graceful termination per node. + // This eviction wait time honors waiting on pod disruption budgets. If this time is exceeded, the upgrade fails. If not + // specified, the default is 30 minutes. + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + + // MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it + // is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded + // up. If not specified, the default is 1. For more information, including best practices, see: + // https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade + MaxSurge *string `json:"maxSurge,omitempty"` +} + +// Data used when creating a target resource from a source resource. +type CreationData_ARM struct { + SourceResourceId *string `json:"sourceResourceId,omitempty"` +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig_ARM struct { + // AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`). + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls"` + + // ContainerLogMaxFiles: The maximum number of container log files that can be present for a container. The number must be + // ≥ 2. + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + + // ContainerLogMaxSizeMB: The maximum size (e.g. 10Mi) of container log file before it is rotated. + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + + // CpuCfsQuota: The default is true. + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + + // CpuCfsQuotaPeriod: The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and + // a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + + // CpuManagerPolicy: The default is 'none'. See [Kubernetes CPU management + // policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more + // information. Allowed values are 'none' and 'static'. + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + + // FailSwapOn: If set to true it will make the Kubelet fail to start if swap is enabled on the node. + FailSwapOn *bool `json:"failSwapOn,omitempty"` + + // ImageGcHighThreshold: To disable image garbage collection, set to 100. The default is 85% + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + + // ImageGcLowThreshold: This cannot be set higher than imageGcHighThreshold. The default is 80% + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + + // PodMaxPids: The maximum number of processes per pod. + PodMaxPids *int `json:"podMaxPids,omitempty"` + + // TopologyManagerPolicy: For more information see [Kubernetes Topology + // Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values + // are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig_ARM struct { + // SwapFileSizeMB: The size in MB of a swap file that will be created on each node. + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + + // Sysctls: Sysctl settings for Linux agent nodes. + Sysctls *SysctlConfig_ARM `json:"sysctls,omitempty"` + + // TransparentHugePageDefrag: Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is + // 'madvise'. For more information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + + // TransparentHugePageEnabled: Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more + // information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +// Describes the Power State of the cluster +type PowerState_ARM struct { + // Code: Tells whether the cluster is Running or Stopped + Code *PowerState_Code `json:"code,omitempty"` +} + +// Contains the IPTag associated with the object. +type IPTag_ARM struct { + // IpTagType: The IP tag type. Example: RoutingPreference. + IpTagType *string `json:"ipTagType,omitempty"` + + // Tag: The value of the IP tag associated with the public IP. Example: Internet. + Tag *string `json:"tag,omitempty"` +} + +// The port range. +type PortRange_ARM struct { + // PortEnd: The maximum port that is included in the range. It should be ranged from 1 to 65535, and be greater than or + // equal to portStart. + PortEnd *int `json:"portEnd,omitempty"` + + // PortStart: The minimum port that is included in the range. It should be ranged from 1 to 65535, and be less than or + // equal to portEnd. + PortStart *int `json:"portStart,omitempty"` + + // Protocol: The network protocol of the port. + Protocol *PortRange_Protocol `json:"protocol,omitempty"` +} + +// Sysctl settings for Linux agent nodes. +type SysctlConfig_ARM struct { + // FsAioMaxNr: Sysctl setting fs.aio-max-nr. + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + + // FsFileMax: Sysctl setting fs.file-max. + FsFileMax *int `json:"fsFileMax,omitempty"` + + // FsInotifyMaxUserWatches: Sysctl setting fs.inotify.max_user_watches. + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + + // FsNrOpen: Sysctl setting fs.nr_open. + FsNrOpen *int `json:"fsNrOpen,omitempty"` + + // KernelThreadsMax: Sysctl setting kernel.threads-max. + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + + // NetCoreNetdevMaxBacklog: Sysctl setting net.core.netdev_max_backlog. + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + + // NetCoreOptmemMax: Sysctl setting net.core.optmem_max. + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + + // NetCoreRmemDefault: Sysctl setting net.core.rmem_default. + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + + // NetCoreRmemMax: Sysctl setting net.core.rmem_max. + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + + // NetCoreSomaxconn: Sysctl setting net.core.somaxconn. + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + + // NetCoreWmemDefault: Sysctl setting net.core.wmem_default. + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + + // NetCoreWmemMax: Sysctl setting net.core.wmem_max. + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + + // NetIpv4IpLocalPortRange: Sysctl setting net.ipv4.ip_local_port_range. + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + + // NetIpv4NeighDefaultGcThresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + + // NetIpv4NeighDefaultGcThresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + + // NetIpv4NeighDefaultGcThresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + + // NetIpv4TcpFinTimeout: Sysctl setting net.ipv4.tcp_fin_timeout. + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + + // NetIpv4TcpKeepaliveProbes: Sysctl setting net.ipv4.tcp_keepalive_probes. + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + + // NetIpv4TcpKeepaliveTime: Sysctl setting net.ipv4.tcp_keepalive_time. + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + + // NetIpv4TcpMaxSynBacklog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + + // NetIpv4TcpMaxTwBuckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + + // NetIpv4TcpTwReuse: Sysctl setting net.ipv4.tcp_tw_reuse. + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + + // NetIpv4TcpkeepaliveIntvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + + // NetNetfilterNfConntrackBuckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + + // NetNetfilterNfConntrackMax: Sysctl setting net.netfilter.nf_conntrack_max. + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + + // VmMaxMapCount: Sysctl setting vm.max_map_count. + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + + // VmSwappiness: Sysctl setting vm.swappiness. + VmSwappiness *int `json:"vmSwappiness,omitempty"` + + // VmVfsCachePressure: Sysctl setting vm.vfs_cache_pressure. + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..8e10e8a7c9d --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_spec_arm_types_gen_test.go @@ -0,0 +1,832 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClusters_AgentPool_Spec_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_Spec_ARM, ManagedClusters_AgentPool_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_Spec_ARM runs a test to see if a specific instance of ManagedClusters_AgentPool_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_Spec_ARM(subject ManagedClusters_AgentPool_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_Spec_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_Spec_ARM instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_Spec_ARMGenerator() +var managedClusters_AgentPool_Spec_ARMGenerator gopter.Gen + +// ManagedClusters_AgentPool_Spec_ARMGenerator returns a generator of ManagedClusters_AgentPool_Spec_ARM instances for property testing. +// We first initialize managedClusters_AgentPool_Spec_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_Spec_ARMGenerator() gopter.Gen { + if managedClusters_AgentPool_Spec_ARMGenerator != nil { + return managedClusters_AgentPool_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM(generators) + managedClusters_AgentPool_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM(generators) + managedClusters_AgentPool_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec_ARM{}), generators) + + return managedClusters_AgentPool_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM(gens map[string]gopter.Gen) { + gens["Name"] = gen.AlphaString() +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(ManagedClusterAgentPoolProfileProperties_ARMGenerator()) +} + +func Test_ManagedClusterAgentPoolProfileProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfileProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_ARM, ManagedClusterAgentPoolProfileProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_ARM runs a test to see if a specific instance of ManagedClusterAgentPoolProfileProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_ARM(subject ManagedClusterAgentPoolProfileProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfileProperties_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfileProperties_ARM instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfileProperties_ARMGenerator() +var managedClusterAgentPoolProfileProperties_ARMGenerator gopter.Gen + +// ManagedClusterAgentPoolProfileProperties_ARMGenerator returns a generator of ManagedClusterAgentPoolProfileProperties_ARM instances for property testing. +// We first initialize managedClusterAgentPoolProfileProperties_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfileProperties_ARMGenerator() gopter.Gen { + if managedClusterAgentPoolProfileProperties_ARMGenerator != nil { + return managedClusterAgentPoolProfileProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM(generators) + managedClusterAgentPoolProfileProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfileProperties_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM(generators) + managedClusterAgentPoolProfileProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfileProperties_ARM{}), generators) + + return managedClusterAgentPoolProfileProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_MIG1G, + GPUInstanceProfile_MIG2G, + GPUInstanceProfile_MIG3G, + GPUInstanceProfile_MIG4G, + GPUInstanceProfile_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_OS, KubeletDiskType_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_System, AgentPoolMode_User)) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int().Map(func(it int) ContainerServiceOSDisk { + return ContainerServiceOSDisk(it) + })) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_Ephemeral, OSDiskType_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_AzureLinux, + OSSKU_CBLMariner, + OSSKU_Ubuntu, + OSSKU_Windows2019, + OSSKU_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_Linux, OSType_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_Deallocate, ScaleDownMode_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_Deallocate, ScaleSetEvictionPolicy_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_Regular, ScaleSetPriority_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_AvailabilitySet, AgentPoolType_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_OCIContainer, WorkloadRuntime_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_ARM(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_ARMGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_ARMGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_ARMGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_ARMGenerator()) +} + +func Test_AgentPoolNetworkProfile_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile_ARM, AgentPoolNetworkProfile_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile_ARM runs a test to see if a specific instance of AgentPoolNetworkProfile_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile_ARM(subject AgentPoolNetworkProfile_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile_ARM instances for property testing - lazily instantiated by +// AgentPoolNetworkProfile_ARMGenerator() +var agentPoolNetworkProfile_ARMGenerator gopter.Gen + +// AgentPoolNetworkProfile_ARMGenerator returns a generator of AgentPoolNetworkProfile_ARM instances for property testing. +// We first initialize agentPoolNetworkProfile_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func AgentPoolNetworkProfile_ARMGenerator() gopter.Gen { + if agentPoolNetworkProfile_ARMGenerator != nil { + return agentPoolNetworkProfile_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_ARM(generators) + agentPoolNetworkProfile_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_ARM(generators) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_ARM(generators) + agentPoolNetworkProfile_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_ARM{}), generators) + + return agentPoolNetworkProfile_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_ARM(gens map[string]gopter.Gen) { + gens["ApplicationSecurityGroups"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_ARM(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRange_ARMGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTag_ARMGenerator()) +} + +func Test_AgentPoolUpgradeSettings_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings_ARM, AgentPoolUpgradeSettings_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings_ARM runs a test to see if a specific instance of AgentPoolUpgradeSettings_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings_ARM(subject AgentPoolUpgradeSettings_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings_ARM instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettings_ARMGenerator() +var agentPoolUpgradeSettings_ARMGenerator gopter.Gen + +// AgentPoolUpgradeSettings_ARMGenerator returns a generator of AgentPoolUpgradeSettings_ARM instances for property testing. +func AgentPoolUpgradeSettings_ARMGenerator() gopter.Gen { + if agentPoolUpgradeSettings_ARMGenerator != nil { + return agentPoolUpgradeSettings_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_ARM(generators) + agentPoolUpgradeSettings_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings_ARM{}), generators) + + return agentPoolUpgradeSettings_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_ARM(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CreationData_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData_ARM, CreationData_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData_ARM runs a test to see if a specific instance of CreationData_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData_ARM(subject CreationData_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData_ARM instances for property testing - lazily instantiated by CreationData_ARMGenerator() +var creationData_ARMGenerator gopter.Gen + +// CreationData_ARMGenerator returns a generator of CreationData_ARM instances for property testing. +func CreationData_ARMGenerator() gopter.Gen { + if creationData_ARMGenerator != nil { + return creationData_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCreationData_ARM(generators) + creationData_ARMGenerator = gen.Struct(reflect.TypeOf(CreationData_ARM{}), generators) + + return creationData_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCreationData_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCreationData_ARM(gens map[string]gopter.Gen) { + gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig_ARM, KubeletConfig_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig_ARM runs a test to see if a specific instance of KubeletConfig_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig_ARM(subject KubeletConfig_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig_ARM instances for property testing - lazily instantiated by KubeletConfig_ARMGenerator() +var kubeletConfig_ARMGenerator gopter.Gen + +// KubeletConfig_ARMGenerator returns a generator of KubeletConfig_ARM instances for property testing. +func KubeletConfig_ARMGenerator() gopter.Gen { + if kubeletConfig_ARMGenerator != nil { + return kubeletConfig_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig_ARM(generators) + kubeletConfig_ARMGenerator = gen.Struct(reflect.TypeOf(KubeletConfig_ARM{}), generators) + + return kubeletConfig_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig_ARM(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_LinuxOSConfig_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig_ARM, LinuxOSConfig_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig_ARM runs a test to see if a specific instance of LinuxOSConfig_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig_ARM(subject LinuxOSConfig_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig_ARM instances for property testing - lazily instantiated by LinuxOSConfig_ARMGenerator() +var linuxOSConfig_ARMGenerator gopter.Gen + +// LinuxOSConfig_ARMGenerator returns a generator of LinuxOSConfig_ARM instances for property testing. +// We first initialize linuxOSConfig_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfig_ARMGenerator() gopter.Gen { + if linuxOSConfig_ARMGenerator != nil { + return linuxOSConfig_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_ARM(generators) + linuxOSConfig_ARMGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_ARM(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig_ARM(generators) + linuxOSConfig_ARMGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_ARM{}), generators) + + return linuxOSConfig_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig_ARM(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig_ARM(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfig_ARMGenerator()) +} + +func Test_PowerState_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState_ARM, PowerState_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState_ARM runs a test to see if a specific instance of PowerState_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState_ARM(subject PowerState_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState_ARM instances for property testing - lazily instantiated by PowerState_ARMGenerator() +var powerState_ARMGenerator gopter.Gen + +// PowerState_ARMGenerator returns a generator of PowerState_ARM instances for property testing. +func PowerState_ARMGenerator() gopter.Gen { + if powerState_ARMGenerator != nil { + return powerState_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState_ARM(generators) + powerState_ARMGenerator = gen.Struct(reflect.TypeOf(PowerState_ARM{}), generators) + + return powerState_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState_ARM(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.OneConstOf(PowerState_Code_Running, PowerState_Code_Stopped)) +} + +func Test_IPTag_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag_ARM, IPTag_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag_ARM runs a test to see if a specific instance of IPTag_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag_ARM(subject IPTag_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag_ARM instances for property testing - lazily instantiated by IPTag_ARMGenerator() +var ipTag_ARMGenerator gopter.Gen + +// IPTag_ARMGenerator returns a generator of IPTag_ARM instances for property testing. +func IPTag_ARMGenerator() gopter.Gen { + if ipTag_ARMGenerator != nil { + return ipTag_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag_ARM(generators) + ipTag_ARMGenerator = gen.Struct(reflect.TypeOf(IPTag_ARM{}), generators) + + return ipTag_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag_ARM(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PortRange_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange_ARM, PortRange_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange_ARM runs a test to see if a specific instance of PortRange_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange_ARM(subject PortRange_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange_ARM instances for property testing - lazily instantiated by PortRange_ARMGenerator() +var portRange_ARMGenerator gopter.Gen + +// PortRange_ARMGenerator returns a generator of PortRange_ARM instances for property testing. +func PortRange_ARMGenerator() gopter.Gen { + if portRange_ARMGenerator != nil { + return portRange_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange_ARM(generators) + portRange_ARMGenerator = gen.Struct(reflect.TypeOf(PortRange_ARM{}), generators) + + return portRange_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange_ARM(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.OneConstOf(PortRange_Protocol_TCP, PortRange_Protocol_UDP)) +} + +func Test_SysctlConfig_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig_ARM, SysctlConfig_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig_ARM runs a test to see if a specific instance of SysctlConfig_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig_ARM(subject SysctlConfig_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig_ARM instances for property testing - lazily instantiated by SysctlConfig_ARMGenerator() +var sysctlConfig_ARMGenerator gopter.Gen + +// SysctlConfig_ARMGenerator returns a generator of SysctlConfig_ARM instances for property testing. +func SysctlConfig_ARMGenerator() gopter.Gen { + if sysctlConfig_ARMGenerator != nil { + return sysctlConfig_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig_ARM(generators) + sysctlConfig_ARMGenerator = gen.Struct(reflect.TypeOf(SysctlConfig_ARM{}), generators) + + return sysctlConfig_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig_ARM(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen.go new file mode 100644 index 00000000000..01ad918168e --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen.go @@ -0,0 +1,389 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +type ManagedClusters_AgentPool_STATUS_ARM struct { + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // Name: The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `json:"name,omitempty"` + + // Properties: Properties of an agent pool. + Properties *ManagedClusterAgentPoolProfileProperties_STATUS_ARM `json:"properties,omitempty"` + + // Type: Resource type + Type *string `json:"type,omitempty"` +} + +// Properties for the container service agent pool profile. +type ManagedClusterAgentPoolProfileProperties_STATUS_ARM struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones"` + + // CapacityReservationGroupID: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_STATUS_ARM `json:"creationData,omitempty"` + + // CurrentOrchestratorVersion: If orchestratorVersion is a fully specified version , this field will be + // exactly equal to it. If orchestratorVersion is , this field will contain the full + // version being used. + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile_STATUS `json:"gpuInstanceProfile,omitempty"` + + // HostGroupID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupID *string `json:"hostGroupID,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_STATUS_ARM `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType_STATUS `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_STATUS_ARM `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode_STATUS `json:"mode,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_STATUS_ARM `json:"networkProfile,omitempty"` + + // NodeImageVersion: The version of node image + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels"` + + // NodePublicIPPrefixID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType_STATUS `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU_STATUS `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType_STATUS `json:"osType,omitempty"` + + // PodSubnetID: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is + // of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_STATUS_ARM `json:"powerState,omitempty"` + + // ProvisioningState: The current deployment or provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // ProximityPlacementGroupID: The ID for Proximity Placement Group. + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode_STATUS `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy_STATUS `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority_STATUS `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags"` + + // Type: The type of Agent Pool. + Type *AgentPoolType_STATUS `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_STATUS_ARM `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetID: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, + // this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime_STATUS `json:"workloadRuntime,omitempty"` +} + +// Network settings of an agent pool. +type AgentPoolNetworkProfile_STATUS_ARM struct { + // AllowedHostPorts: The port ranges that are allowed to access. The specified ranges are allowed to overlap. + AllowedHostPorts []PortRange_STATUS_ARM `json:"allowedHostPorts"` + + // ApplicationSecurityGroups: The IDs of the application security groups which agent pool will associate when created. + ApplicationSecurityGroups []string `json:"applicationSecurityGroups"` + + // NodePublicIPTags: IPTags of instance-level public IPs. + NodePublicIPTags []IPTag_STATUS_ARM `json:"nodePublicIPTags"` +} + +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings_STATUS_ARM struct { + // DrainTimeoutInMinutes: The amount of time (in minutes) to wait on eviction of pods and graceful termination per node. + // This eviction wait time honors waiting on pod disruption budgets. If this time is exceeded, the upgrade fails. If not + // specified, the default is 30 minutes. + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + + // MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it + // is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded + // up. If not specified, the default is 1. For more information, including best practices, see: + // https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade + MaxSurge *string `json:"maxSurge,omitempty"` +} + +// Data used when creating a target resource from a source resource. +type CreationData_STATUS_ARM struct { + // SourceResourceId: This is the ARM ID of the source object to be used to create the target object. + SourceResourceId *string `json:"sourceResourceId,omitempty"` +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig_STATUS_ARM struct { + // AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`). + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls"` + + // ContainerLogMaxFiles: The maximum number of container log files that can be present for a container. The number must be + // ≥ 2. + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + + // ContainerLogMaxSizeMB: The maximum size (e.g. 10Mi) of container log file before it is rotated. + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + + // CpuCfsQuota: The default is true. + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + + // CpuCfsQuotaPeriod: The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and + // a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + + // CpuManagerPolicy: The default is 'none'. See [Kubernetes CPU management + // policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more + // information. Allowed values are 'none' and 'static'. + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + + // FailSwapOn: If set to true it will make the Kubelet fail to start if swap is enabled on the node. + FailSwapOn *bool `json:"failSwapOn,omitempty"` + + // ImageGcHighThreshold: To disable image garbage collection, set to 100. The default is 85% + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + + // ImageGcLowThreshold: This cannot be set higher than imageGcHighThreshold. The default is 80% + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + + // PodMaxPids: The maximum number of processes per pod. + PodMaxPids *int `json:"podMaxPids,omitempty"` + + // TopologyManagerPolicy: For more information see [Kubernetes Topology + // Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values + // are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig_STATUS_ARM struct { + // SwapFileSizeMB: The size in MB of a swap file that will be created on each node. + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + + // Sysctls: Sysctl settings for Linux agent nodes. + Sysctls *SysctlConfig_STATUS_ARM `json:"sysctls,omitempty"` + + // TransparentHugePageDefrag: Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is + // 'madvise'. For more information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + + // TransparentHugePageEnabled: Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more + // information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +// Contains the IPTag associated with the object. +type IPTag_STATUS_ARM struct { + // IpTagType: The IP tag type. Example: RoutingPreference. + IpTagType *string `json:"ipTagType,omitempty"` + + // Tag: The value of the IP tag associated with the public IP. Example: Internet. + Tag *string `json:"tag,omitempty"` +} + +// The port range. +type PortRange_STATUS_ARM struct { + // PortEnd: The maximum port that is included in the range. It should be ranged from 1 to 65535, and be greater than or + // equal to portStart. + PortEnd *int `json:"portEnd,omitempty"` + + // PortStart: The minimum port that is included in the range. It should be ranged from 1 to 65535, and be less than or + // equal to portEnd. + PortStart *int `json:"portStart,omitempty"` + + // Protocol: The network protocol of the port. + Protocol *PortRange_Protocol_STATUS `json:"protocol,omitempty"` +} + +// Sysctl settings for Linux agent nodes. +type SysctlConfig_STATUS_ARM struct { + // FsAioMaxNr: Sysctl setting fs.aio-max-nr. + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + + // FsFileMax: Sysctl setting fs.file-max. + FsFileMax *int `json:"fsFileMax,omitempty"` + + // FsInotifyMaxUserWatches: Sysctl setting fs.inotify.max_user_watches. + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + + // FsNrOpen: Sysctl setting fs.nr_open. + FsNrOpen *int `json:"fsNrOpen,omitempty"` + + // KernelThreadsMax: Sysctl setting kernel.threads-max. + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + + // NetCoreNetdevMaxBacklog: Sysctl setting net.core.netdev_max_backlog. + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + + // NetCoreOptmemMax: Sysctl setting net.core.optmem_max. + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + + // NetCoreRmemDefault: Sysctl setting net.core.rmem_default. + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + + // NetCoreRmemMax: Sysctl setting net.core.rmem_max. + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + + // NetCoreSomaxconn: Sysctl setting net.core.somaxconn. + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + + // NetCoreWmemDefault: Sysctl setting net.core.wmem_default. + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + + // NetCoreWmemMax: Sysctl setting net.core.wmem_max. + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + + // NetIpv4IpLocalPortRange: Sysctl setting net.ipv4.ip_local_port_range. + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + + // NetIpv4NeighDefaultGcThresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + + // NetIpv4NeighDefaultGcThresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + + // NetIpv4NeighDefaultGcThresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + + // NetIpv4TcpFinTimeout: Sysctl setting net.ipv4.tcp_fin_timeout. + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + + // NetIpv4TcpKeepaliveProbes: Sysctl setting net.ipv4.tcp_keepalive_probes. + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + + // NetIpv4TcpKeepaliveTime: Sysctl setting net.ipv4.tcp_keepalive_time. + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + + // NetIpv4TcpMaxSynBacklog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + + // NetIpv4TcpMaxTwBuckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + + // NetIpv4TcpTwReuse: Sysctl setting net.ipv4.tcp_tw_reuse. + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + + // NetIpv4TcpkeepaliveIntvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + + // NetNetfilterNfConntrackBuckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + + // NetNetfilterNfConntrackMax: Sysctl setting net.netfilter.nf_conntrack_max. + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + + // VmMaxMapCount: Sysctl setting vm.max_map_count. + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + + // VmSwappiness: Sysctl setting vm.swappiness. + VmSwappiness *int `json:"vmSwappiness,omitempty"` + + // VmVfsCachePressure: Sysctl setting vm.vfs_cache_pressure. + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen_test.go new file mode 100644 index 00000000000..27d73bb7434 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_status_arm_types_gen_test.go @@ -0,0 +1,780 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClusters_AgentPool_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_STATUS_ARM, ManagedClusters_AgentPool_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_STATUS_ARM runs a test to see if a specific instance of ManagedClusters_AgentPool_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_STATUS_ARM(subject ManagedClusters_AgentPool_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_STATUS_ARM instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_STATUS_ARMGenerator() +var managedClusters_AgentPool_STATUS_ARMGenerator gopter.Gen + +// ManagedClusters_AgentPool_STATUS_ARMGenerator returns a generator of ManagedClusters_AgentPool_STATUS_ARM instances for property testing. +// We first initialize managedClusters_AgentPool_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_STATUS_ARMGenerator() gopter.Gen { + if managedClusters_AgentPool_STATUS_ARMGenerator != nil { + return managedClusters_AgentPool_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM(generators) + managedClusters_AgentPool_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM(generators) + managedClusters_AgentPool_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS_ARM{}), generators) + + return managedClusters_AgentPool_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(ManagedClusterAgentPoolProfileProperties_STATUS_ARMGenerator()) +} + +func Test_ManagedClusterAgentPoolProfileProperties_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfileProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_STATUS_ARM, ManagedClusterAgentPoolProfileProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_STATUS_ARM runs a test to see if a specific instance of ManagedClusterAgentPoolProfileProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfileProperties_STATUS_ARM(subject ManagedClusterAgentPoolProfileProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfileProperties_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfileProperties_STATUS_ARM instances for property testing - lazily instantiated +// by ManagedClusterAgentPoolProfileProperties_STATUS_ARMGenerator() +var managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator gopter.Gen + +// ManagedClusterAgentPoolProfileProperties_STATUS_ARMGenerator returns a generator of ManagedClusterAgentPoolProfileProperties_STATUS_ARM instances for property testing. +// We first initialize managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfileProperties_STATUS_ARMGenerator() gopter.Gen { + if managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator != nil { + return managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM(generators) + managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfileProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM(generators) + managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfileProperties_STATUS_ARM{}), generators) + + return managedClusterAgentPoolProfileProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_STATUS_MIG1G, + GPUInstanceProfile_STATUS_MIG2G, + GPUInstanceProfile_STATUS_MIG3G, + GPUInstanceProfile_STATUS_MIG4G, + GPUInstanceProfile_STATUS_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_STATUS_OS, KubeletDiskType_STATUS_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_STATUS_System, AgentPoolMode_STATUS_User)) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_STATUS_Ephemeral, OSDiskType_STATUS_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_STATUS_AzureLinux, + OSSKU_STATUS_CBLMariner, + OSSKU_STATUS_Ubuntu, + OSSKU_STATUS_Windows2019, + OSSKU_STATUS_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_STATUS_Linux, OSType_STATUS_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_STATUS_Deallocate, ScaleDownMode_STATUS_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_STATUS_Deallocate, ScaleSetEvictionPolicy_STATUS_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_STATUS_Regular, ScaleSetPriority_STATUS_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_STATUS_AvailabilitySet, AgentPoolType_STATUS_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_STATUS_OCIContainer, WorkloadRuntime_STATUS_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfileProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUS_ARMGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUS_ARMGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUS_ARMGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUS_ARMGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUS_ARMGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUS_ARMGenerator()) +} + +func Test_AgentPoolNetworkProfile_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS_ARM, AgentPoolNetworkProfile_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS_ARM runs a test to see if a specific instance of AgentPoolNetworkProfile_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS_ARM(subject AgentPoolNetworkProfile_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile_STATUS_ARM instances for property testing - lazily instantiated by +// AgentPoolNetworkProfile_STATUS_ARMGenerator() +var agentPoolNetworkProfile_STATUS_ARMGenerator gopter.Gen + +// AgentPoolNetworkProfile_STATUS_ARMGenerator returns a generator of AgentPoolNetworkProfile_STATUS_ARM instances for property testing. +// We first initialize agentPoolNetworkProfile_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func AgentPoolNetworkProfile_STATUS_ARMGenerator() gopter.Gen { + if agentPoolNetworkProfile_STATUS_ARMGenerator != nil { + return agentPoolNetworkProfile_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM(generators) + agentPoolNetworkProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM(generators) + agentPoolNetworkProfile_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS_ARM{}), generators) + + return agentPoolNetworkProfile_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ApplicationSecurityGroups"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRange_STATUS_ARMGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTag_STATUS_ARMGenerator()) +} + +func Test_AgentPoolUpgradeSettings_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS_ARM, AgentPoolUpgradeSettings_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS_ARM runs a test to see if a specific instance of AgentPoolUpgradeSettings_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS_ARM(subject AgentPoolUpgradeSettings_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings_STATUS_ARM instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettings_STATUS_ARMGenerator() +var agentPoolUpgradeSettings_STATUS_ARMGenerator gopter.Gen + +// AgentPoolUpgradeSettings_STATUS_ARMGenerator returns a generator of AgentPoolUpgradeSettings_STATUS_ARM instances for property testing. +func AgentPoolUpgradeSettings_STATUS_ARMGenerator() gopter.Gen { + if agentPoolUpgradeSettings_STATUS_ARMGenerator != nil { + return agentPoolUpgradeSettings_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS_ARM(generators) + agentPoolUpgradeSettings_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings_STATUS_ARM{}), generators) + + return agentPoolUpgradeSettings_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CreationData_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData_STATUS_ARM, CreationData_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData_STATUS_ARM runs a test to see if a specific instance of CreationData_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData_STATUS_ARM(subject CreationData_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData_STATUS_ARM instances for property testing - lazily instantiated by +// CreationData_STATUS_ARMGenerator() +var creationData_STATUS_ARMGenerator gopter.Gen + +// CreationData_STATUS_ARMGenerator returns a generator of CreationData_STATUS_ARM instances for property testing. +func CreationData_STATUS_ARMGenerator() gopter.Gen { + if creationData_STATUS_ARMGenerator != nil { + return creationData_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCreationData_STATUS_ARM(generators) + creationData_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(CreationData_STATUS_ARM{}), generators) + + return creationData_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCreationData_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCreationData_STATUS_ARM(gens map[string]gopter.Gen) { + gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig_STATUS_ARM, KubeletConfig_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig_STATUS_ARM runs a test to see if a specific instance of KubeletConfig_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig_STATUS_ARM(subject KubeletConfig_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig_STATUS_ARM instances for property testing - lazily instantiated by +// KubeletConfig_STATUS_ARMGenerator() +var kubeletConfig_STATUS_ARMGenerator gopter.Gen + +// KubeletConfig_STATUS_ARMGenerator returns a generator of KubeletConfig_STATUS_ARM instances for property testing. +func KubeletConfig_STATUS_ARMGenerator() gopter.Gen { + if kubeletConfig_STATUS_ARMGenerator != nil { + return kubeletConfig_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig_STATUS_ARM(generators) + kubeletConfig_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(KubeletConfig_STATUS_ARM{}), generators) + + return kubeletConfig_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_LinuxOSConfig_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig_STATUS_ARM, LinuxOSConfig_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig_STATUS_ARM runs a test to see if a specific instance of LinuxOSConfig_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig_STATUS_ARM(subject LinuxOSConfig_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig_STATUS_ARM instances for property testing - lazily instantiated by +// LinuxOSConfig_STATUS_ARMGenerator() +var linuxOSConfig_STATUS_ARMGenerator gopter.Gen + +// LinuxOSConfig_STATUS_ARMGenerator returns a generator of LinuxOSConfig_STATUS_ARM instances for property testing. +// We first initialize linuxOSConfig_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfig_STATUS_ARMGenerator() gopter.Gen { + if linuxOSConfig_STATUS_ARMGenerator != nil { + return linuxOSConfig_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS_ARM(generators) + linuxOSConfig_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS_ARM(generators) + linuxOSConfig_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS_ARM{}), generators) + + return linuxOSConfig_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS_ARM(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfig_STATUS_ARMGenerator()) +} + +func Test_IPTag_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag_STATUS_ARM, IPTag_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag_STATUS_ARM runs a test to see if a specific instance of IPTag_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag_STATUS_ARM(subject IPTag_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag_STATUS_ARM instances for property testing - lazily instantiated by IPTag_STATUS_ARMGenerator() +var ipTag_STATUS_ARMGenerator gopter.Gen + +// IPTag_STATUS_ARMGenerator returns a generator of IPTag_STATUS_ARM instances for property testing. +func IPTag_STATUS_ARMGenerator() gopter.Gen { + if ipTag_STATUS_ARMGenerator != nil { + return ipTag_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag_STATUS_ARM(generators) + ipTag_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IPTag_STATUS_ARM{}), generators) + + return ipTag_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag_STATUS_ARM(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PortRange_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange_STATUS_ARM, PortRange_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange_STATUS_ARM runs a test to see if a specific instance of PortRange_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange_STATUS_ARM(subject PortRange_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange_STATUS_ARM instances for property testing - lazily instantiated by +// PortRange_STATUS_ARMGenerator() +var portRange_STATUS_ARMGenerator gopter.Gen + +// PortRange_STATUS_ARMGenerator returns a generator of PortRange_STATUS_ARM instances for property testing. +func PortRange_STATUS_ARMGenerator() gopter.Gen { + if portRange_STATUS_ARMGenerator != nil { + return portRange_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange_STATUS_ARM(generators) + portRange_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PortRange_STATUS_ARM{}), generators) + + return portRange_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.OneConstOf(PortRange_Protocol_STATUS_TCP, PortRange_Protocol_STATUS_UDP)) +} + +func Test_SysctlConfig_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig_STATUS_ARM, SysctlConfig_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig_STATUS_ARM runs a test to see if a specific instance of SysctlConfig_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig_STATUS_ARM(subject SysctlConfig_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig_STATUS_ARM instances for property testing - lazily instantiated by +// SysctlConfig_STATUS_ARMGenerator() +var sysctlConfig_STATUS_ARMGenerator gopter.Gen + +// SysctlConfig_STATUS_ARMGenerator returns a generator of SysctlConfig_STATUS_ARM instances for property testing. +func SysctlConfig_STATUS_ARMGenerator() gopter.Gen { + if sysctlConfig_STATUS_ARMGenerator != nil { + return sysctlConfig_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig_STATUS_ARM(generators) + sysctlConfig_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(SysctlConfig_STATUS_ARM{}), generators) + + return sysctlConfig_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig_STATUS_ARM(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen.go new file mode 100644 index 00000000000..747d3e65159 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen.go @@ -0,0 +1,7155 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "fmt" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName} +type ManagedClustersAgentPool struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ManagedClusters_AgentPool_Spec `json:"spec,omitempty"` + Status ManagedClusters_AgentPool_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ManagedClustersAgentPool{} + +// GetConditions returns the conditions of the resource +func (pool *ManagedClustersAgentPool) GetConditions() conditions.Conditions { + return pool.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (pool *ManagedClustersAgentPool) SetConditions(conditions conditions.Conditions) { + pool.Status.Conditions = conditions +} + +var _ conversion.Convertible = &ManagedClustersAgentPool{} + +// ConvertFrom populates our ManagedClustersAgentPool from the provided hub ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20231001s.ManagedClustersAgentPool) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedClustersAgentPool but received %T instead", hub) + } + + return pool.AssignProperties_From_ManagedClustersAgentPool(source) +} + +// ConvertTo populates the provided hub ManagedClustersAgentPool from our ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20231001s.ManagedClustersAgentPool) + if !ok { + return fmt.Errorf("expected containerservice/v1api20231001/storage/ManagedClustersAgentPool but received %T instead", hub) + } + + return pool.AssignProperties_To_ManagedClustersAgentPool(destination) +} + +// +kubebuilder:webhook:path=/mutate-containerservice-azure-com-v1api20231001-managedclustersagentpool,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclustersagentpools,verbs=create;update,versions=v1api20231001,name=default.v1api20231001.managedclustersagentpools.containerservice.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &ManagedClustersAgentPool{} + +// Default applies defaults to the ManagedClustersAgentPool resource +func (pool *ManagedClustersAgentPool) Default() { + pool.defaultImpl() + var temp any = pool + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (pool *ManagedClustersAgentPool) defaultAzureName() { + if pool.Spec.AzureName == "" { + pool.Spec.AzureName = pool.Name + } +} + +// defaultImpl applies the code generated defaults to the ManagedClustersAgentPool resource +func (pool *ManagedClustersAgentPool) defaultImpl() { pool.defaultAzureName() } + +var _ genruntime.ImportableResource = &ManagedClustersAgentPool{} + +// InitializeSpec initializes the spec for this resource from the given status +func (pool *ManagedClustersAgentPool) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*ManagedClusters_AgentPool_STATUS); ok { + return pool.Spec.Initialize_From_ManagedClusters_AgentPool_STATUS(s) + } + + return fmt.Errorf("expected Status of type ManagedClusters_AgentPool_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} + +// AzureName returns the Azure name of the resource +func (pool *ManagedClustersAgentPool) AzureName() string { + return pool.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (pool ManagedClustersAgentPool) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (pool *ManagedClustersAgentPool) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (pool *ManagedClustersAgentPool) GetSpec() genruntime.ConvertibleSpec { + return &pool.Spec +} + +// GetStatus returns the status of this resource +func (pool *ManagedClustersAgentPool) GetStatus() genruntime.ConvertibleStatus { + return &pool.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (pool *ManagedClustersAgentPool) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/agentPools" +func (pool *ManagedClustersAgentPool) GetType() string { + return "Microsoft.ContainerService/managedClusters/agentPools" +} + +// NewEmptyStatus returns a new empty (blank) status +func (pool *ManagedClustersAgentPool) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ManagedClusters_AgentPool_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (pool *ManagedClustersAgentPool) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(pool.Spec) + return pool.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (pool *ManagedClustersAgentPool) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ManagedClusters_AgentPool_STATUS); ok { + pool.Status = *st + return nil + } + + // Convert status to required version + var st ManagedClusters_AgentPool_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + pool.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-containerservice-azure-com-v1api20231001-managedclustersagentpool,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=containerservice.azure.com,resources=managedclustersagentpools,verbs=create;update,versions=v1api20231001,name=validate.v1api20231001.managedclustersagentpools.containerservice.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &ManagedClustersAgentPool{} + +// ValidateCreate validates the creation of the resource +func (pool *ManagedClustersAgentPool) ValidateCreate() (admission.Warnings, error) { + validations := pool.createValidations() + var temp any = pool + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (pool *ManagedClustersAgentPool) ValidateDelete() (admission.Warnings, error) { + validations := pool.deleteValidations() + var temp any = pool + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (pool *ManagedClustersAgentPool) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := pool.updateValidations() + var temp any = pool + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.UpdateValidations()...) + } + return genruntime.ValidateUpdate(old, validations) +} + +// createValidations validates the creation of the resource +func (pool *ManagedClustersAgentPool) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){pool.validateResourceReferences, pool.validateOwnerReference} +} + +// deleteValidations validates the deletion of the resource +func (pool *ManagedClustersAgentPool) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (pool *ManagedClustersAgentPool) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return pool.validateResourceReferences() + }, + pool.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return pool.validateOwnerReference() + }, + } +} + +// validateOwnerReference validates the owner field +func (pool *ManagedClustersAgentPool) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(pool) +} + +// validateResourceReferences validates all resource references +func (pool *ManagedClustersAgentPool) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&pool.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (pool *ManagedClustersAgentPool) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*ManagedClustersAgentPool) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, pool) +} + +// AssignProperties_From_ManagedClustersAgentPool populates our ManagedClustersAgentPool from the provided source ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) AssignProperties_From_ManagedClustersAgentPool(source *v20231001s.ManagedClustersAgentPool) error { + + // ObjectMeta + pool.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec ManagedClusters_AgentPool_Spec + err := spec.AssignProperties_From_ManagedClusters_AgentPool_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_AgentPool_Spec() to populate field Spec") + } + pool.Spec = spec + + // Status + var status ManagedClusters_AgentPool_STATUS + err = status.AssignProperties_From_ManagedClusters_AgentPool_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ManagedClusters_AgentPool_STATUS() to populate field Status") + } + pool.Status = status + + // No error + return nil +} + +// AssignProperties_To_ManagedClustersAgentPool populates the provided destination ManagedClustersAgentPool from our ManagedClustersAgentPool +func (pool *ManagedClustersAgentPool) AssignProperties_To_ManagedClustersAgentPool(destination *v20231001s.ManagedClustersAgentPool) error { + + // ObjectMeta + destination.ObjectMeta = *pool.ObjectMeta.DeepCopy() + + // Spec + var spec v20231001s.ManagedClusters_AgentPool_Spec + err := pool.Spec.AssignProperties_To_ManagedClusters_AgentPool_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_AgentPool_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20231001s.ManagedClusters_AgentPool_STATUS + err = pool.Status.AssignProperties_To_ManagedClusters_AgentPool_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ManagedClusters_AgentPool_STATUS() to populate field Status") + } + destination.Status = status + + // No error + return nil +} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (pool *ManagedClustersAgentPool) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: pool.Spec.OriginalVersion(), + Kind: "ManagedClustersAgentPool", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName} +type ManagedClustersAgentPoolList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ManagedClustersAgentPool `json:"items"` +} + +type ManagedClusters_AgentPool_Spec struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // +kubebuilder:validation:MaxLength=12 + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern="^[a-z][a-z0-9]{0,11}$" + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // CapacityReservationGroupReference: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupReference *genruntime.ResourceReference `armReference:"CapacityReservationGroupID" json:"capacityReservationGroupReference,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData `json:"creationData,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile `json:"gpuInstanceProfile,omitempty"` + + // HostGroupReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode `json:"mode,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile `json:"networkProfile,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints,omitempty"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *ContainerServiceOSDisk `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType `json:"osType,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a containerservice.azure.com/ManagedCluster resource + Owner *genruntime.KnownResourceReference `group:"containerservice.azure.com" json:"owner,omitempty" kind:"ManagedCluster"` + + // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). + // This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState `json:"powerState,omitempty"` + + // ProximityPlacementGroupReference: The ID for Proximity Placement Group. + ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of Agent Pool. + Type *AgentPoolType `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is + // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.ARMTransformer = &ManagedClusters_AgentPool_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (pool *ManagedClusters_AgentPool_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if pool == nil { + return nil, nil + } + result := &ManagedClusters_AgentPool_Spec_ARM{} + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Properties": + if pool.AvailabilityZones != nil || + pool.CapacityReservationGroupReference != nil || + pool.Count != nil || + pool.CreationData != nil || + pool.EnableAutoScaling != nil || + pool.EnableEncryptionAtHost != nil || + pool.EnableFIPS != nil || + pool.EnableNodePublicIP != nil || + pool.EnableUltraSSD != nil || + pool.GpuInstanceProfile != nil || + pool.HostGroupReference != nil || + pool.KubeletConfig != nil || + pool.KubeletDiskType != nil || + pool.LinuxOSConfig != nil || + pool.MaxCount != nil || + pool.MaxPods != nil || + pool.MinCount != nil || + pool.Mode != nil || + pool.NetworkProfile != nil || + pool.NodeLabels != nil || + pool.NodePublicIPPrefixReference != nil || + pool.NodeTaints != nil || + pool.OrchestratorVersion != nil || + pool.OsDiskSizeGB != nil || + pool.OsDiskType != nil || + pool.OsSKU != nil || + pool.OsType != nil || + pool.PodSubnetReference != nil || + pool.PowerState != nil || + pool.ProximityPlacementGroupReference != nil || + pool.ScaleDownMode != nil || + pool.ScaleSetEvictionPolicy != nil || + pool.ScaleSetPriority != nil || + pool.SpotMaxPrice != nil || + pool.Tags != nil || + pool.Type != nil || + pool.UpgradeSettings != nil || + pool.VmSize != nil || + pool.VnetSubnetReference != nil || + pool.WorkloadRuntime != nil { + result.Properties = &ManagedClusterAgentPoolProfileProperties_ARM{} + } + for _, item := range pool.AvailabilityZones { + result.Properties.AvailabilityZones = append(result.Properties.AvailabilityZones, item) + } + if pool.CapacityReservationGroupReference != nil { + capacityReservationGroupIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.CapacityReservationGroupReference) + if err != nil { + return nil, err + } + capacityReservationGroupID := capacityReservationGroupIDARMID + result.Properties.CapacityReservationGroupID = &capacityReservationGroupID + } + if pool.Count != nil { + count := *pool.Count + result.Properties.Count = &count + } + if pool.CreationData != nil { + creationData_ARM, err := (*pool.CreationData).ConvertToARM(resolved) + if err != nil { + return nil, err + } + creationData := *creationData_ARM.(*CreationData_ARM) + result.Properties.CreationData = &creationData + } + if pool.EnableAutoScaling != nil { + enableAutoScaling := *pool.EnableAutoScaling + result.Properties.EnableAutoScaling = &enableAutoScaling + } + if pool.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *pool.EnableEncryptionAtHost + result.Properties.EnableEncryptionAtHost = &enableEncryptionAtHost + } + if pool.EnableFIPS != nil { + enableFIPS := *pool.EnableFIPS + result.Properties.EnableFIPS = &enableFIPS + } + if pool.EnableNodePublicIP != nil { + enableNodePublicIP := *pool.EnableNodePublicIP + result.Properties.EnableNodePublicIP = &enableNodePublicIP + } + if pool.EnableUltraSSD != nil { + enableUltraSSD := *pool.EnableUltraSSD + result.Properties.EnableUltraSSD = &enableUltraSSD + } + if pool.GpuInstanceProfile != nil { + gpuInstanceProfile := *pool.GpuInstanceProfile + result.Properties.GpuInstanceProfile = &gpuInstanceProfile + } + if pool.HostGroupReference != nil { + hostGroupIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.HostGroupReference) + if err != nil { + return nil, err + } + hostGroupID := hostGroupIDARMID + result.Properties.HostGroupID = &hostGroupID + } + if pool.KubeletConfig != nil { + kubeletConfig_ARM, err := (*pool.KubeletConfig).ConvertToARM(resolved) + if err != nil { + return nil, err + } + kubeletConfig := *kubeletConfig_ARM.(*KubeletConfig_ARM) + result.Properties.KubeletConfig = &kubeletConfig + } + if pool.KubeletDiskType != nil { + kubeletDiskType := *pool.KubeletDiskType + result.Properties.KubeletDiskType = &kubeletDiskType + } + if pool.LinuxOSConfig != nil { + linuxOSConfig_ARM, err := (*pool.LinuxOSConfig).ConvertToARM(resolved) + if err != nil { + return nil, err + } + linuxOSConfig := *linuxOSConfig_ARM.(*LinuxOSConfig_ARM) + result.Properties.LinuxOSConfig = &linuxOSConfig + } + if pool.MaxCount != nil { + maxCount := *pool.MaxCount + result.Properties.MaxCount = &maxCount + } + if pool.MaxPods != nil { + maxPods := *pool.MaxPods + result.Properties.MaxPods = &maxPods + } + if pool.MinCount != nil { + minCount := *pool.MinCount + result.Properties.MinCount = &minCount + } + if pool.Mode != nil { + mode := *pool.Mode + result.Properties.Mode = &mode + } + if pool.NetworkProfile != nil { + networkProfile_ARM, err := (*pool.NetworkProfile).ConvertToARM(resolved) + if err != nil { + return nil, err + } + networkProfile := *networkProfile_ARM.(*AgentPoolNetworkProfile_ARM) + result.Properties.NetworkProfile = &networkProfile + } + if pool.NodeLabels != nil { + result.Properties.NodeLabels = make(map[string]string, len(pool.NodeLabels)) + for key, value := range pool.NodeLabels { + result.Properties.NodeLabels[key] = value + } + } else { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.Properties.NodeLabels = make(map[string]string) + } + if pool.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.NodePublicIPPrefixReference) + if err != nil { + return nil, err + } + nodePublicIPPrefixID := nodePublicIPPrefixIDARMID + result.Properties.NodePublicIPPrefixID = &nodePublicIPPrefixID + } + for _, item := range pool.NodeTaints { + result.Properties.NodeTaints = append(result.Properties.NodeTaints, item) + } + if result.Properties.NodeTaints == nil { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.Properties.NodeTaints = []string{} + } + if pool.OrchestratorVersion != nil { + orchestratorVersion := *pool.OrchestratorVersion + result.Properties.OrchestratorVersion = &orchestratorVersion + } + if pool.OsDiskSizeGB != nil { + osDiskSizeGB := *pool.OsDiskSizeGB + result.Properties.OsDiskSizeGB = &osDiskSizeGB + } + if pool.OsDiskType != nil { + osDiskType := *pool.OsDiskType + result.Properties.OsDiskType = &osDiskType + } + if pool.OsSKU != nil { + osSKU := *pool.OsSKU + result.Properties.OsSKU = &osSKU + } + if pool.OsType != nil { + osType := *pool.OsType + result.Properties.OsType = &osType + } + if pool.PodSubnetReference != nil { + podSubnetIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.PodSubnetReference) + if err != nil { + return nil, err + } + podSubnetID := podSubnetIDARMID + result.Properties.PodSubnetID = &podSubnetID + } + if pool.PowerState != nil { + powerState_ARM, err := (*pool.PowerState).ConvertToARM(resolved) + if err != nil { + return nil, err + } + powerState := *powerState_ARM.(*PowerState_ARM) + result.Properties.PowerState = &powerState + } + if pool.ProximityPlacementGroupReference != nil { + proximityPlacementGroupIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.ProximityPlacementGroupReference) + if err != nil { + return nil, err + } + proximityPlacementGroupID := proximityPlacementGroupIDARMID + result.Properties.ProximityPlacementGroupID = &proximityPlacementGroupID + } + if pool.ScaleDownMode != nil { + scaleDownMode := *pool.ScaleDownMode + result.Properties.ScaleDownMode = &scaleDownMode + } + if pool.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *pool.ScaleSetEvictionPolicy + result.Properties.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + if pool.ScaleSetPriority != nil { + scaleSetPriority := *pool.ScaleSetPriority + result.Properties.ScaleSetPriority = &scaleSetPriority + } + if pool.SpotMaxPrice != nil { + spotMaxPrice := *pool.SpotMaxPrice + result.Properties.SpotMaxPrice = &spotMaxPrice + } + if pool.Tags != nil { + result.Properties.Tags = make(map[string]string, len(pool.Tags)) + for key, value := range pool.Tags { + result.Properties.Tags[key] = value + } + } else { + // Set property to empty map, as this resource is set to serialize all collections explicitly + result.Properties.Tags = make(map[string]string) + } + if pool.Type != nil { + typeVar := *pool.Type + result.Properties.Type = &typeVar + } + if pool.UpgradeSettings != nil { + upgradeSettings_ARM, err := (*pool.UpgradeSettings).ConvertToARM(resolved) + if err != nil { + return nil, err + } + upgradeSettings := *upgradeSettings_ARM.(*AgentPoolUpgradeSettings_ARM) + result.Properties.UpgradeSettings = &upgradeSettings + } + if pool.VmSize != nil { + vmSize := *pool.VmSize + result.Properties.VmSize = &vmSize + } + if pool.VnetSubnetReference != nil { + vnetSubnetIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.VnetSubnetReference) + if err != nil { + return nil, err + } + vnetSubnetID := vnetSubnetIDARMID + result.Properties.VnetSubnetID = &vnetSubnetID + } + if pool.WorkloadRuntime != nil { + workloadRuntime := *pool.WorkloadRuntime + result.Properties.WorkloadRuntime = &workloadRuntime + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (pool *ManagedClusters_AgentPool_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusters_AgentPool_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (pool *ManagedClusters_AgentPool_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusters_AgentPool_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusters_AgentPool_Spec_ARM, got %T", armInput) + } + + // Set property "AvailabilityZones": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AvailabilityZones { + pool.AvailabilityZones = append(pool.AvailabilityZones, item) + } + } + + // Set property "AzureName": + pool.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // no assignment for property "CapacityReservationGroupReference" + + // Set property "Count": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Count != nil { + count := *typedInput.Properties.Count + pool.Count = &count + } + } + + // Set property "CreationData": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CreationData != nil { + var creationData1 CreationData + err := creationData1.PopulateFromARM(owner, *typedInput.Properties.CreationData) + if err != nil { + return err + } + creationData := creationData1 + pool.CreationData = &creationData + } + } + + // Set property "EnableAutoScaling": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableAutoScaling != nil { + enableAutoScaling := *typedInput.Properties.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } + } + + // Set property "EnableEncryptionAtHost": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *typedInput.Properties.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } + } + + // Set property "EnableFIPS": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableFIPS != nil { + enableFIPS := *typedInput.Properties.EnableFIPS + pool.EnableFIPS = &enableFIPS + } + } + + // Set property "EnableNodePublicIP": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableNodePublicIP != nil { + enableNodePublicIP := *typedInput.Properties.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } + } + + // Set property "EnableUltraSSD": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableUltraSSD != nil { + enableUltraSSD := *typedInput.Properties.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } + } + + // Set property "GpuInstanceProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.GpuInstanceProfile != nil { + gpuInstanceProfile := *typedInput.Properties.GpuInstanceProfile + pool.GpuInstanceProfile = &gpuInstanceProfile + } + } + + // no assignment for property "HostGroupReference" + + // Set property "KubeletConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubeletConfig != nil { + var kubeletConfig1 KubeletConfig + err := kubeletConfig1.PopulateFromARM(owner, *typedInput.Properties.KubeletConfig) + if err != nil { + return err + } + kubeletConfig := kubeletConfig1 + pool.KubeletConfig = &kubeletConfig + } + } + + // Set property "KubeletDiskType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubeletDiskType != nil { + kubeletDiskType := *typedInput.Properties.KubeletDiskType + pool.KubeletDiskType = &kubeletDiskType + } + } + + // Set property "LinuxOSConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.LinuxOSConfig != nil { + var linuxOSConfig1 LinuxOSConfig + err := linuxOSConfig1.PopulateFromARM(owner, *typedInput.Properties.LinuxOSConfig) + if err != nil { + return err + } + linuxOSConfig := linuxOSConfig1 + pool.LinuxOSConfig = &linuxOSConfig + } + } + + // Set property "MaxCount": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MaxCount != nil { + maxCount := *typedInput.Properties.MaxCount + pool.MaxCount = &maxCount + } + } + + // Set property "MaxPods": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MaxPods != nil { + maxPods := *typedInput.Properties.MaxPods + pool.MaxPods = &maxPods + } + } + + // Set property "MinCount": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MinCount != nil { + minCount := *typedInput.Properties.MinCount + pool.MinCount = &minCount + } + } + + // Set property "Mode": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Mode != nil { + mode := *typedInput.Properties.Mode + pool.Mode = &mode + } + } + + // Set property "NetworkProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NetworkProfile != nil { + var networkProfile1 AgentPoolNetworkProfile + err := networkProfile1.PopulateFromARM(owner, *typedInput.Properties.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + pool.NetworkProfile = &networkProfile + } + } + + // Set property "NodeLabels": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodeLabels != nil { + pool.NodeLabels = make(map[string]string, len(typedInput.Properties.NodeLabels)) + for key, value := range typedInput.Properties.NodeLabels { + pool.NodeLabels[key] = value + } + } + } + + // no assignment for property "NodePublicIPPrefixReference" + + // Set property "NodeTaints": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.NodeTaints { + pool.NodeTaints = append(pool.NodeTaints, item) + } + } + + // Set property "OrchestratorVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OrchestratorVersion != nil { + orchestratorVersion := *typedInput.Properties.OrchestratorVersion + pool.OrchestratorVersion = &orchestratorVersion + } + } + + // Set property "OsDiskSizeGB": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsDiskSizeGB != nil { + osDiskSizeGB := *typedInput.Properties.OsDiskSizeGB + pool.OsDiskSizeGB = &osDiskSizeGB + } + } + + // Set property "OsDiskType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsDiskType != nil { + osDiskType := *typedInput.Properties.OsDiskType + pool.OsDiskType = &osDiskType + } + } + + // Set property "OsSKU": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsSKU != nil { + osSKU := *typedInput.Properties.OsSKU + pool.OsSKU = &osSKU + } + } + + // Set property "OsType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsType != nil { + osType := *typedInput.Properties.OsType + pool.OsType = &osType + } + } + + // Set property "Owner": + pool.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // no assignment for property "PodSubnetReference" + + // Set property "PowerState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PowerState != nil { + var powerState1 PowerState + err := powerState1.PopulateFromARM(owner, *typedInput.Properties.PowerState) + if err != nil { + return err + } + powerState := powerState1 + pool.PowerState = &powerState + } + } + + // no assignment for property "ProximityPlacementGroupReference" + + // Set property "ScaleDownMode": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleDownMode != nil { + scaleDownMode := *typedInput.Properties.ScaleDownMode + pool.ScaleDownMode = &scaleDownMode + } + } + + // Set property "ScaleSetEvictionPolicy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *typedInput.Properties.ScaleSetEvictionPolicy + pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + } + + // Set property "ScaleSetPriority": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleSetPriority != nil { + scaleSetPriority := *typedInput.Properties.ScaleSetPriority + pool.ScaleSetPriority = &scaleSetPriority + } + } + + // Set property "SpotMaxPrice": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SpotMaxPrice != nil { + spotMaxPrice := *typedInput.Properties.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } + } + + // Set property "Tags": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Tags != nil { + pool.Tags = make(map[string]string, len(typedInput.Properties.Tags)) + for key, value := range typedInput.Properties.Tags { + pool.Tags[key] = value + } + } + } + + // Set property "Type": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Type != nil { + typeVar := *typedInput.Properties.Type + pool.Type = &typeVar + } + } + + // Set property "UpgradeSettings": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpgradeSettings != nil { + var upgradeSettings1 AgentPoolUpgradeSettings + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.Properties.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + pool.UpgradeSettings = &upgradeSettings + } + } + + // Set property "VmSize": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VmSize != nil { + vmSize := *typedInput.Properties.VmSize + pool.VmSize = &vmSize + } + } + + // no assignment for property "VnetSubnetReference" + + // Set property "WorkloadRuntime": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WorkloadRuntime != nil { + workloadRuntime := *typedInput.Properties.WorkloadRuntime + pool.WorkloadRuntime = &workloadRuntime + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &ManagedClusters_AgentPool_Spec{} + +// ConvertSpecFrom populates our ManagedClusters_AgentPool_Spec from the provided source +func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*v20231001s.ManagedClusters_AgentPool_Spec) + if ok { + // Populate our instance from source + return pool.AssignProperties_From_ManagedClusters_AgentPool_Spec(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedClusters_AgentPool_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = pool.AssignProperties_From_ManagedClusters_AgentPool_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*v20231001s.ManagedClusters_AgentPool_Spec) + if ok { + // Populate destination from our instance + return pool.AssignProperties_To_ManagedClusters_AgentPool_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedClusters_AgentPool_Spec{} + err := pool.AssignProperties_To_ManagedClusters_AgentPool_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } + + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil +} + +// AssignProperties_From_ManagedClusters_AgentPool_Spec populates our ManagedClusters_AgentPool_Spec from the provided source ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) AssignProperties_From_ManagedClusters_AgentPool_Spec(source *v20231001s.ManagedClusters_AgentPool_Spec) error { + + // AvailabilityZones + pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // AzureName + pool.AzureName = source.AzureName + + // CapacityReservationGroupReference + if source.CapacityReservationGroupReference != nil { + capacityReservationGroupReference := source.CapacityReservationGroupReference.Copy() + pool.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + pool.CapacityReservationGroupReference = nil + } + + // Count + pool.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.AssignProperties_From_CreationData(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData() to populate field CreationData") + } + pool.CreationData = &creationDatum + } else { + pool.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } else { + pool.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + pool.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + pool.EnableFIPS = &enableFIPS + } else { + pool.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } else { + pool.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } else { + pool.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) + pool.GpuInstanceProfile = &gpuInstanceProfile + } else { + pool.GpuInstanceProfile = nil + } + + // HostGroupReference + if source.HostGroupReference != nil { + hostGroupReference := source.HostGroupReference.Copy() + pool.HostGroupReference = &hostGroupReference + } else { + pool.HostGroupReference = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.AssignProperties_From_KubeletConfig(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig() to populate field KubeletConfig") + } + pool.KubeletConfig = &kubeletConfig + } else { + pool.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) + pool.KubeletDiskType = &kubeletDiskType + } else { + pool.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig() to populate field LinuxOSConfig") + } + pool.LinuxOSConfig = &linuxOSConfig + } else { + pool.LinuxOSConfig = nil + } + + // MaxCount + pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode(*source.Mode) + pool.Mode = &mode + } else { + pool.Mode = nil + } + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile + err := networkProfile.AssignProperties_From_AgentPoolNetworkProfile(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolNetworkProfile() to populate field NetworkProfile") + } + pool.NetworkProfile = &networkProfile + } else { + pool.NetworkProfile = nil + } + + // NodeLabels + pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixReference + if source.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := source.NodePublicIPPrefixReference.Copy() + pool.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + pool.NodePublicIPPrefixReference = nil + } + + // NodeTaints + pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + if source.OsDiskSizeGB != nil { + osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) + pool.OsDiskSizeGB = &osDiskSizeGB + } else { + pool.OsDiskSizeGB = nil + } + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType(*source.OsDiskType) + pool.OsDiskType = &osDiskType + } else { + pool.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU(*source.OsSKU) + pool.OsSKU = &osSKU + } else { + pool.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType(*source.OsType) + pool.OsType = &osType + } else { + pool.OsType = nil + } + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + pool.Owner = &owner + } else { + pool.Owner = nil + } + + // PodSubnetReference + if source.PodSubnetReference != nil { + podSubnetReference := source.PodSubnetReference.Copy() + pool.PodSubnetReference = &podSubnetReference + } else { + pool.PodSubnetReference = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.AssignProperties_From_PowerState(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState() to populate field PowerState") + } + pool.PowerState = &powerState + } else { + pool.PowerState = nil + } + + // ProximityPlacementGroupReference + if source.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := source.ProximityPlacementGroupReference.Copy() + pool.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + pool.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode(*source.ScaleDownMode) + pool.ScaleDownMode = &scaleDownMode + } else { + pool.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) + pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + pool.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) + pool.ScaleSetPriority = &scaleSetPriority + } else { + pool.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } else { + pool.SpotMaxPrice = nil + } + + // Tags + pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + if source.Type != nil { + typeVar := AgentPoolType(*source.Type) + pool.Type = &typeVar + } else { + pool.Type = nil + } + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + pool.UpgradeSettings = &upgradeSetting + } else { + pool.UpgradeSettings = nil + } + + // VmSize + pool.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetReference + if source.VnetSubnetReference != nil { + vnetSubnetReference := source.VnetSubnetReference.Copy() + pool.VnetSubnetReference = &vnetSubnetReference + } else { + pool.VnetSubnetReference = nil + } + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) + pool.WorkloadRuntime = &workloadRuntime + } else { + pool.WorkloadRuntime = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusters_AgentPool_Spec populates the provided destination ManagedClusters_AgentPool_Spec from our ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) AssignProperties_To_ManagedClusters_AgentPool_Spec(destination *v20231001s.ManagedClusters_AgentPool_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(pool.AvailabilityZones) + + // AzureName + destination.AzureName = pool.AzureName + + // CapacityReservationGroupReference + if pool.CapacityReservationGroupReference != nil { + capacityReservationGroupReference := pool.CapacityReservationGroupReference.Copy() + destination.CapacityReservationGroupReference = &capacityReservationGroupReference + } else { + destination.CapacityReservationGroupReference = nil + } + + // Count + destination.Count = genruntime.ClonePointerToInt(pool.Count) + + // CreationData + if pool.CreationData != nil { + var creationDatum v20231001s.CreationData + err := pool.CreationData.AssignProperties_To_CreationData(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // EnableAutoScaling + if pool.EnableAutoScaling != nil { + enableAutoScaling := *pool.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if pool.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *pool.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if pool.EnableFIPS != nil { + enableFIPS := *pool.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if pool.EnableNodePublicIP != nil { + enableNodePublicIP := *pool.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if pool.EnableUltraSSD != nil { + enableUltraSSD := *pool.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if pool.GpuInstanceProfile != nil { + gpuInstanceProfile := string(*pool.GpuInstanceProfile) + destination.GpuInstanceProfile = &gpuInstanceProfile + } else { + destination.GpuInstanceProfile = nil + } + + // HostGroupReference + if pool.HostGroupReference != nil { + hostGroupReference := pool.HostGroupReference.Copy() + destination.HostGroupReference = &hostGroupReference + } else { + destination.HostGroupReference = nil + } + + // KubeletConfig + if pool.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig + err := pool.KubeletConfig.AssignProperties_To_KubeletConfig(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + if pool.KubeletDiskType != nil { + kubeletDiskType := string(*pool.KubeletDiskType) + destination.KubeletDiskType = &kubeletDiskType + } else { + destination.KubeletDiskType = nil + } + + // LinuxOSConfig + if pool.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig + err := pool.LinuxOSConfig.AssignProperties_To_LinuxOSConfig(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(pool.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(pool.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(pool.MinCount) + + // Mode + if pool.Mode != nil { + mode := string(*pool.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // NetworkProfile + if pool.NetworkProfile != nil { + var networkProfile v20231001s.AgentPoolNetworkProfile + err := pool.NetworkProfile.AssignProperties_To_AgentPoolNetworkProfile(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolNetworkProfile() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(pool.NodeLabels) + + // NodePublicIPPrefixReference + if pool.NodePublicIPPrefixReference != nil { + nodePublicIPPrefixReference := pool.NodePublicIPPrefixReference.Copy() + destination.NodePublicIPPrefixReference = &nodePublicIPPrefixReference + } else { + destination.NodePublicIPPrefixReference = nil + } + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(pool.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(pool.OrchestratorVersion) + + // OriginalVersion + destination.OriginalVersion = pool.OriginalVersion() + + // OsDiskSizeGB + if pool.OsDiskSizeGB != nil { + osDiskSizeGB := int(*pool.OsDiskSizeGB) + destination.OsDiskSizeGB = &osDiskSizeGB + } else { + destination.OsDiskSizeGB = nil + } + + // OsDiskType + if pool.OsDiskType != nil { + osDiskType := string(*pool.OsDiskType) + destination.OsDiskType = &osDiskType + } else { + destination.OsDiskType = nil + } + + // OsSKU + if pool.OsSKU != nil { + osSKU := string(*pool.OsSKU) + destination.OsSKU = &osSKU + } else { + destination.OsSKU = nil + } + + // OsType + if pool.OsType != nil { + osType := string(*pool.OsType) + destination.OsType = &osType + } else { + destination.OsType = nil + } + + // Owner + if pool.Owner != nil { + owner := pool.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // PodSubnetReference + if pool.PodSubnetReference != nil { + podSubnetReference := pool.PodSubnetReference.Copy() + destination.PodSubnetReference = &podSubnetReference + } else { + destination.PodSubnetReference = nil + } + + // PowerState + if pool.PowerState != nil { + var powerState v20231001s.PowerState + err := pool.PowerState.AssignProperties_To_PowerState(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // ProximityPlacementGroupReference + if pool.ProximityPlacementGroupReference != nil { + proximityPlacementGroupReference := pool.ProximityPlacementGroupReference.Copy() + destination.ProximityPlacementGroupReference = &proximityPlacementGroupReference + } else { + destination.ProximityPlacementGroupReference = nil + } + + // ScaleDownMode + if pool.ScaleDownMode != nil { + scaleDownMode := string(*pool.ScaleDownMode) + destination.ScaleDownMode = &scaleDownMode + } else { + destination.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if pool.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := string(*pool.ScaleSetEvictionPolicy) + destination.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + destination.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if pool.ScaleSetPriority != nil { + scaleSetPriority := string(*pool.ScaleSetPriority) + destination.ScaleSetPriority = &scaleSetPriority + } else { + destination.ScaleSetPriority = nil + } + + // SpotMaxPrice + if pool.SpotMaxPrice != nil { + spotMaxPrice := *pool.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(pool.Tags) + + // Type + if pool.Type != nil { + typeVar := string(*pool.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UpgradeSettings + if pool.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings + err := pool.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(pool.VmSize) + + // VnetSubnetReference + if pool.VnetSubnetReference != nil { + vnetSubnetReference := pool.VnetSubnetReference.Copy() + destination.VnetSubnetReference = &vnetSubnetReference + } else { + destination.VnetSubnetReference = nil + } + + // WorkloadRuntime + if pool.WorkloadRuntime != nil { + workloadRuntime := string(*pool.WorkloadRuntime) + destination.WorkloadRuntime = &workloadRuntime + } else { + destination.WorkloadRuntime = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ManagedClusters_AgentPool_STATUS populates our ManagedClusters_AgentPool_Spec from the provided source ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_Spec) Initialize_From_ManagedClusters_AgentPool_STATUS(source *ManagedClusters_AgentPool_STATUS) error { + + // AvailabilityZones + pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // Count + pool.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData + err := creationDatum.Initialize_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_CreationData_STATUS() to populate field CreationData") + } + pool.CreationData = &creationDatum + } else { + pool.CreationData = nil + } + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } else { + pool.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + pool.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + pool.EnableFIPS = &enableFIPS + } else { + pool.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } else { + pool.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } else { + pool.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile(*source.GpuInstanceProfile) + pool.GpuInstanceProfile = &gpuInstanceProfile + } else { + pool.GpuInstanceProfile = nil + } + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig + err := kubeletConfig.Initialize_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + pool.KubeletConfig = &kubeletConfig + } else { + pool.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType(*source.KubeletDiskType) + pool.KubeletDiskType = &kubeletDiskType + } else { + pool.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig + err := linuxOSConfig.Initialize_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + pool.LinuxOSConfig = &linuxOSConfig + } else { + pool.LinuxOSConfig = nil + } + + // MaxCount + pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode(*source.Mode) + pool.Mode = &mode + } else { + pool.Mode = nil + } + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile + err := networkProfile.Initialize_From_AgentPoolNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + pool.NetworkProfile = &networkProfile + } else { + pool.NetworkProfile = nil + } + + // NodeLabels + pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodeTaints + pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + if source.OsDiskSizeGB != nil { + osDiskSizeGB := ContainerServiceOSDisk(*source.OsDiskSizeGB) + pool.OsDiskSizeGB = &osDiskSizeGB + } else { + pool.OsDiskSizeGB = nil + } + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType(*source.OsDiskType) + pool.OsDiskType = &osDiskType + } else { + pool.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU(*source.OsSKU) + pool.OsSKU = &osSKU + } else { + pool.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType(*source.OsType) + pool.OsType = &osType + } else { + pool.OsType = nil + } + + // PowerState + if source.PowerState != nil { + var powerState PowerState + err := powerState.Initialize_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PowerState_STATUS() to populate field PowerState") + } + pool.PowerState = &powerState + } else { + pool.PowerState = nil + } + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode(*source.ScaleDownMode) + pool.ScaleDownMode = &scaleDownMode + } else { + pool.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy(*source.ScaleSetEvictionPolicy) + pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + pool.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority(*source.ScaleSetPriority) + pool.ScaleSetPriority = &scaleSetPriority + } else { + pool.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } else { + pool.SpotMaxPrice = nil + } + + // Tags + pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + if source.Type != nil { + typeVar := AgentPoolType(*source.Type) + pool.Type = &typeVar + } else { + pool.Type = nil + } + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings + err := upgradeSetting.Initialize_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + pool.UpgradeSettings = &upgradeSetting + } else { + pool.UpgradeSettings = nil + } + + // VmSize + pool.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime(*source.WorkloadRuntime) + pool.WorkloadRuntime = &workloadRuntime + } else { + pool.WorkloadRuntime = nil + } + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (pool *ManagedClusters_AgentPool_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (pool *ManagedClusters_AgentPool_Spec) SetAzureName(azureName string) { + pool.AzureName = azureName +} + +type ManagedClusters_AgentPool_STATUS struct { + // AvailabilityZones: The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType + // property is 'VirtualMachineScaleSets'. + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // CapacityReservationGroupID: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // Count: Number of agents (VMs) to host docker containers. Allowed values must be in the range of 0 to 1000 (inclusive) + // for user pools and in the range of 1 to 1000 (inclusive) for system pools. The default value is 1. + Count *int `json:"count,omitempty"` + + // CreationData: CreationData to be used to specify the source Snapshot ID if the node pool will be created/upgraded using + // a snapshot. + CreationData *CreationData_STATUS `json:"creationData,omitempty"` + + // CurrentOrchestratorVersion: If orchestratorVersion is a fully specified version , this field will be + // exactly equal to it. If orchestratorVersion is , this field will contain the full + // version being used. + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + + // EnableAutoScaling: Whether to enable auto-scaler + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + + // EnableEncryptionAtHost: This is only supported on certain VM sizes and in certain Azure regions. For more information, + // see: https://docs.microsoft.com/azure/aks/enable-host-encryption + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + + // EnableFIPS: See [Add a FIPS-enabled node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more + // details. + EnableFIPS *bool `json:"enableFIPS,omitempty"` + + // EnableNodePublicIP: Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. + // A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine + // to minimize hops. For more information see [assigning a public IP per + // node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The + // default is false. + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + + // EnableUltraSSD: Whether to enable UltraSSD + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + + // GpuInstanceProfile: GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. + GpuInstanceProfile *GPUInstanceProfile_STATUS `json:"gpuInstanceProfile,omitempty"` + + // HostGroupID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupID *string `json:"hostGroupID,omitempty"` + + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // KubeletConfig: The Kubelet configuration on the agent pool nodes. + KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` + + // KubeletDiskType: Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral + // storage. + KubeletDiskType *KubeletDiskType_STATUS `json:"kubeletDiskType,omitempty"` + + // LinuxOSConfig: The OS configuration of Linux agent nodes. + LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` + + // MaxCount: The maximum number of nodes for auto-scaling + MaxCount *int `json:"maxCount,omitempty"` + + // MaxPods: The maximum number of pods that can run on a node. + MaxPods *int `json:"maxPods,omitempty"` + + // MinCount: The minimum number of nodes for auto-scaling + MinCount *int `json:"minCount,omitempty"` + + // Mode: A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool + // restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools + Mode *AgentPoolMode_STATUS `json:"mode,omitempty"` + + // Name: The name of the resource that is unique within a resource group. This name can be used to access the resource. + Name *string `json:"name,omitempty"` + + // NetworkProfile: Network-related settings of an agent pool. + NetworkProfile *AgentPoolNetworkProfile_STATUS `json:"networkProfile,omitempty"` + + // NodeImageVersion: The version of node image + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + + // NodeLabels: The node labels to be persisted across all nodes in agent pool. + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixID: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + + // NodeTaints: The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule. + NodeTaints []string `json:"nodeTaints,omitempty"` + + // OrchestratorVersion: Both patch version (e.g. 1.20.13) and (e.g. 1.20) are supported. + // When is specified, the latest supported GA patch version is chosen automatically. Updating the cluster + // with the same once it has been created (e.g. 1.14.x -> 1.14) will not trigger an upgrade, even if a newer + // patch version is available. As a best practice, you should upgrade all node pools in an AKS cluster to the same + // Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor + // version must be within two minor versions of the control plane version. The node pool version cannot be greater than the + // control plane version. For more information see [upgrading a node + // pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool). + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + + // OsDiskType: The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested + // OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral + // OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). + OsDiskType *OSDiskType_STATUS `json:"osDiskType,omitempty"` + + // OsSKU: Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 + // when Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. + OsSKU *OSSKU_STATUS `json:"osSKU,omitempty"` + + // OsType: The operating system type. The default is Linux. + OsType *OSType_STATUS `json:"osType,omitempty"` + + // PodSubnetID: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is + // of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetID *string `json:"podSubnetID,omitempty"` + + // PowerState: When an Agent Pool is first created it is initially Running. The Agent Pool can be stopped by setting this + // field to Stopped. A stopped Agent Pool stops all of its VMs and does not accrue billing charges. An Agent Pool can only + // be stopped if it is Running and provisioning state is Succeeded + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + + // PropertiesType: The type of Agent Pool. + PropertiesType *AgentPoolType_STATUS `json:"properties_type,omitempty"` + + // ProvisioningState: The current deployment or provisioning state. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // ProximityPlacementGroupID: The ID for Proximity Placement Group. + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + + // ScaleDownMode: This also effects the cluster autoscaler behavior. If not specified, it defaults to Delete. + ScaleDownMode *ScaleDownMode_STATUS `json:"scaleDownMode,omitempty"` + + // ScaleSetEvictionPolicy: This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is + // 'Delete'. + ScaleSetEvictionPolicy *ScaleSetEvictionPolicy_STATUS `json:"scaleSetEvictionPolicy,omitempty"` + + // ScaleSetPriority: The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'. + ScaleSetPriority *ScaleSetPriority_STATUS `json:"scaleSetPriority,omitempty"` + + // SpotMaxPrice: Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any + // on-demand price. For more details on spot pricing, see [spot VMs + // pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing) + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + + // Tags: The tags to be persisted on the agent pool virtual machine scale set. + Tags map[string]string `json:"tags,omitempty"` + + // Type: Resource type + Type *string `json:"type,omitempty"` + + // UpgradeSettings: Settings for upgrading the agentpool + UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + + // VmSize: VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods + // might fail to run correctly. For more details on restricted VM sizes, see: + // https://docs.microsoft.com/azure/aks/quotas-skus-regions + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetID: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, + // this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + + // WorkloadRuntime: Determines the type of workload a node can run. + WorkloadRuntime *WorkloadRuntime_STATUS `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ManagedClusters_AgentPool_STATUS{} + +// ConvertStatusFrom populates our ManagedClusters_AgentPool_STATUS from the provided source +func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20231001s.ManagedClusters_AgentPool_STATUS) + if ok { + // Populate our instance from source + return pool.AssignProperties_From_ManagedClusters_AgentPool_STATUS(src) + } + + // Convert to an intermediate form + src = &v20231001s.ManagedClusters_AgentPool_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = pool.AssignProperties_From_ManagedClusters_AgentPool_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20231001s.ManagedClusters_AgentPool_STATUS) + if ok { + // Populate destination from our instance + return pool.AssignProperties_To_ManagedClusters_AgentPool_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20231001s.ManagedClusters_AgentPool_STATUS{} + err := pool.AssignProperties_To_ManagedClusters_AgentPool_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } + + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } + + return nil +} + +var _ genruntime.FromARMConverter = &ManagedClusters_AgentPool_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (pool *ManagedClusters_AgentPool_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ManagedClusters_AgentPool_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (pool *ManagedClusters_AgentPool_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ManagedClusters_AgentPool_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ManagedClusters_AgentPool_STATUS_ARM, got %T", armInput) + } + + // Set property "AvailabilityZones": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AvailabilityZones { + pool.AvailabilityZones = append(pool.AvailabilityZones, item) + } + } + + // Set property "CapacityReservationGroupID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CapacityReservationGroupID != nil { + capacityReservationGroupID := *typedInput.Properties.CapacityReservationGroupID + pool.CapacityReservationGroupID = &capacityReservationGroupID + } + } + + // no assignment for property "Conditions" + + // Set property "Count": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Count != nil { + count := *typedInput.Properties.Count + pool.Count = &count + } + } + + // Set property "CreationData": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CreationData != nil { + var creationData1 CreationData_STATUS + err := creationData1.PopulateFromARM(owner, *typedInput.Properties.CreationData) + if err != nil { + return err + } + creationData := creationData1 + pool.CreationData = &creationData + } + } + + // Set property "CurrentOrchestratorVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CurrentOrchestratorVersion != nil { + currentOrchestratorVersion := *typedInput.Properties.CurrentOrchestratorVersion + pool.CurrentOrchestratorVersion = ¤tOrchestratorVersion + } + } + + // Set property "EnableAutoScaling": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableAutoScaling != nil { + enableAutoScaling := *typedInput.Properties.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } + } + + // Set property "EnableEncryptionAtHost": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *typedInput.Properties.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } + } + + // Set property "EnableFIPS": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableFIPS != nil { + enableFIPS := *typedInput.Properties.EnableFIPS + pool.EnableFIPS = &enableFIPS + } + } + + // Set property "EnableNodePublicIP": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableNodePublicIP != nil { + enableNodePublicIP := *typedInput.Properties.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } + } + + // Set property "EnableUltraSSD": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableUltraSSD != nil { + enableUltraSSD := *typedInput.Properties.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } + } + + // Set property "GpuInstanceProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.GpuInstanceProfile != nil { + gpuInstanceProfile := *typedInput.Properties.GpuInstanceProfile + pool.GpuInstanceProfile = &gpuInstanceProfile + } + } + + // Set property "HostGroupID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.HostGroupID != nil { + hostGroupID := *typedInput.Properties.HostGroupID + pool.HostGroupID = &hostGroupID + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + pool.Id = &id + } + + // Set property "KubeletConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubeletConfig != nil { + var kubeletConfig1 KubeletConfig_STATUS + err := kubeletConfig1.PopulateFromARM(owner, *typedInput.Properties.KubeletConfig) + if err != nil { + return err + } + kubeletConfig := kubeletConfig1 + pool.KubeletConfig = &kubeletConfig + } + } + + // Set property "KubeletDiskType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.KubeletDiskType != nil { + kubeletDiskType := *typedInput.Properties.KubeletDiskType + pool.KubeletDiskType = &kubeletDiskType + } + } + + // Set property "LinuxOSConfig": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.LinuxOSConfig != nil { + var linuxOSConfig1 LinuxOSConfig_STATUS + err := linuxOSConfig1.PopulateFromARM(owner, *typedInput.Properties.LinuxOSConfig) + if err != nil { + return err + } + linuxOSConfig := linuxOSConfig1 + pool.LinuxOSConfig = &linuxOSConfig + } + } + + // Set property "MaxCount": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MaxCount != nil { + maxCount := *typedInput.Properties.MaxCount + pool.MaxCount = &maxCount + } + } + + // Set property "MaxPods": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MaxPods != nil { + maxPods := *typedInput.Properties.MaxPods + pool.MaxPods = &maxPods + } + } + + // Set property "MinCount": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.MinCount != nil { + minCount := *typedInput.Properties.MinCount + pool.MinCount = &minCount + } + } + + // Set property "Mode": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Mode != nil { + mode := *typedInput.Properties.Mode + pool.Mode = &mode + } + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + pool.Name = &name + } + + // Set property "NetworkProfile": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NetworkProfile != nil { + var networkProfile1 AgentPoolNetworkProfile_STATUS + err := networkProfile1.PopulateFromARM(owner, *typedInput.Properties.NetworkProfile) + if err != nil { + return err + } + networkProfile := networkProfile1 + pool.NetworkProfile = &networkProfile + } + } + + // Set property "NodeImageVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodeImageVersion != nil { + nodeImageVersion := *typedInput.Properties.NodeImageVersion + pool.NodeImageVersion = &nodeImageVersion + } + } + + // Set property "NodeLabels": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodeLabels != nil { + pool.NodeLabels = make(map[string]string, len(typedInput.Properties.NodeLabels)) + for key, value := range typedInput.Properties.NodeLabels { + pool.NodeLabels[key] = value + } + } + } + + // Set property "NodePublicIPPrefixID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NodePublicIPPrefixID != nil { + nodePublicIPPrefixID := *typedInput.Properties.NodePublicIPPrefixID + pool.NodePublicIPPrefixID = &nodePublicIPPrefixID + } + } + + // Set property "NodeTaints": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.NodeTaints { + pool.NodeTaints = append(pool.NodeTaints, item) + } + } + + // Set property "OrchestratorVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OrchestratorVersion != nil { + orchestratorVersion := *typedInput.Properties.OrchestratorVersion + pool.OrchestratorVersion = &orchestratorVersion + } + } + + // Set property "OsDiskSizeGB": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsDiskSizeGB != nil { + osDiskSizeGB := *typedInput.Properties.OsDiskSizeGB + pool.OsDiskSizeGB = &osDiskSizeGB + } + } + + // Set property "OsDiskType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsDiskType != nil { + osDiskType := *typedInput.Properties.OsDiskType + pool.OsDiskType = &osDiskType + } + } + + // Set property "OsSKU": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsSKU != nil { + osSKU := *typedInput.Properties.OsSKU + pool.OsSKU = &osSKU + } + } + + // Set property "OsType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.OsType != nil { + osType := *typedInput.Properties.OsType + pool.OsType = &osType + } + } + + // Set property "PodSubnetID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PodSubnetID != nil { + podSubnetID := *typedInput.Properties.PodSubnetID + pool.PodSubnetID = &podSubnetID + } + } + + // Set property "PowerState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PowerState != nil { + var powerState1 PowerState_STATUS + err := powerState1.PopulateFromARM(owner, *typedInput.Properties.PowerState) + if err != nil { + return err + } + powerState := powerState1 + pool.PowerState = &powerState + } + } + + // Set property "PropertiesType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Type != nil { + propertiesType := *typedInput.Properties.Type + pool.PropertiesType = &propertiesType + } + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + provisioningState := *typedInput.Properties.ProvisioningState + pool.ProvisioningState = &provisioningState + } + } + + // Set property "ProximityPlacementGroupID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProximityPlacementGroupID != nil { + proximityPlacementGroupID := *typedInput.Properties.ProximityPlacementGroupID + pool.ProximityPlacementGroupID = &proximityPlacementGroupID + } + } + + // Set property "ScaleDownMode": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleDownMode != nil { + scaleDownMode := *typedInput.Properties.ScaleDownMode + pool.ScaleDownMode = &scaleDownMode + } + } + + // Set property "ScaleSetEvictionPolicy": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := *typedInput.Properties.ScaleSetEvictionPolicy + pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } + } + + // Set property "ScaleSetPriority": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScaleSetPriority != nil { + scaleSetPriority := *typedInput.Properties.ScaleSetPriority + pool.ScaleSetPriority = &scaleSetPriority + } + } + + // Set property "SpotMaxPrice": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.SpotMaxPrice != nil { + spotMaxPrice := *typedInput.Properties.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } + } + + // Set property "Tags": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Tags != nil { + pool.Tags = make(map[string]string, len(typedInput.Properties.Tags)) + for key, value := range typedInput.Properties.Tags { + pool.Tags[key] = value + } + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + pool.Type = &typeVar + } + + // Set property "UpgradeSettings": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.UpgradeSettings != nil { + var upgradeSettings1 AgentPoolUpgradeSettings_STATUS + err := upgradeSettings1.PopulateFromARM(owner, *typedInput.Properties.UpgradeSettings) + if err != nil { + return err + } + upgradeSettings := upgradeSettings1 + pool.UpgradeSettings = &upgradeSettings + } + } + + // Set property "VmSize": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VmSize != nil { + vmSize := *typedInput.Properties.VmSize + pool.VmSize = &vmSize + } + } + + // Set property "VnetSubnetID": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VnetSubnetID != nil { + vnetSubnetID := *typedInput.Properties.VnetSubnetID + pool.VnetSubnetID = &vnetSubnetID + } + } + + // Set property "WorkloadRuntime": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.WorkloadRuntime != nil { + workloadRuntime := *typedInput.Properties.WorkloadRuntime + pool.WorkloadRuntime = &workloadRuntime + } + } + + // No error + return nil +} + +// AssignProperties_From_ManagedClusters_AgentPool_STATUS populates our ManagedClusters_AgentPool_STATUS from the provided source ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) AssignProperties_From_ManagedClusters_AgentPool_STATUS(source *v20231001s.ManagedClusters_AgentPool_STATUS) error { + + // AvailabilityZones + pool.AvailabilityZones = genruntime.CloneSliceOfString(source.AvailabilityZones) + + // CapacityReservationGroupID + pool.CapacityReservationGroupID = genruntime.ClonePointerToString(source.CapacityReservationGroupID) + + // Conditions + pool.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // Count + pool.Count = genruntime.ClonePointerToInt(source.Count) + + // CreationData + if source.CreationData != nil { + var creationDatum CreationData_STATUS + err := creationDatum.AssignProperties_From_CreationData_STATUS(source.CreationData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CreationData_STATUS() to populate field CreationData") + } + pool.CreationData = &creationDatum + } else { + pool.CreationData = nil + } + + // CurrentOrchestratorVersion + pool.CurrentOrchestratorVersion = genruntime.ClonePointerToString(source.CurrentOrchestratorVersion) + + // EnableAutoScaling + if source.EnableAutoScaling != nil { + enableAutoScaling := *source.EnableAutoScaling + pool.EnableAutoScaling = &enableAutoScaling + } else { + pool.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if source.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *source.EnableEncryptionAtHost + pool.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + pool.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if source.EnableFIPS != nil { + enableFIPS := *source.EnableFIPS + pool.EnableFIPS = &enableFIPS + } else { + pool.EnableFIPS = nil + } + + // EnableNodePublicIP + if source.EnableNodePublicIP != nil { + enableNodePublicIP := *source.EnableNodePublicIP + pool.EnableNodePublicIP = &enableNodePublicIP + } else { + pool.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if source.EnableUltraSSD != nil { + enableUltraSSD := *source.EnableUltraSSD + pool.EnableUltraSSD = &enableUltraSSD + } else { + pool.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if source.GpuInstanceProfile != nil { + gpuInstanceProfile := GPUInstanceProfile_STATUS(*source.GpuInstanceProfile) + pool.GpuInstanceProfile = &gpuInstanceProfile + } else { + pool.GpuInstanceProfile = nil + } + + // HostGroupID + pool.HostGroupID = genruntime.ClonePointerToString(source.HostGroupID) + + // Id + pool.Id = genruntime.ClonePointerToString(source.Id) + + // KubeletConfig + if source.KubeletConfig != nil { + var kubeletConfig KubeletConfig_STATUS + err := kubeletConfig.AssignProperties_From_KubeletConfig_STATUS(source.KubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_KubeletConfig_STATUS() to populate field KubeletConfig") + } + pool.KubeletConfig = &kubeletConfig + } else { + pool.KubeletConfig = nil + } + + // KubeletDiskType + if source.KubeletDiskType != nil { + kubeletDiskType := KubeletDiskType_STATUS(*source.KubeletDiskType) + pool.KubeletDiskType = &kubeletDiskType + } else { + pool.KubeletDiskType = nil + } + + // LinuxOSConfig + if source.LinuxOSConfig != nil { + var linuxOSConfig LinuxOSConfig_STATUS + err := linuxOSConfig.AssignProperties_From_LinuxOSConfig_STATUS(source.LinuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + pool.LinuxOSConfig = &linuxOSConfig + } else { + pool.LinuxOSConfig = nil + } + + // MaxCount + pool.MaxCount = genruntime.ClonePointerToInt(source.MaxCount) + + // MaxPods + pool.MaxPods = genruntime.ClonePointerToInt(source.MaxPods) + + // MinCount + pool.MinCount = genruntime.ClonePointerToInt(source.MinCount) + + // Mode + if source.Mode != nil { + mode := AgentPoolMode_STATUS(*source.Mode) + pool.Mode = &mode + } else { + pool.Mode = nil + } + + // Name + pool.Name = genruntime.ClonePointerToString(source.Name) + + // NetworkProfile + if source.NetworkProfile != nil { + var networkProfile AgentPoolNetworkProfile_STATUS + err := networkProfile.AssignProperties_From_AgentPoolNetworkProfile_STATUS(source.NetworkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + pool.NetworkProfile = &networkProfile + } else { + pool.NetworkProfile = nil + } + + // NodeImageVersion + pool.NodeImageVersion = genruntime.ClonePointerToString(source.NodeImageVersion) + + // NodeLabels + pool.NodeLabels = genruntime.CloneMapOfStringToString(source.NodeLabels) + + // NodePublicIPPrefixID + pool.NodePublicIPPrefixID = genruntime.ClonePointerToString(source.NodePublicIPPrefixID) + + // NodeTaints + pool.NodeTaints = genruntime.CloneSliceOfString(source.NodeTaints) + + // OrchestratorVersion + pool.OrchestratorVersion = genruntime.ClonePointerToString(source.OrchestratorVersion) + + // OsDiskSizeGB + pool.OsDiskSizeGB = genruntime.ClonePointerToInt(source.OsDiskSizeGB) + + // OsDiskType + if source.OsDiskType != nil { + osDiskType := OSDiskType_STATUS(*source.OsDiskType) + pool.OsDiskType = &osDiskType + } else { + pool.OsDiskType = nil + } + + // OsSKU + if source.OsSKU != nil { + osSKU := OSSKU_STATUS(*source.OsSKU) + pool.OsSKU = &osSKU + } else { + pool.OsSKU = nil + } + + // OsType + if source.OsType != nil { + osType := OSType_STATUS(*source.OsType) + pool.OsType = &osType + } else { + pool.OsType = nil + } + + // PodSubnetID + pool.PodSubnetID = genruntime.ClonePointerToString(source.PodSubnetID) + + // PowerState + if source.PowerState != nil { + var powerState PowerState_STATUS + err := powerState.AssignProperties_From_PowerState_STATUS(source.PowerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PowerState_STATUS() to populate field PowerState") + } + pool.PowerState = &powerState + } else { + pool.PowerState = nil + } + + // PropertiesType + if source.PropertiesType != nil { + propertiesType := AgentPoolType_STATUS(*source.PropertiesType) + pool.PropertiesType = &propertiesType + } else { + pool.PropertiesType = nil + } + + // ProvisioningState + pool.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // ProximityPlacementGroupID + pool.ProximityPlacementGroupID = genruntime.ClonePointerToString(source.ProximityPlacementGroupID) + + // ScaleDownMode + if source.ScaleDownMode != nil { + scaleDownMode := ScaleDownMode_STATUS(*source.ScaleDownMode) + pool.ScaleDownMode = &scaleDownMode + } else { + pool.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if source.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := ScaleSetEvictionPolicy_STATUS(*source.ScaleSetEvictionPolicy) + pool.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + pool.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if source.ScaleSetPriority != nil { + scaleSetPriority := ScaleSetPriority_STATUS(*source.ScaleSetPriority) + pool.ScaleSetPriority = &scaleSetPriority + } else { + pool.ScaleSetPriority = nil + } + + // SpotMaxPrice + if source.SpotMaxPrice != nil { + spotMaxPrice := *source.SpotMaxPrice + pool.SpotMaxPrice = &spotMaxPrice + } else { + pool.SpotMaxPrice = nil + } + + // Tags + pool.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + pool.Type = genruntime.ClonePointerToString(source.Type) + + // UpgradeSettings + if source.UpgradeSettings != nil { + var upgradeSetting AgentPoolUpgradeSettings_STATUS + err := upgradeSetting.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source.UpgradeSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + pool.UpgradeSettings = &upgradeSetting + } else { + pool.UpgradeSettings = nil + } + + // VmSize + pool.VmSize = genruntime.ClonePointerToString(source.VmSize) + + // VnetSubnetID + pool.VnetSubnetID = genruntime.ClonePointerToString(source.VnetSubnetID) + + // WorkloadRuntime + if source.WorkloadRuntime != nil { + workloadRuntime := WorkloadRuntime_STATUS(*source.WorkloadRuntime) + pool.WorkloadRuntime = &workloadRuntime + } else { + pool.WorkloadRuntime = nil + } + + // No error + return nil +} + +// AssignProperties_To_ManagedClusters_AgentPool_STATUS populates the provided destination ManagedClusters_AgentPool_STATUS from our ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) AssignProperties_To_ManagedClusters_AgentPool_STATUS(destination *v20231001s.ManagedClusters_AgentPool_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AvailabilityZones + destination.AvailabilityZones = genruntime.CloneSliceOfString(pool.AvailabilityZones) + + // CapacityReservationGroupID + destination.CapacityReservationGroupID = genruntime.ClonePointerToString(pool.CapacityReservationGroupID) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(pool.Conditions) + + // Count + destination.Count = genruntime.ClonePointerToInt(pool.Count) + + // CreationData + if pool.CreationData != nil { + var creationDatum v20231001s.CreationData_STATUS + err := pool.CreationData.AssignProperties_To_CreationData_STATUS(&creationDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CreationData_STATUS() to populate field CreationData") + } + destination.CreationData = &creationDatum + } else { + destination.CreationData = nil + } + + // CurrentOrchestratorVersion + destination.CurrentOrchestratorVersion = genruntime.ClonePointerToString(pool.CurrentOrchestratorVersion) + + // EnableAutoScaling + if pool.EnableAutoScaling != nil { + enableAutoScaling := *pool.EnableAutoScaling + destination.EnableAutoScaling = &enableAutoScaling + } else { + destination.EnableAutoScaling = nil + } + + // EnableEncryptionAtHost + if pool.EnableEncryptionAtHost != nil { + enableEncryptionAtHost := *pool.EnableEncryptionAtHost + destination.EnableEncryptionAtHost = &enableEncryptionAtHost + } else { + destination.EnableEncryptionAtHost = nil + } + + // EnableFIPS + if pool.EnableFIPS != nil { + enableFIPS := *pool.EnableFIPS + destination.EnableFIPS = &enableFIPS + } else { + destination.EnableFIPS = nil + } + + // EnableNodePublicIP + if pool.EnableNodePublicIP != nil { + enableNodePublicIP := *pool.EnableNodePublicIP + destination.EnableNodePublicIP = &enableNodePublicIP + } else { + destination.EnableNodePublicIP = nil + } + + // EnableUltraSSD + if pool.EnableUltraSSD != nil { + enableUltraSSD := *pool.EnableUltraSSD + destination.EnableUltraSSD = &enableUltraSSD + } else { + destination.EnableUltraSSD = nil + } + + // GpuInstanceProfile + if pool.GpuInstanceProfile != nil { + gpuInstanceProfile := string(*pool.GpuInstanceProfile) + destination.GpuInstanceProfile = &gpuInstanceProfile + } else { + destination.GpuInstanceProfile = nil + } + + // HostGroupID + destination.HostGroupID = genruntime.ClonePointerToString(pool.HostGroupID) + + // Id + destination.Id = genruntime.ClonePointerToString(pool.Id) + + // KubeletConfig + if pool.KubeletConfig != nil { + var kubeletConfig v20231001s.KubeletConfig_STATUS + err := pool.KubeletConfig.AssignProperties_To_KubeletConfig_STATUS(&kubeletConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_KubeletConfig_STATUS() to populate field KubeletConfig") + } + destination.KubeletConfig = &kubeletConfig + } else { + destination.KubeletConfig = nil + } + + // KubeletDiskType + if pool.KubeletDiskType != nil { + kubeletDiskType := string(*pool.KubeletDiskType) + destination.KubeletDiskType = &kubeletDiskType + } else { + destination.KubeletDiskType = nil + } + + // LinuxOSConfig + if pool.LinuxOSConfig != nil { + var linuxOSConfig v20231001s.LinuxOSConfig_STATUS + err := pool.LinuxOSConfig.AssignProperties_To_LinuxOSConfig_STATUS(&linuxOSConfig) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_LinuxOSConfig_STATUS() to populate field LinuxOSConfig") + } + destination.LinuxOSConfig = &linuxOSConfig + } else { + destination.LinuxOSConfig = nil + } + + // MaxCount + destination.MaxCount = genruntime.ClonePointerToInt(pool.MaxCount) + + // MaxPods + destination.MaxPods = genruntime.ClonePointerToInt(pool.MaxPods) + + // MinCount + destination.MinCount = genruntime.ClonePointerToInt(pool.MinCount) + + // Mode + if pool.Mode != nil { + mode := string(*pool.Mode) + destination.Mode = &mode + } else { + destination.Mode = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(pool.Name) + + // NetworkProfile + if pool.NetworkProfile != nil { + var networkProfile v20231001s.AgentPoolNetworkProfile_STATUS + err := pool.NetworkProfile.AssignProperties_To_AgentPoolNetworkProfile_STATUS(&networkProfile) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolNetworkProfile_STATUS() to populate field NetworkProfile") + } + destination.NetworkProfile = &networkProfile + } else { + destination.NetworkProfile = nil + } + + // NodeImageVersion + destination.NodeImageVersion = genruntime.ClonePointerToString(pool.NodeImageVersion) + + // NodeLabels + destination.NodeLabels = genruntime.CloneMapOfStringToString(pool.NodeLabels) + + // NodePublicIPPrefixID + destination.NodePublicIPPrefixID = genruntime.ClonePointerToString(pool.NodePublicIPPrefixID) + + // NodeTaints + destination.NodeTaints = genruntime.CloneSliceOfString(pool.NodeTaints) + + // OrchestratorVersion + destination.OrchestratorVersion = genruntime.ClonePointerToString(pool.OrchestratorVersion) + + // OsDiskSizeGB + destination.OsDiskSizeGB = genruntime.ClonePointerToInt(pool.OsDiskSizeGB) + + // OsDiskType + if pool.OsDiskType != nil { + osDiskType := string(*pool.OsDiskType) + destination.OsDiskType = &osDiskType + } else { + destination.OsDiskType = nil + } + + // OsSKU + if pool.OsSKU != nil { + osSKU := string(*pool.OsSKU) + destination.OsSKU = &osSKU + } else { + destination.OsSKU = nil + } + + // OsType + if pool.OsType != nil { + osType := string(*pool.OsType) + destination.OsType = &osType + } else { + destination.OsType = nil + } + + // PodSubnetID + destination.PodSubnetID = genruntime.ClonePointerToString(pool.PodSubnetID) + + // PowerState + if pool.PowerState != nil { + var powerState v20231001s.PowerState_STATUS + err := pool.PowerState.AssignProperties_To_PowerState_STATUS(&powerState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PowerState_STATUS() to populate field PowerState") + } + destination.PowerState = &powerState + } else { + destination.PowerState = nil + } + + // PropertiesType + if pool.PropertiesType != nil { + propertiesType := string(*pool.PropertiesType) + destination.PropertiesType = &propertiesType + } else { + destination.PropertiesType = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(pool.ProvisioningState) + + // ProximityPlacementGroupID + destination.ProximityPlacementGroupID = genruntime.ClonePointerToString(pool.ProximityPlacementGroupID) + + // ScaleDownMode + if pool.ScaleDownMode != nil { + scaleDownMode := string(*pool.ScaleDownMode) + destination.ScaleDownMode = &scaleDownMode + } else { + destination.ScaleDownMode = nil + } + + // ScaleSetEvictionPolicy + if pool.ScaleSetEvictionPolicy != nil { + scaleSetEvictionPolicy := string(*pool.ScaleSetEvictionPolicy) + destination.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy + } else { + destination.ScaleSetEvictionPolicy = nil + } + + // ScaleSetPriority + if pool.ScaleSetPriority != nil { + scaleSetPriority := string(*pool.ScaleSetPriority) + destination.ScaleSetPriority = &scaleSetPriority + } else { + destination.ScaleSetPriority = nil + } + + // SpotMaxPrice + if pool.SpotMaxPrice != nil { + spotMaxPrice := *pool.SpotMaxPrice + destination.SpotMaxPrice = &spotMaxPrice + } else { + destination.SpotMaxPrice = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(pool.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(pool.Type) + + // UpgradeSettings + if pool.UpgradeSettings != nil { + var upgradeSetting v20231001s.AgentPoolUpgradeSettings_STATUS + err := pool.UpgradeSettings.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&upgradeSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AgentPoolUpgradeSettings_STATUS() to populate field UpgradeSettings") + } + destination.UpgradeSettings = &upgradeSetting + } else { + destination.UpgradeSettings = nil + } + + // VmSize + destination.VmSize = genruntime.ClonePointerToString(pool.VmSize) + + // VnetSubnetID + destination.VnetSubnetID = genruntime.ClonePointerToString(pool.VnetSubnetID) + + // WorkloadRuntime + if pool.WorkloadRuntime != nil { + workloadRuntime := string(*pool.WorkloadRuntime) + destination.WorkloadRuntime = &workloadRuntime + } else { + destination.WorkloadRuntime = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool restrictions +// and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools +// +kubebuilder:validation:Enum={"System","User"} +type AgentPoolMode string + +const ( + AgentPoolMode_System = AgentPoolMode("System") + AgentPoolMode_User = AgentPoolMode("User") +) + +// A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool restrictions +// and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools +type AgentPoolMode_STATUS string + +const ( + AgentPoolMode_STATUS_System = AgentPoolMode_STATUS("System") + AgentPoolMode_STATUS_User = AgentPoolMode_STATUS("User") +) + +// Network settings of an agent pool. +type AgentPoolNetworkProfile struct { + // AllowedHostPorts: The port ranges that are allowed to access. The specified ranges are allowed to overlap. + AllowedHostPorts []PortRange `json:"allowedHostPorts,omitempty"` + + // ApplicationSecurityGroupsReferences: The IDs of the application security groups which agent pool will associate when + // created. + ApplicationSecurityGroupsReferences []genruntime.ResourceReference `armReference:"ApplicationSecurityGroups" json:"applicationSecurityGroupsReferences,omitempty"` + + // NodePublicIPTags: IPTags of instance-level public IPs. + NodePublicIPTags []IPTag `json:"nodePublicIPTags,omitempty"` +} + +var _ genruntime.ARMTransformer = &AgentPoolNetworkProfile{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (profile *AgentPoolNetworkProfile) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if profile == nil { + return nil, nil + } + result := &AgentPoolNetworkProfile_ARM{} + + // Set property "AllowedHostPorts": + for _, item := range profile.AllowedHostPorts { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.AllowedHostPorts = append(result.AllowedHostPorts, *item_ARM.(*PortRange_ARM)) + } + + // Set property "ApplicationSecurityGroups": + for _, item := range profile.ApplicationSecurityGroupsReferences { + itemARMID, err := resolved.ResolvedReferences.Lookup(item) + if err != nil { + return nil, err + } + result.ApplicationSecurityGroups = append(result.ApplicationSecurityGroups, itemARMID) + } + + // Set property "NodePublicIPTags": + for _, item := range profile.NodePublicIPTags { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.NodePublicIPTags = append(result.NodePublicIPTags, *item_ARM.(*IPTag_ARM)) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *AgentPoolNetworkProfile) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AgentPoolNetworkProfile_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *AgentPoolNetworkProfile) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AgentPoolNetworkProfile_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AgentPoolNetworkProfile_ARM, got %T", armInput) + } + + // Set property "AllowedHostPorts": + for _, item := range typedInput.AllowedHostPorts { + var item1 PortRange + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.AllowedHostPorts = append(profile.AllowedHostPorts, item1) + } + + // no assignment for property "ApplicationSecurityGroupsReferences" + + // Set property "NodePublicIPTags": + for _, item := range typedInput.NodePublicIPTags { + var item1 IPTag + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.NodePublicIPTags = append(profile.NodePublicIPTags, item1) + } + + // No error + return nil +} + +// AssignProperties_From_AgentPoolNetworkProfile populates our AgentPoolNetworkProfile from the provided source AgentPoolNetworkProfile +func (profile *AgentPoolNetworkProfile) AssignProperties_From_AgentPoolNetworkProfile(source *v20231001s.AgentPoolNetworkProfile) error { + + // AllowedHostPorts + if source.AllowedHostPorts != nil { + allowedHostPortList := make([]PortRange, len(source.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range source.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort PortRange + err := allowedHostPort.AssignProperties_From_PortRange(&allowedHostPortItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PortRange() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + profile.AllowedHostPorts = allowedHostPortList + } else { + profile.AllowedHostPorts = nil + } + + // ApplicationSecurityGroupsReferences + if source.ApplicationSecurityGroupsReferences != nil { + applicationSecurityGroupsReferenceList := make([]genruntime.ResourceReference, len(source.ApplicationSecurityGroupsReferences)) + for applicationSecurityGroupsReferenceIndex, applicationSecurityGroupsReferenceItem := range source.ApplicationSecurityGroupsReferences { + // Shadow the loop variable to avoid aliasing + applicationSecurityGroupsReferenceItem := applicationSecurityGroupsReferenceItem + applicationSecurityGroupsReferenceList[applicationSecurityGroupsReferenceIndex] = applicationSecurityGroupsReferenceItem.Copy() + } + profile.ApplicationSecurityGroupsReferences = applicationSecurityGroupsReferenceList + } else { + profile.ApplicationSecurityGroupsReferences = nil + } + + // NodePublicIPTags + if source.NodePublicIPTags != nil { + nodePublicIPTagList := make([]IPTag, len(source.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range source.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag IPTag + err := nodePublicIPTag.AssignProperties_From_IPTag(&nodePublicIPTagItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IPTag() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + profile.NodePublicIPTags = nodePublicIPTagList + } else { + profile.NodePublicIPTags = nil + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolNetworkProfile populates the provided destination AgentPoolNetworkProfile from our AgentPoolNetworkProfile +func (profile *AgentPoolNetworkProfile) AssignProperties_To_AgentPoolNetworkProfile(destination *v20231001s.AgentPoolNetworkProfile) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowedHostPorts + if profile.AllowedHostPorts != nil { + allowedHostPortList := make([]v20231001s.PortRange, len(profile.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range profile.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort v20231001s.PortRange + err := allowedHostPortItem.AssignProperties_To_PortRange(&allowedHostPort) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PortRange() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + destination.AllowedHostPorts = allowedHostPortList + } else { + destination.AllowedHostPorts = nil + } + + // ApplicationSecurityGroupsReferences + if profile.ApplicationSecurityGroupsReferences != nil { + applicationSecurityGroupsReferenceList := make([]genruntime.ResourceReference, len(profile.ApplicationSecurityGroupsReferences)) + for applicationSecurityGroupsReferenceIndex, applicationSecurityGroupsReferenceItem := range profile.ApplicationSecurityGroupsReferences { + // Shadow the loop variable to avoid aliasing + applicationSecurityGroupsReferenceItem := applicationSecurityGroupsReferenceItem + applicationSecurityGroupsReferenceList[applicationSecurityGroupsReferenceIndex] = applicationSecurityGroupsReferenceItem.Copy() + } + destination.ApplicationSecurityGroupsReferences = applicationSecurityGroupsReferenceList + } else { + destination.ApplicationSecurityGroupsReferences = nil + } + + // NodePublicIPTags + if profile.NodePublicIPTags != nil { + nodePublicIPTagList := make([]v20231001s.IPTag, len(profile.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range profile.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag v20231001s.IPTag + err := nodePublicIPTagItem.AssignProperties_To_IPTag(&nodePublicIPTag) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IPTag() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + destination.NodePublicIPTags = nodePublicIPTagList + } else { + destination.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_AgentPoolNetworkProfile_STATUS populates our AgentPoolNetworkProfile from the provided source AgentPoolNetworkProfile_STATUS +func (profile *AgentPoolNetworkProfile) Initialize_From_AgentPoolNetworkProfile_STATUS(source *AgentPoolNetworkProfile_STATUS) error { + + // AllowedHostPorts + if source.AllowedHostPorts != nil { + allowedHostPortList := make([]PortRange, len(source.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range source.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort PortRange + err := allowedHostPort.Initialize_From_PortRange_STATUS(&allowedHostPortItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PortRange_STATUS() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + profile.AllowedHostPorts = allowedHostPortList + } else { + profile.AllowedHostPorts = nil + } + + // NodePublicIPTags + if source.NodePublicIPTags != nil { + nodePublicIPTagList := make([]IPTag, len(source.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range source.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag IPTag + err := nodePublicIPTag.Initialize_From_IPTag_STATUS(&nodePublicIPTagItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_IPTag_STATUS() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + profile.NodePublicIPTags = nodePublicIPTagList + } else { + profile.NodePublicIPTags = nil + } + + // No error + return nil +} + +// Network settings of an agent pool. +type AgentPoolNetworkProfile_STATUS struct { + // AllowedHostPorts: The port ranges that are allowed to access. The specified ranges are allowed to overlap. + AllowedHostPorts []PortRange_STATUS `json:"allowedHostPorts,omitempty"` + + // ApplicationSecurityGroups: The IDs of the application security groups which agent pool will associate when created. + ApplicationSecurityGroups []string `json:"applicationSecurityGroups,omitempty"` + + // NodePublicIPTags: IPTags of instance-level public IPs. + NodePublicIPTags []IPTag_STATUS `json:"nodePublicIPTags,omitempty"` +} + +var _ genruntime.FromARMConverter = &AgentPoolNetworkProfile_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (profile *AgentPoolNetworkProfile_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AgentPoolNetworkProfile_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (profile *AgentPoolNetworkProfile_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AgentPoolNetworkProfile_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AgentPoolNetworkProfile_STATUS_ARM, got %T", armInput) + } + + // Set property "AllowedHostPorts": + for _, item := range typedInput.AllowedHostPorts { + var item1 PortRange_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.AllowedHostPorts = append(profile.AllowedHostPorts, item1) + } + + // Set property "ApplicationSecurityGroups": + for _, item := range typedInput.ApplicationSecurityGroups { + profile.ApplicationSecurityGroups = append(profile.ApplicationSecurityGroups, item) + } + + // Set property "NodePublicIPTags": + for _, item := range typedInput.NodePublicIPTags { + var item1 IPTag_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + profile.NodePublicIPTags = append(profile.NodePublicIPTags, item1) + } + + // No error + return nil +} + +// AssignProperties_From_AgentPoolNetworkProfile_STATUS populates our AgentPoolNetworkProfile_STATUS from the provided source AgentPoolNetworkProfile_STATUS +func (profile *AgentPoolNetworkProfile_STATUS) AssignProperties_From_AgentPoolNetworkProfile_STATUS(source *v20231001s.AgentPoolNetworkProfile_STATUS) error { + + // AllowedHostPorts + if source.AllowedHostPorts != nil { + allowedHostPortList := make([]PortRange_STATUS, len(source.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range source.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort PortRange_STATUS + err := allowedHostPort.AssignProperties_From_PortRange_STATUS(&allowedHostPortItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PortRange_STATUS() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + profile.AllowedHostPorts = allowedHostPortList + } else { + profile.AllowedHostPorts = nil + } + + // ApplicationSecurityGroups + profile.ApplicationSecurityGroups = genruntime.CloneSliceOfString(source.ApplicationSecurityGroups) + + // NodePublicIPTags + if source.NodePublicIPTags != nil { + nodePublicIPTagList := make([]IPTag_STATUS, len(source.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range source.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag IPTag_STATUS + err := nodePublicIPTag.AssignProperties_From_IPTag_STATUS(&nodePublicIPTagItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IPTag_STATUS() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + profile.NodePublicIPTags = nodePublicIPTagList + } else { + profile.NodePublicIPTags = nil + } + + // No error + return nil +} + +// AssignProperties_To_AgentPoolNetworkProfile_STATUS populates the provided destination AgentPoolNetworkProfile_STATUS from our AgentPoolNetworkProfile_STATUS +func (profile *AgentPoolNetworkProfile_STATUS) AssignProperties_To_AgentPoolNetworkProfile_STATUS(destination *v20231001s.AgentPoolNetworkProfile_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowedHostPorts + if profile.AllowedHostPorts != nil { + allowedHostPortList := make([]v20231001s.PortRange_STATUS, len(profile.AllowedHostPorts)) + for allowedHostPortIndex, allowedHostPortItem := range profile.AllowedHostPorts { + // Shadow the loop variable to avoid aliasing + allowedHostPortItem := allowedHostPortItem + var allowedHostPort v20231001s.PortRange_STATUS + err := allowedHostPortItem.AssignProperties_To_PortRange_STATUS(&allowedHostPort) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PortRange_STATUS() to populate field AllowedHostPorts") + } + allowedHostPortList[allowedHostPortIndex] = allowedHostPort + } + destination.AllowedHostPorts = allowedHostPortList + } else { + destination.AllowedHostPorts = nil + } + + // ApplicationSecurityGroups + destination.ApplicationSecurityGroups = genruntime.CloneSliceOfString(profile.ApplicationSecurityGroups) + + // NodePublicIPTags + if profile.NodePublicIPTags != nil { + nodePublicIPTagList := make([]v20231001s.IPTag_STATUS, len(profile.NodePublicIPTags)) + for nodePublicIPTagIndex, nodePublicIPTagItem := range profile.NodePublicIPTags { + // Shadow the loop variable to avoid aliasing + nodePublicIPTagItem := nodePublicIPTagItem + var nodePublicIPTag v20231001s.IPTag_STATUS + err := nodePublicIPTagItem.AssignProperties_To_IPTag_STATUS(&nodePublicIPTag) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IPTag_STATUS() to populate field NodePublicIPTags") + } + nodePublicIPTagList[nodePublicIPTagIndex] = nodePublicIPTag + } + destination.NodePublicIPTags = nodePublicIPTagList + } else { + destination.NodePublicIPTags = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The type of Agent Pool. +// +kubebuilder:validation:Enum={"AvailabilitySet","VirtualMachineScaleSets"} +type AgentPoolType string + +const ( + AgentPoolType_AvailabilitySet = AgentPoolType("AvailabilitySet") + AgentPoolType_VirtualMachineScaleSets = AgentPoolType("VirtualMachineScaleSets") +) + +// The type of Agent Pool. +type AgentPoolType_STATUS string + +const ( + AgentPoolType_STATUS_AvailabilitySet = AgentPoolType_STATUS("AvailabilitySet") + AgentPoolType_STATUS_VirtualMachineScaleSets = AgentPoolType_STATUS("VirtualMachineScaleSets") +) + +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings struct { + // +kubebuilder:validation:Maximum=1440 + // +kubebuilder:validation:Minimum=1 + // DrainTimeoutInMinutes: The amount of time (in minutes) to wait on eviction of pods and graceful termination per node. + // This eviction wait time honors waiting on pod disruption budgets. If this time is exceeded, the upgrade fails. If not + // specified, the default is 30 minutes. + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + + // MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it + // is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded + // up. If not specified, the default is 1. For more information, including best practices, see: + // https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade + MaxSurge *string `json:"maxSurge,omitempty"` +} + +var _ genruntime.ARMTransformer = &AgentPoolUpgradeSettings{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (settings *AgentPoolUpgradeSettings) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if settings == nil { + return nil, nil + } + result := &AgentPoolUpgradeSettings_ARM{} + + // Set property "DrainTimeoutInMinutes": + if settings.DrainTimeoutInMinutes != nil { + drainTimeoutInMinutes := *settings.DrainTimeoutInMinutes + result.DrainTimeoutInMinutes = &drainTimeoutInMinutes + } + + // Set property "MaxSurge": + if settings.MaxSurge != nil { + maxSurge := *settings.MaxSurge + result.MaxSurge = &maxSurge + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *AgentPoolUpgradeSettings) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AgentPoolUpgradeSettings_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *AgentPoolUpgradeSettings) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AgentPoolUpgradeSettings_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AgentPoolUpgradeSettings_ARM, got %T", armInput) + } + + // Set property "DrainTimeoutInMinutes": + if typedInput.DrainTimeoutInMinutes != nil { + drainTimeoutInMinutes := *typedInput.DrainTimeoutInMinutes + settings.DrainTimeoutInMinutes = &drainTimeoutInMinutes + } + + // Set property "MaxSurge": + if typedInput.MaxSurge != nil { + maxSurge := *typedInput.MaxSurge + settings.MaxSurge = &maxSurge + } + + // No error + return nil +} + +// AssignProperties_From_AgentPoolUpgradeSettings populates our AgentPoolUpgradeSettings from the provided source AgentPoolUpgradeSettings +func (settings *AgentPoolUpgradeSettings) AssignProperties_From_AgentPoolUpgradeSettings(source *v20231001s.AgentPoolUpgradeSettings) error { + + // DrainTimeoutInMinutes + if source.DrainTimeoutInMinutes != nil { + drainTimeoutInMinute := *source.DrainTimeoutInMinutes + settings.DrainTimeoutInMinutes = &drainTimeoutInMinute + } else { + settings.DrainTimeoutInMinutes = nil + } + + // MaxSurge + settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) + + // No error + return nil +} + +// AssignProperties_To_AgentPoolUpgradeSettings populates the provided destination AgentPoolUpgradeSettings from our AgentPoolUpgradeSettings +func (settings *AgentPoolUpgradeSettings) AssignProperties_To_AgentPoolUpgradeSettings(destination *v20231001s.AgentPoolUpgradeSettings) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DrainTimeoutInMinutes + if settings.DrainTimeoutInMinutes != nil { + drainTimeoutInMinute := *settings.DrainTimeoutInMinutes + destination.DrainTimeoutInMinutes = &drainTimeoutInMinute + } else { + destination.DrainTimeoutInMinutes = nil + } + + // MaxSurge + destination.MaxSurge = genruntime.ClonePointerToString(settings.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_AgentPoolUpgradeSettings_STATUS populates our AgentPoolUpgradeSettings from the provided source AgentPoolUpgradeSettings_STATUS +func (settings *AgentPoolUpgradeSettings) Initialize_From_AgentPoolUpgradeSettings_STATUS(source *AgentPoolUpgradeSettings_STATUS) error { + + // DrainTimeoutInMinutes + if source.DrainTimeoutInMinutes != nil { + drainTimeoutInMinute := *source.DrainTimeoutInMinutes + settings.DrainTimeoutInMinutes = &drainTimeoutInMinute + } else { + settings.DrainTimeoutInMinutes = nil + } + + // MaxSurge + settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) + + // No error + return nil +} + +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings_STATUS struct { + // DrainTimeoutInMinutes: The amount of time (in minutes) to wait on eviction of pods and graceful termination per node. + // This eviction wait time honors waiting on pod disruption budgets. If this time is exceeded, the upgrade fails. If not + // specified, the default is 30 minutes. + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + + // MaxSurge: This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it + // is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded + // up. If not specified, the default is 1. For more information, including best practices, see: + // https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade + MaxSurge *string `json:"maxSurge,omitempty"` +} + +var _ genruntime.FromARMConverter = &AgentPoolUpgradeSettings_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *AgentPoolUpgradeSettings_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AgentPoolUpgradeSettings_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *AgentPoolUpgradeSettings_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AgentPoolUpgradeSettings_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AgentPoolUpgradeSettings_STATUS_ARM, got %T", armInput) + } + + // Set property "DrainTimeoutInMinutes": + if typedInput.DrainTimeoutInMinutes != nil { + drainTimeoutInMinutes := *typedInput.DrainTimeoutInMinutes + settings.DrainTimeoutInMinutes = &drainTimeoutInMinutes + } + + // Set property "MaxSurge": + if typedInput.MaxSurge != nil { + maxSurge := *typedInput.MaxSurge + settings.MaxSurge = &maxSurge + } + + // No error + return nil +} + +// AssignProperties_From_AgentPoolUpgradeSettings_STATUS populates our AgentPoolUpgradeSettings_STATUS from the provided source AgentPoolUpgradeSettings_STATUS +func (settings *AgentPoolUpgradeSettings_STATUS) AssignProperties_From_AgentPoolUpgradeSettings_STATUS(source *v20231001s.AgentPoolUpgradeSettings_STATUS) error { + + // DrainTimeoutInMinutes + settings.DrainTimeoutInMinutes = genruntime.ClonePointerToInt(source.DrainTimeoutInMinutes) + + // MaxSurge + settings.MaxSurge = genruntime.ClonePointerToString(source.MaxSurge) + + // No error + return nil +} + +// AssignProperties_To_AgentPoolUpgradeSettings_STATUS populates the provided destination AgentPoolUpgradeSettings_STATUS from our AgentPoolUpgradeSettings_STATUS +func (settings *AgentPoolUpgradeSettings_STATUS) AssignProperties_To_AgentPoolUpgradeSettings_STATUS(destination *v20231001s.AgentPoolUpgradeSettings_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DrainTimeoutInMinutes + destination.DrainTimeoutInMinutes = genruntime.ClonePointerToInt(settings.DrainTimeoutInMinutes) + + // MaxSurge + destination.MaxSurge = genruntime.ClonePointerToString(settings.MaxSurge) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Maximum=2048 +// +kubebuilder:validation:Minimum=0 +type ContainerServiceOSDisk int + +// Data used when creating a target resource from a source resource. +type CreationData struct { + // SourceResourceReference: This is the ARM ID of the source object to be used to create the target object. + SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"` +} + +var _ genruntime.ARMTransformer = &CreationData{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (data *CreationData) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if data == nil { + return nil, nil + } + result := &CreationData_ARM{} + + // Set property "SourceResourceId": + if data.SourceResourceReference != nil { + sourceResourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*data.SourceResourceReference) + if err != nil { + return nil, err + } + sourceResourceReference := sourceResourceReferenceARMID + result.SourceResourceId = &sourceResourceReference + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (data *CreationData) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CreationData_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (data *CreationData) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + _, ok := armInput.(CreationData_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CreationData_ARM, got %T", armInput) + } + + // no assignment for property "SourceResourceReference" + + // No error + return nil +} + +// AssignProperties_From_CreationData populates our CreationData from the provided source CreationData +func (data *CreationData) AssignProperties_From_CreationData(source *v20231001s.CreationData) error { + + // SourceResourceReference + if source.SourceResourceReference != nil { + sourceResourceReference := source.SourceResourceReference.Copy() + data.SourceResourceReference = &sourceResourceReference + } else { + data.SourceResourceReference = nil + } + + // No error + return nil +} + +// AssignProperties_To_CreationData populates the provided destination CreationData from our CreationData +func (data *CreationData) AssignProperties_To_CreationData(destination *v20231001s.CreationData) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SourceResourceReference + if data.SourceResourceReference != nil { + sourceResourceReference := data.SourceResourceReference.Copy() + destination.SourceResourceReference = &sourceResourceReference + } else { + destination.SourceResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_CreationData_STATUS populates our CreationData from the provided source CreationData_STATUS +func (data *CreationData) Initialize_From_CreationData_STATUS(source *CreationData_STATUS) error { + + // SourceResourceReference + if source.SourceResourceId != nil { + sourceResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.SourceResourceId) + data.SourceResourceReference = &sourceResourceReference + } else { + data.SourceResourceReference = nil + } + + // No error + return nil +} + +// Data used when creating a target resource from a source resource. +type CreationData_STATUS struct { + // SourceResourceId: This is the ARM ID of the source object to be used to create the target object. + SourceResourceId *string `json:"sourceResourceId,omitempty"` +} + +var _ genruntime.FromARMConverter = &CreationData_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (data *CreationData_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CreationData_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (data *CreationData_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(CreationData_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CreationData_STATUS_ARM, got %T", armInput) + } + + // Set property "SourceResourceId": + if typedInput.SourceResourceId != nil { + sourceResourceId := *typedInput.SourceResourceId + data.SourceResourceId = &sourceResourceId + } + + // No error + return nil +} + +// AssignProperties_From_CreationData_STATUS populates our CreationData_STATUS from the provided source CreationData_STATUS +func (data *CreationData_STATUS) AssignProperties_From_CreationData_STATUS(source *v20231001s.CreationData_STATUS) error { + + // SourceResourceId + data.SourceResourceId = genruntime.ClonePointerToString(source.SourceResourceId) + + // No error + return nil +} + +// AssignProperties_To_CreationData_STATUS populates the provided destination CreationData_STATUS from our CreationData_STATUS +func (data *CreationData_STATUS) AssignProperties_To_CreationData_STATUS(destination *v20231001s.CreationData_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SourceResourceId + destination.SourceResourceId = genruntime.ClonePointerToString(data.SourceResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. +// +kubebuilder:validation:Enum={"MIG1g","MIG2g","MIG3g","MIG4g","MIG7g"} +type GPUInstanceProfile string + +const ( + GPUInstanceProfile_MIG1G = GPUInstanceProfile("MIG1g") + GPUInstanceProfile_MIG2G = GPUInstanceProfile("MIG2g") + GPUInstanceProfile_MIG3G = GPUInstanceProfile("MIG3g") + GPUInstanceProfile_MIG4G = GPUInstanceProfile("MIG4g") + GPUInstanceProfile_MIG7G = GPUInstanceProfile("MIG7g") +) + +// GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. +type GPUInstanceProfile_STATUS string + +const ( + GPUInstanceProfile_STATUS_MIG1G = GPUInstanceProfile_STATUS("MIG1g") + GPUInstanceProfile_STATUS_MIG2G = GPUInstanceProfile_STATUS("MIG2g") + GPUInstanceProfile_STATUS_MIG3G = GPUInstanceProfile_STATUS("MIG3g") + GPUInstanceProfile_STATUS_MIG4G = GPUInstanceProfile_STATUS("MIG4g") + GPUInstanceProfile_STATUS_MIG7G = GPUInstanceProfile_STATUS("MIG7g") +) + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig struct { + // AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`). + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + + // +kubebuilder:validation:Minimum=2 + // ContainerLogMaxFiles: The maximum number of container log files that can be present for a container. The number must be + // ≥ 2. + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + + // ContainerLogMaxSizeMB: The maximum size (e.g. 10Mi) of container log file before it is rotated. + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + + // CpuCfsQuota: The default is true. + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + + // CpuCfsQuotaPeriod: The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and + // a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + + // CpuManagerPolicy: The default is 'none'. See [Kubernetes CPU management + // policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more + // information. Allowed values are 'none' and 'static'. + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + + // FailSwapOn: If set to true it will make the Kubelet fail to start if swap is enabled on the node. + FailSwapOn *bool `json:"failSwapOn,omitempty"` + + // ImageGcHighThreshold: To disable image garbage collection, set to 100. The default is 85% + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + + // ImageGcLowThreshold: This cannot be set higher than imageGcHighThreshold. The default is 80% + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + + // PodMaxPids: The maximum number of processes per pod. + PodMaxPids *int `json:"podMaxPids,omitempty"` + + // TopologyManagerPolicy: For more information see [Kubernetes Topology + // Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values + // are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +var _ genruntime.ARMTransformer = &KubeletConfig{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (config *KubeletConfig) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if config == nil { + return nil, nil + } + result := &KubeletConfig_ARM{} + + // Set property "AllowedUnsafeSysctls": + for _, item := range config.AllowedUnsafeSysctls { + result.AllowedUnsafeSysctls = append(result.AllowedUnsafeSysctls, item) + } + + // Set property "ContainerLogMaxFiles": + if config.ContainerLogMaxFiles != nil { + containerLogMaxFiles := *config.ContainerLogMaxFiles + result.ContainerLogMaxFiles = &containerLogMaxFiles + } + + // Set property "ContainerLogMaxSizeMB": + if config.ContainerLogMaxSizeMB != nil { + containerLogMaxSizeMB := *config.ContainerLogMaxSizeMB + result.ContainerLogMaxSizeMB = &containerLogMaxSizeMB + } + + // Set property "CpuCfsQuota": + if config.CpuCfsQuota != nil { + cpuCfsQuota := *config.CpuCfsQuota + result.CpuCfsQuota = &cpuCfsQuota + } + + // Set property "CpuCfsQuotaPeriod": + if config.CpuCfsQuotaPeriod != nil { + cpuCfsQuotaPeriod := *config.CpuCfsQuotaPeriod + result.CpuCfsQuotaPeriod = &cpuCfsQuotaPeriod + } + + // Set property "CpuManagerPolicy": + if config.CpuManagerPolicy != nil { + cpuManagerPolicy := *config.CpuManagerPolicy + result.CpuManagerPolicy = &cpuManagerPolicy + } + + // Set property "FailSwapOn": + if config.FailSwapOn != nil { + failSwapOn := *config.FailSwapOn + result.FailSwapOn = &failSwapOn + } + + // Set property "ImageGcHighThreshold": + if config.ImageGcHighThreshold != nil { + imageGcHighThreshold := *config.ImageGcHighThreshold + result.ImageGcHighThreshold = &imageGcHighThreshold + } + + // Set property "ImageGcLowThreshold": + if config.ImageGcLowThreshold != nil { + imageGcLowThreshold := *config.ImageGcLowThreshold + result.ImageGcLowThreshold = &imageGcLowThreshold + } + + // Set property "PodMaxPids": + if config.PodMaxPids != nil { + podMaxPids := *config.PodMaxPids + result.PodMaxPids = &podMaxPids + } + + // Set property "TopologyManagerPolicy": + if config.TopologyManagerPolicy != nil { + topologyManagerPolicy := *config.TopologyManagerPolicy + result.TopologyManagerPolicy = &topologyManagerPolicy + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *KubeletConfig) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &KubeletConfig_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *KubeletConfig) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(KubeletConfig_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected KubeletConfig_ARM, got %T", armInput) + } + + // Set property "AllowedUnsafeSysctls": + for _, item := range typedInput.AllowedUnsafeSysctls { + config.AllowedUnsafeSysctls = append(config.AllowedUnsafeSysctls, item) + } + + // Set property "ContainerLogMaxFiles": + if typedInput.ContainerLogMaxFiles != nil { + containerLogMaxFiles := *typedInput.ContainerLogMaxFiles + config.ContainerLogMaxFiles = &containerLogMaxFiles + } + + // Set property "ContainerLogMaxSizeMB": + if typedInput.ContainerLogMaxSizeMB != nil { + containerLogMaxSizeMB := *typedInput.ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = &containerLogMaxSizeMB + } + + // Set property "CpuCfsQuota": + if typedInput.CpuCfsQuota != nil { + cpuCfsQuota := *typedInput.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } + + // Set property "CpuCfsQuotaPeriod": + if typedInput.CpuCfsQuotaPeriod != nil { + cpuCfsQuotaPeriod := *typedInput.CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = &cpuCfsQuotaPeriod + } + + // Set property "CpuManagerPolicy": + if typedInput.CpuManagerPolicy != nil { + cpuManagerPolicy := *typedInput.CpuManagerPolicy + config.CpuManagerPolicy = &cpuManagerPolicy + } + + // Set property "FailSwapOn": + if typedInput.FailSwapOn != nil { + failSwapOn := *typedInput.FailSwapOn + config.FailSwapOn = &failSwapOn + } + + // Set property "ImageGcHighThreshold": + if typedInput.ImageGcHighThreshold != nil { + imageGcHighThreshold := *typedInput.ImageGcHighThreshold + config.ImageGcHighThreshold = &imageGcHighThreshold + } + + // Set property "ImageGcLowThreshold": + if typedInput.ImageGcLowThreshold != nil { + imageGcLowThreshold := *typedInput.ImageGcLowThreshold + config.ImageGcLowThreshold = &imageGcLowThreshold + } + + // Set property "PodMaxPids": + if typedInput.PodMaxPids != nil { + podMaxPids := *typedInput.PodMaxPids + config.PodMaxPids = &podMaxPids + } + + // Set property "TopologyManagerPolicy": + if typedInput.TopologyManagerPolicy != nil { + topologyManagerPolicy := *typedInput.TopologyManagerPolicy + config.TopologyManagerPolicy = &topologyManagerPolicy + } + + // No error + return nil +} + +// AssignProperties_From_KubeletConfig populates our KubeletConfig from the provided source KubeletConfig +func (config *KubeletConfig) AssignProperties_From_KubeletConfig(source *v20231001s.KubeletConfig) error { + + // AllowedUnsafeSysctls + config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + if source.ContainerLogMaxFiles != nil { + containerLogMaxFile := *source.ContainerLogMaxFiles + config.ContainerLogMaxFiles = &containerLogMaxFile + } else { + config.ContainerLogMaxFiles = nil + } + + // ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if source.CpuCfsQuota != nil { + cpuCfsQuota := *source.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } else { + config.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) + + // FailSwapOn + if source.FailSwapOn != nil { + failSwapOn := *source.FailSwapOn + config.FailSwapOn = &failSwapOn + } else { + config.FailSwapOn = nil + } + + // ImageGcHighThreshold + config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) + + // ImageGcLowThreshold + config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) + + // PodMaxPids + config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) + + // TopologyManagerPolicy + config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) + + // No error + return nil +} + +// AssignProperties_To_KubeletConfig populates the provided destination KubeletConfig from our KubeletConfig +func (config *KubeletConfig) AssignProperties_To_KubeletConfig(destination *v20231001s.KubeletConfig) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowedUnsafeSysctls + destination.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(config.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + if config.ContainerLogMaxFiles != nil { + containerLogMaxFile := *config.ContainerLogMaxFiles + destination.ContainerLogMaxFiles = &containerLogMaxFile + } else { + destination.ContainerLogMaxFiles = nil + } + + // ContainerLogMaxSizeMB + destination.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(config.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if config.CpuCfsQuota != nil { + cpuCfsQuota := *config.CpuCfsQuota + destination.CpuCfsQuota = &cpuCfsQuota + } else { + destination.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + destination.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(config.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + destination.CpuManagerPolicy = genruntime.ClonePointerToString(config.CpuManagerPolicy) + + // FailSwapOn + if config.FailSwapOn != nil { + failSwapOn := *config.FailSwapOn + destination.FailSwapOn = &failSwapOn + } else { + destination.FailSwapOn = nil + } + + // ImageGcHighThreshold + destination.ImageGcHighThreshold = genruntime.ClonePointerToInt(config.ImageGcHighThreshold) + + // ImageGcLowThreshold + destination.ImageGcLowThreshold = genruntime.ClonePointerToInt(config.ImageGcLowThreshold) + + // PodMaxPids + destination.PodMaxPids = genruntime.ClonePointerToInt(config.PodMaxPids) + + // TopologyManagerPolicy + destination.TopologyManagerPolicy = genruntime.ClonePointerToString(config.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_KubeletConfig_STATUS populates our KubeletConfig from the provided source KubeletConfig_STATUS +func (config *KubeletConfig) Initialize_From_KubeletConfig_STATUS(source *KubeletConfig_STATUS) error { + + // AllowedUnsafeSysctls + config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + if source.ContainerLogMaxFiles != nil { + containerLogMaxFile := *source.ContainerLogMaxFiles + config.ContainerLogMaxFiles = &containerLogMaxFile + } else { + config.ContainerLogMaxFiles = nil + } + + // ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if source.CpuCfsQuota != nil { + cpuCfsQuota := *source.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } else { + config.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) + + // FailSwapOn + if source.FailSwapOn != nil { + failSwapOn := *source.FailSwapOn + config.FailSwapOn = &failSwapOn + } else { + config.FailSwapOn = nil + } + + // ImageGcHighThreshold + config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) + + // ImageGcLowThreshold + config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) + + // PodMaxPids + config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) + + // TopologyManagerPolicy + config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) + + // No error + return nil +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig_STATUS struct { + // AllowedUnsafeSysctls: Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`). + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + + // ContainerLogMaxFiles: The maximum number of container log files that can be present for a container. The number must be + // ≥ 2. + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + + // ContainerLogMaxSizeMB: The maximum size (e.g. 10Mi) of container log file before it is rotated. + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + + // CpuCfsQuota: The default is true. + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + + // CpuCfsQuotaPeriod: The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and + // a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'. + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + + // CpuManagerPolicy: The default is 'none'. See [Kubernetes CPU management + // policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more + // information. Allowed values are 'none' and 'static'. + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + + // FailSwapOn: If set to true it will make the Kubelet fail to start if swap is enabled on the node. + FailSwapOn *bool `json:"failSwapOn,omitempty"` + + // ImageGcHighThreshold: To disable image garbage collection, set to 100. The default is 85% + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + + // ImageGcLowThreshold: This cannot be set higher than imageGcHighThreshold. The default is 80% + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + + // PodMaxPids: The maximum number of processes per pod. + PodMaxPids *int `json:"podMaxPids,omitempty"` + + // TopologyManagerPolicy: For more information see [Kubernetes Topology + // Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values + // are 'none', 'best-effort', 'restricted', and 'single-numa-node'. + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +var _ genruntime.FromARMConverter = &KubeletConfig_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *KubeletConfig_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &KubeletConfig_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *KubeletConfig_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(KubeletConfig_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected KubeletConfig_STATUS_ARM, got %T", armInput) + } + + // Set property "AllowedUnsafeSysctls": + for _, item := range typedInput.AllowedUnsafeSysctls { + config.AllowedUnsafeSysctls = append(config.AllowedUnsafeSysctls, item) + } + + // Set property "ContainerLogMaxFiles": + if typedInput.ContainerLogMaxFiles != nil { + containerLogMaxFiles := *typedInput.ContainerLogMaxFiles + config.ContainerLogMaxFiles = &containerLogMaxFiles + } + + // Set property "ContainerLogMaxSizeMB": + if typedInput.ContainerLogMaxSizeMB != nil { + containerLogMaxSizeMB := *typedInput.ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = &containerLogMaxSizeMB + } + + // Set property "CpuCfsQuota": + if typedInput.CpuCfsQuota != nil { + cpuCfsQuota := *typedInput.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } + + // Set property "CpuCfsQuotaPeriod": + if typedInput.CpuCfsQuotaPeriod != nil { + cpuCfsQuotaPeriod := *typedInput.CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = &cpuCfsQuotaPeriod + } + + // Set property "CpuManagerPolicy": + if typedInput.CpuManagerPolicy != nil { + cpuManagerPolicy := *typedInput.CpuManagerPolicy + config.CpuManagerPolicy = &cpuManagerPolicy + } + + // Set property "FailSwapOn": + if typedInput.FailSwapOn != nil { + failSwapOn := *typedInput.FailSwapOn + config.FailSwapOn = &failSwapOn + } + + // Set property "ImageGcHighThreshold": + if typedInput.ImageGcHighThreshold != nil { + imageGcHighThreshold := *typedInput.ImageGcHighThreshold + config.ImageGcHighThreshold = &imageGcHighThreshold + } + + // Set property "ImageGcLowThreshold": + if typedInput.ImageGcLowThreshold != nil { + imageGcLowThreshold := *typedInput.ImageGcLowThreshold + config.ImageGcLowThreshold = &imageGcLowThreshold + } + + // Set property "PodMaxPids": + if typedInput.PodMaxPids != nil { + podMaxPids := *typedInput.PodMaxPids + config.PodMaxPids = &podMaxPids + } + + // Set property "TopologyManagerPolicy": + if typedInput.TopologyManagerPolicy != nil { + topologyManagerPolicy := *typedInput.TopologyManagerPolicy + config.TopologyManagerPolicy = &topologyManagerPolicy + } + + // No error + return nil +} + +// AssignProperties_From_KubeletConfig_STATUS populates our KubeletConfig_STATUS from the provided source KubeletConfig_STATUS +func (config *KubeletConfig_STATUS) AssignProperties_From_KubeletConfig_STATUS(source *v20231001s.KubeletConfig_STATUS) error { + + // AllowedUnsafeSysctls + config.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(source.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + config.ContainerLogMaxFiles = genruntime.ClonePointerToInt(source.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + config.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(source.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if source.CpuCfsQuota != nil { + cpuCfsQuota := *source.CpuCfsQuota + config.CpuCfsQuota = &cpuCfsQuota + } else { + config.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + config.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(source.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + config.CpuManagerPolicy = genruntime.ClonePointerToString(source.CpuManagerPolicy) + + // FailSwapOn + if source.FailSwapOn != nil { + failSwapOn := *source.FailSwapOn + config.FailSwapOn = &failSwapOn + } else { + config.FailSwapOn = nil + } + + // ImageGcHighThreshold + config.ImageGcHighThreshold = genruntime.ClonePointerToInt(source.ImageGcHighThreshold) + + // ImageGcLowThreshold + config.ImageGcLowThreshold = genruntime.ClonePointerToInt(source.ImageGcLowThreshold) + + // PodMaxPids + config.PodMaxPids = genruntime.ClonePointerToInt(source.PodMaxPids) + + // TopologyManagerPolicy + config.TopologyManagerPolicy = genruntime.ClonePointerToString(source.TopologyManagerPolicy) + + // No error + return nil +} + +// AssignProperties_To_KubeletConfig_STATUS populates the provided destination KubeletConfig_STATUS from our KubeletConfig_STATUS +func (config *KubeletConfig_STATUS) AssignProperties_To_KubeletConfig_STATUS(destination *v20231001s.KubeletConfig_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AllowedUnsafeSysctls + destination.AllowedUnsafeSysctls = genruntime.CloneSliceOfString(config.AllowedUnsafeSysctls) + + // ContainerLogMaxFiles + destination.ContainerLogMaxFiles = genruntime.ClonePointerToInt(config.ContainerLogMaxFiles) + + // ContainerLogMaxSizeMB + destination.ContainerLogMaxSizeMB = genruntime.ClonePointerToInt(config.ContainerLogMaxSizeMB) + + // CpuCfsQuota + if config.CpuCfsQuota != nil { + cpuCfsQuota := *config.CpuCfsQuota + destination.CpuCfsQuota = &cpuCfsQuota + } else { + destination.CpuCfsQuota = nil + } + + // CpuCfsQuotaPeriod + destination.CpuCfsQuotaPeriod = genruntime.ClonePointerToString(config.CpuCfsQuotaPeriod) + + // CpuManagerPolicy + destination.CpuManagerPolicy = genruntime.ClonePointerToString(config.CpuManagerPolicy) + + // FailSwapOn + if config.FailSwapOn != nil { + failSwapOn := *config.FailSwapOn + destination.FailSwapOn = &failSwapOn + } else { + destination.FailSwapOn = nil + } + + // ImageGcHighThreshold + destination.ImageGcHighThreshold = genruntime.ClonePointerToInt(config.ImageGcHighThreshold) + + // ImageGcLowThreshold + destination.ImageGcLowThreshold = genruntime.ClonePointerToInt(config.ImageGcLowThreshold) + + // PodMaxPids + destination.PodMaxPids = genruntime.ClonePointerToInt(config.PodMaxPids) + + // TopologyManagerPolicy + destination.TopologyManagerPolicy = genruntime.ClonePointerToString(config.TopologyManagerPolicy) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. +// +kubebuilder:validation:Enum={"OS","Temporary"} +type KubeletDiskType string + +const ( + KubeletDiskType_OS = KubeletDiskType("OS") + KubeletDiskType_Temporary = KubeletDiskType("Temporary") +) + +// Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. +type KubeletDiskType_STATUS string + +const ( + KubeletDiskType_STATUS_OS = KubeletDiskType_STATUS("OS") + KubeletDiskType_STATUS_Temporary = KubeletDiskType_STATUS("Temporary") +) + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig struct { + // SwapFileSizeMB: The size in MB of a swap file that will be created on each node. + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + + // Sysctls: Sysctl settings for Linux agent nodes. + Sysctls *SysctlConfig `json:"sysctls,omitempty"` + + // TransparentHugePageDefrag: Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is + // 'madvise'. For more information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + + // TransparentHugePageEnabled: Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more + // information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +var _ genruntime.ARMTransformer = &LinuxOSConfig{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (config *LinuxOSConfig) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if config == nil { + return nil, nil + } + result := &LinuxOSConfig_ARM{} + + // Set property "SwapFileSizeMB": + if config.SwapFileSizeMB != nil { + swapFileSizeMB := *config.SwapFileSizeMB + result.SwapFileSizeMB = &swapFileSizeMB + } + + // Set property "Sysctls": + if config.Sysctls != nil { + sysctls_ARM, err := (*config.Sysctls).ConvertToARM(resolved) + if err != nil { + return nil, err + } + sysctls := *sysctls_ARM.(*SysctlConfig_ARM) + result.Sysctls = &sysctls + } + + // Set property "TransparentHugePageDefrag": + if config.TransparentHugePageDefrag != nil { + transparentHugePageDefrag := *config.TransparentHugePageDefrag + result.TransparentHugePageDefrag = &transparentHugePageDefrag + } + + // Set property "TransparentHugePageEnabled": + if config.TransparentHugePageEnabled != nil { + transparentHugePageEnabled := *config.TransparentHugePageEnabled + result.TransparentHugePageEnabled = &transparentHugePageEnabled + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *LinuxOSConfig) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &LinuxOSConfig_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *LinuxOSConfig) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(LinuxOSConfig_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected LinuxOSConfig_ARM, got %T", armInput) + } + + // Set property "SwapFileSizeMB": + if typedInput.SwapFileSizeMB != nil { + swapFileSizeMB := *typedInput.SwapFileSizeMB + config.SwapFileSizeMB = &swapFileSizeMB + } + + // Set property "Sysctls": + if typedInput.Sysctls != nil { + var sysctls1 SysctlConfig + err := sysctls1.PopulateFromARM(owner, *typedInput.Sysctls) + if err != nil { + return err + } + sysctls := sysctls1 + config.Sysctls = &sysctls + } + + // Set property "TransparentHugePageDefrag": + if typedInput.TransparentHugePageDefrag != nil { + transparentHugePageDefrag := *typedInput.TransparentHugePageDefrag + config.TransparentHugePageDefrag = &transparentHugePageDefrag + } + + // Set property "TransparentHugePageEnabled": + if typedInput.TransparentHugePageEnabled != nil { + transparentHugePageEnabled := *typedInput.TransparentHugePageEnabled + config.TransparentHugePageEnabled = &transparentHugePageEnabled + } + + // No error + return nil +} + +// AssignProperties_From_LinuxOSConfig populates our LinuxOSConfig from the provided source LinuxOSConfig +func (config *LinuxOSConfig) AssignProperties_From_LinuxOSConfig(source *v20231001s.LinuxOSConfig) error { + + // SwapFileSizeMB + config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) + + // Sysctls + if source.Sysctls != nil { + var sysctl SysctlConfig + err := sysctl.AssignProperties_From_SysctlConfig(source.Sysctls) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SysctlConfig() to populate field Sysctls") + } + config.Sysctls = &sysctl + } else { + config.Sysctls = nil + } + + // TransparentHugePageDefrag + config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) + + // No error + return nil +} + +// AssignProperties_To_LinuxOSConfig populates the provided destination LinuxOSConfig from our LinuxOSConfig +func (config *LinuxOSConfig) AssignProperties_To_LinuxOSConfig(destination *v20231001s.LinuxOSConfig) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SwapFileSizeMB + destination.SwapFileSizeMB = genruntime.ClonePointerToInt(config.SwapFileSizeMB) + + // Sysctls + if config.Sysctls != nil { + var sysctl v20231001s.SysctlConfig + err := config.Sysctls.AssignProperties_To_SysctlConfig(&sysctl) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SysctlConfig() to populate field Sysctls") + } + destination.Sysctls = &sysctl + } else { + destination.Sysctls = nil + } + + // TransparentHugePageDefrag + destination.TransparentHugePageDefrag = genruntime.ClonePointerToString(config.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + destination.TransparentHugePageEnabled = genruntime.ClonePointerToString(config.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_LinuxOSConfig_STATUS populates our LinuxOSConfig from the provided source LinuxOSConfig_STATUS +func (config *LinuxOSConfig) Initialize_From_LinuxOSConfig_STATUS(source *LinuxOSConfig_STATUS) error { + + // SwapFileSizeMB + config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) + + // Sysctls + if source.Sysctls != nil { + var sysctl SysctlConfig + err := sysctl.Initialize_From_SysctlConfig_STATUS(source.Sysctls) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_SysctlConfig_STATUS() to populate field Sysctls") + } + config.Sysctls = &sysctl + } else { + config.Sysctls = nil + } + + // TransparentHugePageDefrag + config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) + + // No error + return nil +} + +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig_STATUS struct { + // SwapFileSizeMB: The size in MB of a swap file that will be created on each node. + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + + // Sysctls: Sysctl settings for Linux agent nodes. + Sysctls *SysctlConfig_STATUS `json:"sysctls,omitempty"` + + // TransparentHugePageDefrag: Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is + // 'madvise'. For more information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + + // TransparentHugePageEnabled: Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more + // information see [Transparent + // Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge). + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +var _ genruntime.FromARMConverter = &LinuxOSConfig_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *LinuxOSConfig_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &LinuxOSConfig_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *LinuxOSConfig_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(LinuxOSConfig_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected LinuxOSConfig_STATUS_ARM, got %T", armInput) + } + + // Set property "SwapFileSizeMB": + if typedInput.SwapFileSizeMB != nil { + swapFileSizeMB := *typedInput.SwapFileSizeMB + config.SwapFileSizeMB = &swapFileSizeMB + } + + // Set property "Sysctls": + if typedInput.Sysctls != nil { + var sysctls1 SysctlConfig_STATUS + err := sysctls1.PopulateFromARM(owner, *typedInput.Sysctls) + if err != nil { + return err + } + sysctls := sysctls1 + config.Sysctls = &sysctls + } + + // Set property "TransparentHugePageDefrag": + if typedInput.TransparentHugePageDefrag != nil { + transparentHugePageDefrag := *typedInput.TransparentHugePageDefrag + config.TransparentHugePageDefrag = &transparentHugePageDefrag + } + + // Set property "TransparentHugePageEnabled": + if typedInput.TransparentHugePageEnabled != nil { + transparentHugePageEnabled := *typedInput.TransparentHugePageEnabled + config.TransparentHugePageEnabled = &transparentHugePageEnabled + } + + // No error + return nil +} + +// AssignProperties_From_LinuxOSConfig_STATUS populates our LinuxOSConfig_STATUS from the provided source LinuxOSConfig_STATUS +func (config *LinuxOSConfig_STATUS) AssignProperties_From_LinuxOSConfig_STATUS(source *v20231001s.LinuxOSConfig_STATUS) error { + + // SwapFileSizeMB + config.SwapFileSizeMB = genruntime.ClonePointerToInt(source.SwapFileSizeMB) + + // Sysctls + if source.Sysctls != nil { + var sysctl SysctlConfig_STATUS + err := sysctl.AssignProperties_From_SysctlConfig_STATUS(source.Sysctls) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SysctlConfig_STATUS() to populate field Sysctls") + } + config.Sysctls = &sysctl + } else { + config.Sysctls = nil + } + + // TransparentHugePageDefrag + config.TransparentHugePageDefrag = genruntime.ClonePointerToString(source.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + config.TransparentHugePageEnabled = genruntime.ClonePointerToString(source.TransparentHugePageEnabled) + + // No error + return nil +} + +// AssignProperties_To_LinuxOSConfig_STATUS populates the provided destination LinuxOSConfig_STATUS from our LinuxOSConfig_STATUS +func (config *LinuxOSConfig_STATUS) AssignProperties_To_LinuxOSConfig_STATUS(destination *v20231001s.LinuxOSConfig_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SwapFileSizeMB + destination.SwapFileSizeMB = genruntime.ClonePointerToInt(config.SwapFileSizeMB) + + // Sysctls + if config.Sysctls != nil { + var sysctl v20231001s.SysctlConfig_STATUS + err := config.Sysctls.AssignProperties_To_SysctlConfig_STATUS(&sysctl) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SysctlConfig_STATUS() to populate field Sysctls") + } + destination.Sysctls = &sysctl + } else { + destination.Sysctls = nil + } + + // TransparentHugePageDefrag + destination.TransparentHugePageDefrag = genruntime.ClonePointerToString(config.TransparentHugePageDefrag) + + // TransparentHugePageEnabled + destination.TransparentHugePageEnabled = genruntime.ClonePointerToString(config.TransparentHugePageEnabled) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, +// defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral +// OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). +// +kubebuilder:validation:Enum={"Ephemeral","Managed"} +type OSDiskType string + +const ( + OSDiskType_Ephemeral = OSDiskType("Ephemeral") + OSDiskType_Managed = OSDiskType("Managed") +) + +// The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, +// defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral +// OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os). +type OSDiskType_STATUS string + +const ( + OSDiskType_STATUS_Ephemeral = OSDiskType_STATUS("Ephemeral") + OSDiskType_STATUS_Managed = OSDiskType_STATUS("Managed") +) + +// Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 when +// Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. +// +kubebuilder:validation:Enum={"AzureLinux","CBLMariner","Ubuntu","Windows2019","Windows2022"} +type OSSKU string + +const ( + OSSKU_AzureLinux = OSSKU("AzureLinux") + OSSKU_CBLMariner = OSSKU("CBLMariner") + OSSKU_Ubuntu = OSSKU("Ubuntu") + OSSKU_Windows2019 = OSSKU("Windows2019") + OSSKU_Windows2022 = OSSKU("Windows2022") +) + +// Specifies the OS SKU used by the agent pool. The default is Ubuntu if OSType is Linux. The default is Windows2019 when +// Kubernetes <= 1.24 or Windows2022 when Kubernetes >= 1.25 if OSType is Windows. +type OSSKU_STATUS string + +const ( + OSSKU_STATUS_AzureLinux = OSSKU_STATUS("AzureLinux") + OSSKU_STATUS_CBLMariner = OSSKU_STATUS("CBLMariner") + OSSKU_STATUS_Ubuntu = OSSKU_STATUS("Ubuntu") + OSSKU_STATUS_Windows2019 = OSSKU_STATUS("Windows2019") + OSSKU_STATUS_Windows2022 = OSSKU_STATUS("Windows2022") +) + +// The operating system type. The default is Linux. +// +kubebuilder:validation:Enum={"Linux","Windows"} +type OSType string + +const ( + OSType_Linux = OSType("Linux") + OSType_Windows = OSType("Windows") +) + +// The operating system type. The default is Linux. +type OSType_STATUS string + +const ( + OSType_STATUS_Linux = OSType_STATUS("Linux") + OSType_STATUS_Windows = OSType_STATUS("Windows") +) + +// Describes the Power State of the cluster +type PowerState struct { + // Code: Tells whether the cluster is Running or Stopped + Code *PowerState_Code `json:"code,omitempty"` +} + +var _ genruntime.ARMTransformer = &PowerState{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (state *PowerState) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if state == nil { + return nil, nil + } + result := &PowerState_ARM{} + + // Set property "Code": + if state.Code != nil { + code := *state.Code + result.Code = &code + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (state *PowerState) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PowerState_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (state *PowerState) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PowerState_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PowerState_ARM, got %T", armInput) + } + + // Set property "Code": + if typedInput.Code != nil { + code := *typedInput.Code + state.Code = &code + } + + // No error + return nil +} + +// AssignProperties_From_PowerState populates our PowerState from the provided source PowerState +func (state *PowerState) AssignProperties_From_PowerState(source *v20231001s.PowerState) error { + + // Code + if source.Code != nil { + code := PowerState_Code(*source.Code) + state.Code = &code + } else { + state.Code = nil + } + + // No error + return nil +} + +// AssignProperties_To_PowerState populates the provided destination PowerState from our PowerState +func (state *PowerState) AssignProperties_To_PowerState(destination *v20231001s.PowerState) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Code + if state.Code != nil { + code := string(*state.Code) + destination.Code = &code + } else { + destination.Code = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PowerState_STATUS populates our PowerState from the provided source PowerState_STATUS +func (state *PowerState) Initialize_From_PowerState_STATUS(source *PowerState_STATUS) error { + + // Code + if source.Code != nil { + code := PowerState_Code(*source.Code) + state.Code = &code + } else { + state.Code = nil + } + + // No error + return nil +} + +// Describes how VMs are added to or removed from Agent Pools. See [billing +// states](https://docs.microsoft.com/azure/virtual-machines/states-billing). +// +kubebuilder:validation:Enum={"Deallocate","Delete"} +type ScaleDownMode string + +const ( + ScaleDownMode_Deallocate = ScaleDownMode("Deallocate") + ScaleDownMode_Delete = ScaleDownMode("Delete") +) + +// Describes how VMs are added to or removed from Agent Pools. See [billing +// states](https://docs.microsoft.com/azure/virtual-machines/states-billing). +type ScaleDownMode_STATUS string + +const ( + ScaleDownMode_STATUS_Deallocate = ScaleDownMode_STATUS("Deallocate") + ScaleDownMode_STATUS_Delete = ScaleDownMode_STATUS("Delete") +) + +// The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. For more information +// about eviction see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms) +// +kubebuilder:validation:Enum={"Deallocate","Delete"} +type ScaleSetEvictionPolicy string + +const ( + ScaleSetEvictionPolicy_Deallocate = ScaleSetEvictionPolicy("Deallocate") + ScaleSetEvictionPolicy_Delete = ScaleSetEvictionPolicy("Delete") +) + +// The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. For more information +// about eviction see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms) +type ScaleSetEvictionPolicy_STATUS string + +const ( + ScaleSetEvictionPolicy_STATUS_Deallocate = ScaleSetEvictionPolicy_STATUS("Deallocate") + ScaleSetEvictionPolicy_STATUS_Delete = ScaleSetEvictionPolicy_STATUS("Delete") +) + +// The Virtual Machine Scale Set priority. +// +kubebuilder:validation:Enum={"Regular","Spot"} +type ScaleSetPriority string + +const ( + ScaleSetPriority_Regular = ScaleSetPriority("Regular") + ScaleSetPriority_Spot = ScaleSetPriority("Spot") +) + +// The Virtual Machine Scale Set priority. +type ScaleSetPriority_STATUS string + +const ( + ScaleSetPriority_STATUS_Regular = ScaleSetPriority_STATUS("Regular") + ScaleSetPriority_STATUS_Spot = ScaleSetPriority_STATUS("Spot") +) + +// Determines the type of workload a node can run. +// +kubebuilder:validation:Enum={"OCIContainer","WasmWasi"} +type WorkloadRuntime string + +const ( + WorkloadRuntime_OCIContainer = WorkloadRuntime("OCIContainer") + WorkloadRuntime_WasmWasi = WorkloadRuntime("WasmWasi") +) + +// Determines the type of workload a node can run. +type WorkloadRuntime_STATUS string + +const ( + WorkloadRuntime_STATUS_OCIContainer = WorkloadRuntime_STATUS("OCIContainer") + WorkloadRuntime_STATUS_WasmWasi = WorkloadRuntime_STATUS("WasmWasi") +) + +// Contains the IPTag associated with the object. +type IPTag struct { + // IpTagType: The IP tag type. Example: RoutingPreference. + IpTagType *string `json:"ipTagType,omitempty"` + + // Tag: The value of the IP tag associated with the public IP. Example: Internet. + Tag *string `json:"tag,omitempty"` +} + +var _ genruntime.ARMTransformer = &IPTag{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (ipTag *IPTag) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if ipTag == nil { + return nil, nil + } + result := &IPTag_ARM{} + + // Set property "IpTagType": + if ipTag.IpTagType != nil { + ipTagType := *ipTag.IpTagType + result.IpTagType = &ipTagType + } + + // Set property "Tag": + if ipTag.Tag != nil { + tag := *ipTag.Tag + result.Tag = &tag + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (ipTag *IPTag) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IPTag_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (ipTag *IPTag) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IPTag_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IPTag_ARM, got %T", armInput) + } + + // Set property "IpTagType": + if typedInput.IpTagType != nil { + ipTagType := *typedInput.IpTagType + ipTag.IpTagType = &ipTagType + } + + // Set property "Tag": + if typedInput.Tag != nil { + tag := *typedInput.Tag + ipTag.Tag = &tag + } + + // No error + return nil +} + +// AssignProperties_From_IPTag populates our IPTag from the provided source IPTag +func (ipTag *IPTag) AssignProperties_From_IPTag(source *v20231001s.IPTag) error { + + // IpTagType + ipTag.IpTagType = genruntime.ClonePointerToString(source.IpTagType) + + // Tag + ipTag.Tag = genruntime.ClonePointerToString(source.Tag) + + // No error + return nil +} + +// AssignProperties_To_IPTag populates the provided destination IPTag from our IPTag +func (ipTag *IPTag) AssignProperties_To_IPTag(destination *v20231001s.IPTag) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // IpTagType + destination.IpTagType = genruntime.ClonePointerToString(ipTag.IpTagType) + + // Tag + destination.Tag = genruntime.ClonePointerToString(ipTag.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_IPTag_STATUS populates our IPTag from the provided source IPTag_STATUS +func (ipTag *IPTag) Initialize_From_IPTag_STATUS(source *IPTag_STATUS) error { + + // IpTagType + ipTag.IpTagType = genruntime.ClonePointerToString(source.IpTagType) + + // Tag + ipTag.Tag = genruntime.ClonePointerToString(source.Tag) + + // No error + return nil +} + +// Contains the IPTag associated with the object. +type IPTag_STATUS struct { + // IpTagType: The IP tag type. Example: RoutingPreference. + IpTagType *string `json:"ipTagType,omitempty"` + + // Tag: The value of the IP tag associated with the public IP. Example: Internet. + Tag *string `json:"tag,omitempty"` +} + +var _ genruntime.FromARMConverter = &IPTag_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (ipTag *IPTag_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IPTag_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (ipTag *IPTag_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IPTag_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IPTag_STATUS_ARM, got %T", armInput) + } + + // Set property "IpTagType": + if typedInput.IpTagType != nil { + ipTagType := *typedInput.IpTagType + ipTag.IpTagType = &ipTagType + } + + // Set property "Tag": + if typedInput.Tag != nil { + tag := *typedInput.Tag + ipTag.Tag = &tag + } + + // No error + return nil +} + +// AssignProperties_From_IPTag_STATUS populates our IPTag_STATUS from the provided source IPTag_STATUS +func (ipTag *IPTag_STATUS) AssignProperties_From_IPTag_STATUS(source *v20231001s.IPTag_STATUS) error { + + // IpTagType + ipTag.IpTagType = genruntime.ClonePointerToString(source.IpTagType) + + // Tag + ipTag.Tag = genruntime.ClonePointerToString(source.Tag) + + // No error + return nil +} + +// AssignProperties_To_IPTag_STATUS populates the provided destination IPTag_STATUS from our IPTag_STATUS +func (ipTag *IPTag_STATUS) AssignProperties_To_IPTag_STATUS(destination *v20231001s.IPTag_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // IpTagType + destination.IpTagType = genruntime.ClonePointerToString(ipTag.IpTagType) + + // Tag + destination.Tag = genruntime.ClonePointerToString(ipTag.Tag) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The port range. +type PortRange struct { + // +kubebuilder:validation:Maximum=65535 + // +kubebuilder:validation:Minimum=1 + // PortEnd: The maximum port that is included in the range. It should be ranged from 1 to 65535, and be greater than or + // equal to portStart. + PortEnd *int `json:"portEnd,omitempty"` + + // +kubebuilder:validation:Maximum=65535 + // +kubebuilder:validation:Minimum=1 + // PortStart: The minimum port that is included in the range. It should be ranged from 1 to 65535, and be less than or + // equal to portEnd. + PortStart *int `json:"portStart,omitempty"` + + // Protocol: The network protocol of the port. + Protocol *PortRange_Protocol `json:"protocol,omitempty"` +} + +var _ genruntime.ARMTransformer = &PortRange{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (portRange *PortRange) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if portRange == nil { + return nil, nil + } + result := &PortRange_ARM{} + + // Set property "PortEnd": + if portRange.PortEnd != nil { + portEnd := *portRange.PortEnd + result.PortEnd = &portEnd + } + + // Set property "PortStart": + if portRange.PortStart != nil { + portStart := *portRange.PortStart + result.PortStart = &portStart + } + + // Set property "Protocol": + if portRange.Protocol != nil { + protocol := *portRange.Protocol + result.Protocol = &protocol + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (portRange *PortRange) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PortRange_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (portRange *PortRange) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PortRange_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PortRange_ARM, got %T", armInput) + } + + // Set property "PortEnd": + if typedInput.PortEnd != nil { + portEnd := *typedInput.PortEnd + portRange.PortEnd = &portEnd + } + + // Set property "PortStart": + if typedInput.PortStart != nil { + portStart := *typedInput.PortStart + portRange.PortStart = &portStart + } + + // Set property "Protocol": + if typedInput.Protocol != nil { + protocol := *typedInput.Protocol + portRange.Protocol = &protocol + } + + // No error + return nil +} + +// AssignProperties_From_PortRange populates our PortRange from the provided source PortRange +func (portRange *PortRange) AssignProperties_From_PortRange(source *v20231001s.PortRange) error { + + // PortEnd + if source.PortEnd != nil { + portEnd := *source.PortEnd + portRange.PortEnd = &portEnd + } else { + portRange.PortEnd = nil + } + + // PortStart + if source.PortStart != nil { + portStart := *source.PortStart + portRange.PortStart = &portStart + } else { + portRange.PortStart = nil + } + + // Protocol + if source.Protocol != nil { + protocol := PortRange_Protocol(*source.Protocol) + portRange.Protocol = &protocol + } else { + portRange.Protocol = nil + } + + // No error + return nil +} + +// AssignProperties_To_PortRange populates the provided destination PortRange from our PortRange +func (portRange *PortRange) AssignProperties_To_PortRange(destination *v20231001s.PortRange) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PortEnd + if portRange.PortEnd != nil { + portEnd := *portRange.PortEnd + destination.PortEnd = &portEnd + } else { + destination.PortEnd = nil + } + + // PortStart + if portRange.PortStart != nil { + portStart := *portRange.PortStart + destination.PortStart = &portStart + } else { + destination.PortStart = nil + } + + // Protocol + if portRange.Protocol != nil { + protocol := string(*portRange.Protocol) + destination.Protocol = &protocol + } else { + destination.Protocol = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PortRange_STATUS populates our PortRange from the provided source PortRange_STATUS +func (portRange *PortRange) Initialize_From_PortRange_STATUS(source *PortRange_STATUS) error { + + // PortEnd + if source.PortEnd != nil { + portEnd := *source.PortEnd + portRange.PortEnd = &portEnd + } else { + portRange.PortEnd = nil + } + + // PortStart + if source.PortStart != nil { + portStart := *source.PortStart + portRange.PortStart = &portStart + } else { + portRange.PortStart = nil + } + + // Protocol + if source.Protocol != nil { + protocol := PortRange_Protocol(*source.Protocol) + portRange.Protocol = &protocol + } else { + portRange.Protocol = nil + } + + // No error + return nil +} + +// The port range. +type PortRange_STATUS struct { + // PortEnd: The maximum port that is included in the range. It should be ranged from 1 to 65535, and be greater than or + // equal to portStart. + PortEnd *int `json:"portEnd,omitempty"` + + // PortStart: The minimum port that is included in the range. It should be ranged from 1 to 65535, and be less than or + // equal to portEnd. + PortStart *int `json:"portStart,omitempty"` + + // Protocol: The network protocol of the port. + Protocol *PortRange_Protocol_STATUS `json:"protocol,omitempty"` +} + +var _ genruntime.FromARMConverter = &PortRange_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (portRange *PortRange_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PortRange_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (portRange *PortRange_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PortRange_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PortRange_STATUS_ARM, got %T", armInput) + } + + // Set property "PortEnd": + if typedInput.PortEnd != nil { + portEnd := *typedInput.PortEnd + portRange.PortEnd = &portEnd + } + + // Set property "PortStart": + if typedInput.PortStart != nil { + portStart := *typedInput.PortStart + portRange.PortStart = &portStart + } + + // Set property "Protocol": + if typedInput.Protocol != nil { + protocol := *typedInput.Protocol + portRange.Protocol = &protocol + } + + // No error + return nil +} + +// AssignProperties_From_PortRange_STATUS populates our PortRange_STATUS from the provided source PortRange_STATUS +func (portRange *PortRange_STATUS) AssignProperties_From_PortRange_STATUS(source *v20231001s.PortRange_STATUS) error { + + // PortEnd + portRange.PortEnd = genruntime.ClonePointerToInt(source.PortEnd) + + // PortStart + portRange.PortStart = genruntime.ClonePointerToInt(source.PortStart) + + // Protocol + if source.Protocol != nil { + protocol := PortRange_Protocol_STATUS(*source.Protocol) + portRange.Protocol = &protocol + } else { + portRange.Protocol = nil + } + + // No error + return nil +} + +// AssignProperties_To_PortRange_STATUS populates the provided destination PortRange_STATUS from our PortRange_STATUS +func (portRange *PortRange_STATUS) AssignProperties_To_PortRange_STATUS(destination *v20231001s.PortRange_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PortEnd + destination.PortEnd = genruntime.ClonePointerToInt(portRange.PortEnd) + + // PortStart + destination.PortStart = genruntime.ClonePointerToInt(portRange.PortStart) + + // Protocol + if portRange.Protocol != nil { + protocol := string(*portRange.Protocol) + destination.Protocol = &protocol + } else { + destination.Protocol = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"Running","Stopped"} +type PowerState_Code string + +const ( + PowerState_Code_Running = PowerState_Code("Running") + PowerState_Code_Stopped = PowerState_Code("Stopped") +) + +// Sysctl settings for Linux agent nodes. +type SysctlConfig struct { + // FsAioMaxNr: Sysctl setting fs.aio-max-nr. + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + + // FsFileMax: Sysctl setting fs.file-max. + FsFileMax *int `json:"fsFileMax,omitempty"` + + // FsInotifyMaxUserWatches: Sysctl setting fs.inotify.max_user_watches. + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + + // FsNrOpen: Sysctl setting fs.nr_open. + FsNrOpen *int `json:"fsNrOpen,omitempty"` + + // KernelThreadsMax: Sysctl setting kernel.threads-max. + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + + // NetCoreNetdevMaxBacklog: Sysctl setting net.core.netdev_max_backlog. + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + + // NetCoreOptmemMax: Sysctl setting net.core.optmem_max. + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + + // NetCoreRmemDefault: Sysctl setting net.core.rmem_default. + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + + // NetCoreRmemMax: Sysctl setting net.core.rmem_max. + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + + // NetCoreSomaxconn: Sysctl setting net.core.somaxconn. + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + + // NetCoreWmemDefault: Sysctl setting net.core.wmem_default. + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + + // NetCoreWmemMax: Sysctl setting net.core.wmem_max. + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + + // NetIpv4IpLocalPortRange: Sysctl setting net.ipv4.ip_local_port_range. + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + + // NetIpv4NeighDefaultGcThresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + + // NetIpv4NeighDefaultGcThresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + + // NetIpv4NeighDefaultGcThresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + + // NetIpv4TcpFinTimeout: Sysctl setting net.ipv4.tcp_fin_timeout. + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + + // NetIpv4TcpKeepaliveProbes: Sysctl setting net.ipv4.tcp_keepalive_probes. + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + + // NetIpv4TcpKeepaliveTime: Sysctl setting net.ipv4.tcp_keepalive_time. + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + + // NetIpv4TcpMaxSynBacklog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + + // NetIpv4TcpMaxTwBuckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + + // NetIpv4TcpTwReuse: Sysctl setting net.ipv4.tcp_tw_reuse. + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + + // +kubebuilder:validation:Maximum=90 + // +kubebuilder:validation:Minimum=10 + // NetIpv4TcpkeepaliveIntvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + + // +kubebuilder:validation:Maximum=524288 + // +kubebuilder:validation:Minimum=65536 + // NetNetfilterNfConntrackBuckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + + // +kubebuilder:validation:Maximum=2097152 + // +kubebuilder:validation:Minimum=131072 + // NetNetfilterNfConntrackMax: Sysctl setting net.netfilter.nf_conntrack_max. + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + + // VmMaxMapCount: Sysctl setting vm.max_map_count. + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + + // VmSwappiness: Sysctl setting vm.swappiness. + VmSwappiness *int `json:"vmSwappiness,omitempty"` + + // VmVfsCachePressure: Sysctl setting vm.vfs_cache_pressure. + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} + +var _ genruntime.ARMTransformer = &SysctlConfig{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (config *SysctlConfig) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if config == nil { + return nil, nil + } + result := &SysctlConfig_ARM{} + + // Set property "FsAioMaxNr": + if config.FsAioMaxNr != nil { + fsAioMaxNr := *config.FsAioMaxNr + result.FsAioMaxNr = &fsAioMaxNr + } + + // Set property "FsFileMax": + if config.FsFileMax != nil { + fsFileMax := *config.FsFileMax + result.FsFileMax = &fsFileMax + } + + // Set property "FsInotifyMaxUserWatches": + if config.FsInotifyMaxUserWatches != nil { + fsInotifyMaxUserWatches := *config.FsInotifyMaxUserWatches + result.FsInotifyMaxUserWatches = &fsInotifyMaxUserWatches + } + + // Set property "FsNrOpen": + if config.FsNrOpen != nil { + fsNrOpen := *config.FsNrOpen + result.FsNrOpen = &fsNrOpen + } + + // Set property "KernelThreadsMax": + if config.KernelThreadsMax != nil { + kernelThreadsMax := *config.KernelThreadsMax + result.KernelThreadsMax = &kernelThreadsMax + } + + // Set property "NetCoreNetdevMaxBacklog": + if config.NetCoreNetdevMaxBacklog != nil { + netCoreNetdevMaxBacklog := *config.NetCoreNetdevMaxBacklog + result.NetCoreNetdevMaxBacklog = &netCoreNetdevMaxBacklog + } + + // Set property "NetCoreOptmemMax": + if config.NetCoreOptmemMax != nil { + netCoreOptmemMax := *config.NetCoreOptmemMax + result.NetCoreOptmemMax = &netCoreOptmemMax + } + + // Set property "NetCoreRmemDefault": + if config.NetCoreRmemDefault != nil { + netCoreRmemDefault := *config.NetCoreRmemDefault + result.NetCoreRmemDefault = &netCoreRmemDefault + } + + // Set property "NetCoreRmemMax": + if config.NetCoreRmemMax != nil { + netCoreRmemMax := *config.NetCoreRmemMax + result.NetCoreRmemMax = &netCoreRmemMax + } + + // Set property "NetCoreSomaxconn": + if config.NetCoreSomaxconn != nil { + netCoreSomaxconn := *config.NetCoreSomaxconn + result.NetCoreSomaxconn = &netCoreSomaxconn + } + + // Set property "NetCoreWmemDefault": + if config.NetCoreWmemDefault != nil { + netCoreWmemDefault := *config.NetCoreWmemDefault + result.NetCoreWmemDefault = &netCoreWmemDefault + } + + // Set property "NetCoreWmemMax": + if config.NetCoreWmemMax != nil { + netCoreWmemMax := *config.NetCoreWmemMax + result.NetCoreWmemMax = &netCoreWmemMax + } + + // Set property "NetIpv4IpLocalPortRange": + if config.NetIpv4IpLocalPortRange != nil { + netIpv4IpLocalPortRange := *config.NetIpv4IpLocalPortRange + result.NetIpv4IpLocalPortRange = &netIpv4IpLocalPortRange + } + + // Set property "NetIpv4NeighDefaultGcThresh1": + if config.NetIpv4NeighDefaultGcThresh1 != nil { + netIpv4NeighDefaultGcThresh1 := *config.NetIpv4NeighDefaultGcThresh1 + result.NetIpv4NeighDefaultGcThresh1 = &netIpv4NeighDefaultGcThresh1 + } + + // Set property "NetIpv4NeighDefaultGcThresh2": + if config.NetIpv4NeighDefaultGcThresh2 != nil { + netIpv4NeighDefaultGcThresh2 := *config.NetIpv4NeighDefaultGcThresh2 + result.NetIpv4NeighDefaultGcThresh2 = &netIpv4NeighDefaultGcThresh2 + } + + // Set property "NetIpv4NeighDefaultGcThresh3": + if config.NetIpv4NeighDefaultGcThresh3 != nil { + netIpv4NeighDefaultGcThresh3 := *config.NetIpv4NeighDefaultGcThresh3 + result.NetIpv4NeighDefaultGcThresh3 = &netIpv4NeighDefaultGcThresh3 + } + + // Set property "NetIpv4TcpFinTimeout": + if config.NetIpv4TcpFinTimeout != nil { + netIpv4TcpFinTimeout := *config.NetIpv4TcpFinTimeout + result.NetIpv4TcpFinTimeout = &netIpv4TcpFinTimeout + } + + // Set property "NetIpv4TcpKeepaliveProbes": + if config.NetIpv4TcpKeepaliveProbes != nil { + netIpv4TcpKeepaliveProbes := *config.NetIpv4TcpKeepaliveProbes + result.NetIpv4TcpKeepaliveProbes = &netIpv4TcpKeepaliveProbes + } + + // Set property "NetIpv4TcpKeepaliveTime": + if config.NetIpv4TcpKeepaliveTime != nil { + netIpv4TcpKeepaliveTime := *config.NetIpv4TcpKeepaliveTime + result.NetIpv4TcpKeepaliveTime = &netIpv4TcpKeepaliveTime + } + + // Set property "NetIpv4TcpMaxSynBacklog": + if config.NetIpv4TcpMaxSynBacklog != nil { + netIpv4TcpMaxSynBacklog := *config.NetIpv4TcpMaxSynBacklog + result.NetIpv4TcpMaxSynBacklog = &netIpv4TcpMaxSynBacklog + } + + // Set property "NetIpv4TcpMaxTwBuckets": + if config.NetIpv4TcpMaxTwBuckets != nil { + netIpv4TcpMaxTwBuckets := *config.NetIpv4TcpMaxTwBuckets + result.NetIpv4TcpMaxTwBuckets = &netIpv4TcpMaxTwBuckets + } + + // Set property "NetIpv4TcpTwReuse": + if config.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *config.NetIpv4TcpTwReuse + result.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } + + // Set property "NetIpv4TcpkeepaliveIntvl": + if config.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *config.NetIpv4TcpkeepaliveIntvl + result.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } + + // Set property "NetNetfilterNfConntrackBuckets": + if config.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBuckets := *config.NetNetfilterNfConntrackBuckets + result.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBuckets + } + + // Set property "NetNetfilterNfConntrackMax": + if config.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *config.NetNetfilterNfConntrackMax + result.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } + + // Set property "VmMaxMapCount": + if config.VmMaxMapCount != nil { + vmMaxMapCount := *config.VmMaxMapCount + result.VmMaxMapCount = &vmMaxMapCount + } + + // Set property "VmSwappiness": + if config.VmSwappiness != nil { + vmSwappiness := *config.VmSwappiness + result.VmSwappiness = &vmSwappiness + } + + // Set property "VmVfsCachePressure": + if config.VmVfsCachePressure != nil { + vmVfsCachePressure := *config.VmVfsCachePressure + result.VmVfsCachePressure = &vmVfsCachePressure + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *SysctlConfig) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &SysctlConfig_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *SysctlConfig) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(SysctlConfig_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected SysctlConfig_ARM, got %T", armInput) + } + + // Set property "FsAioMaxNr": + if typedInput.FsAioMaxNr != nil { + fsAioMaxNr := *typedInput.FsAioMaxNr + config.FsAioMaxNr = &fsAioMaxNr + } + + // Set property "FsFileMax": + if typedInput.FsFileMax != nil { + fsFileMax := *typedInput.FsFileMax + config.FsFileMax = &fsFileMax + } + + // Set property "FsInotifyMaxUserWatches": + if typedInput.FsInotifyMaxUserWatches != nil { + fsInotifyMaxUserWatches := *typedInput.FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = &fsInotifyMaxUserWatches + } + + // Set property "FsNrOpen": + if typedInput.FsNrOpen != nil { + fsNrOpen := *typedInput.FsNrOpen + config.FsNrOpen = &fsNrOpen + } + + // Set property "KernelThreadsMax": + if typedInput.KernelThreadsMax != nil { + kernelThreadsMax := *typedInput.KernelThreadsMax + config.KernelThreadsMax = &kernelThreadsMax + } + + // Set property "NetCoreNetdevMaxBacklog": + if typedInput.NetCoreNetdevMaxBacklog != nil { + netCoreNetdevMaxBacklog := *typedInput.NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = &netCoreNetdevMaxBacklog + } + + // Set property "NetCoreOptmemMax": + if typedInput.NetCoreOptmemMax != nil { + netCoreOptmemMax := *typedInput.NetCoreOptmemMax + config.NetCoreOptmemMax = &netCoreOptmemMax + } + + // Set property "NetCoreRmemDefault": + if typedInput.NetCoreRmemDefault != nil { + netCoreRmemDefault := *typedInput.NetCoreRmemDefault + config.NetCoreRmemDefault = &netCoreRmemDefault + } + + // Set property "NetCoreRmemMax": + if typedInput.NetCoreRmemMax != nil { + netCoreRmemMax := *typedInput.NetCoreRmemMax + config.NetCoreRmemMax = &netCoreRmemMax + } + + // Set property "NetCoreSomaxconn": + if typedInput.NetCoreSomaxconn != nil { + netCoreSomaxconn := *typedInput.NetCoreSomaxconn + config.NetCoreSomaxconn = &netCoreSomaxconn + } + + // Set property "NetCoreWmemDefault": + if typedInput.NetCoreWmemDefault != nil { + netCoreWmemDefault := *typedInput.NetCoreWmemDefault + config.NetCoreWmemDefault = &netCoreWmemDefault + } + + // Set property "NetCoreWmemMax": + if typedInput.NetCoreWmemMax != nil { + netCoreWmemMax := *typedInput.NetCoreWmemMax + config.NetCoreWmemMax = &netCoreWmemMax + } + + // Set property "NetIpv4IpLocalPortRange": + if typedInput.NetIpv4IpLocalPortRange != nil { + netIpv4IpLocalPortRange := *typedInput.NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = &netIpv4IpLocalPortRange + } + + // Set property "NetIpv4NeighDefaultGcThresh1": + if typedInput.NetIpv4NeighDefaultGcThresh1 != nil { + netIpv4NeighDefaultGcThresh1 := *typedInput.NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = &netIpv4NeighDefaultGcThresh1 + } + + // Set property "NetIpv4NeighDefaultGcThresh2": + if typedInput.NetIpv4NeighDefaultGcThresh2 != nil { + netIpv4NeighDefaultGcThresh2 := *typedInput.NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = &netIpv4NeighDefaultGcThresh2 + } + + // Set property "NetIpv4NeighDefaultGcThresh3": + if typedInput.NetIpv4NeighDefaultGcThresh3 != nil { + netIpv4NeighDefaultGcThresh3 := *typedInput.NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = &netIpv4NeighDefaultGcThresh3 + } + + // Set property "NetIpv4TcpFinTimeout": + if typedInput.NetIpv4TcpFinTimeout != nil { + netIpv4TcpFinTimeout := *typedInput.NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = &netIpv4TcpFinTimeout + } + + // Set property "NetIpv4TcpKeepaliveProbes": + if typedInput.NetIpv4TcpKeepaliveProbes != nil { + netIpv4TcpKeepaliveProbes := *typedInput.NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = &netIpv4TcpKeepaliveProbes + } + + // Set property "NetIpv4TcpKeepaliveTime": + if typedInput.NetIpv4TcpKeepaliveTime != nil { + netIpv4TcpKeepaliveTime := *typedInput.NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = &netIpv4TcpKeepaliveTime + } + + // Set property "NetIpv4TcpMaxSynBacklog": + if typedInput.NetIpv4TcpMaxSynBacklog != nil { + netIpv4TcpMaxSynBacklog := *typedInput.NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = &netIpv4TcpMaxSynBacklog + } + + // Set property "NetIpv4TcpMaxTwBuckets": + if typedInput.NetIpv4TcpMaxTwBuckets != nil { + netIpv4TcpMaxTwBuckets := *typedInput.NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = &netIpv4TcpMaxTwBuckets + } + + // Set property "NetIpv4TcpTwReuse": + if typedInput.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *typedInput.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } + + // Set property "NetIpv4TcpkeepaliveIntvl": + if typedInput.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *typedInput.NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } + + // Set property "NetNetfilterNfConntrackBuckets": + if typedInput.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBuckets := *typedInput.NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBuckets + } + + // Set property "NetNetfilterNfConntrackMax": + if typedInput.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *typedInput.NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } + + // Set property "VmMaxMapCount": + if typedInput.VmMaxMapCount != nil { + vmMaxMapCount := *typedInput.VmMaxMapCount + config.VmMaxMapCount = &vmMaxMapCount + } + + // Set property "VmSwappiness": + if typedInput.VmSwappiness != nil { + vmSwappiness := *typedInput.VmSwappiness + config.VmSwappiness = &vmSwappiness + } + + // Set property "VmVfsCachePressure": + if typedInput.VmVfsCachePressure != nil { + vmVfsCachePressure := *typedInput.VmVfsCachePressure + config.VmVfsCachePressure = &vmVfsCachePressure + } + + // No error + return nil +} + +// AssignProperties_From_SysctlConfig populates our SysctlConfig from the provided source SysctlConfig +func (config *SysctlConfig) AssignProperties_From_SysctlConfig(source *v20231001s.SysctlConfig) error { + + // FsAioMaxNr + config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) + + // FsFileMax + config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) + + // FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) + + // FsNrOpen + config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) + + // KernelThreadsMax + config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) + + // NetCoreRmemDefault + config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) + + // NetCoreRmemMax + config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) + + // NetCoreSomaxconn + config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) + + // NetCoreWmemDefault + config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) + + // NetCoreWmemMax + config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if source.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + config.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + if source.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *source.NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } else { + config.NetIpv4TcpkeepaliveIntvl = nil + } + + // NetNetfilterNfConntrackBuckets + if source.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBucket := *source.NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBucket + } else { + config.NetNetfilterNfConntrackBuckets = nil + } + + // NetNetfilterNfConntrackMax + if source.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *source.NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } else { + config.NetNetfilterNfConntrackMax = nil + } + + // VmMaxMapCount + config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) + + // VmSwappiness + config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) + + // VmVfsCachePressure + config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) + + // No error + return nil +} + +// AssignProperties_To_SysctlConfig populates the provided destination SysctlConfig from our SysctlConfig +func (config *SysctlConfig) AssignProperties_To_SysctlConfig(destination *v20231001s.SysctlConfig) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // FsAioMaxNr + destination.FsAioMaxNr = genruntime.ClonePointerToInt(config.FsAioMaxNr) + + // FsFileMax + destination.FsFileMax = genruntime.ClonePointerToInt(config.FsFileMax) + + // FsInotifyMaxUserWatches + destination.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(config.FsInotifyMaxUserWatches) + + // FsNrOpen + destination.FsNrOpen = genruntime.ClonePointerToInt(config.FsNrOpen) + + // KernelThreadsMax + destination.KernelThreadsMax = genruntime.ClonePointerToInt(config.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + destination.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(config.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + destination.NetCoreOptmemMax = genruntime.ClonePointerToInt(config.NetCoreOptmemMax) + + // NetCoreRmemDefault + destination.NetCoreRmemDefault = genruntime.ClonePointerToInt(config.NetCoreRmemDefault) + + // NetCoreRmemMax + destination.NetCoreRmemMax = genruntime.ClonePointerToInt(config.NetCoreRmemMax) + + // NetCoreSomaxconn + destination.NetCoreSomaxconn = genruntime.ClonePointerToInt(config.NetCoreSomaxconn) + + // NetCoreWmemDefault + destination.NetCoreWmemDefault = genruntime.ClonePointerToInt(config.NetCoreWmemDefault) + + // NetCoreWmemMax + destination.NetCoreWmemMax = genruntime.ClonePointerToInt(config.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + destination.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(config.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + destination.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + destination.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + destination.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + destination.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(config.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + destination.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + destination.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + destination.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + destination.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if config.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *config.NetIpv4TcpTwReuse + destination.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + destination.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + if config.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *config.NetIpv4TcpkeepaliveIntvl + destination.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } else { + destination.NetIpv4TcpkeepaliveIntvl = nil + } + + // NetNetfilterNfConntrackBuckets + if config.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBucket := *config.NetNetfilterNfConntrackBuckets + destination.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBucket + } else { + destination.NetNetfilterNfConntrackBuckets = nil + } + + // NetNetfilterNfConntrackMax + if config.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *config.NetNetfilterNfConntrackMax + destination.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } else { + destination.NetNetfilterNfConntrackMax = nil + } + + // VmMaxMapCount + destination.VmMaxMapCount = genruntime.ClonePointerToInt(config.VmMaxMapCount) + + // VmSwappiness + destination.VmSwappiness = genruntime.ClonePointerToInt(config.VmSwappiness) + + // VmVfsCachePressure + destination.VmVfsCachePressure = genruntime.ClonePointerToInt(config.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_SysctlConfig_STATUS populates our SysctlConfig from the provided source SysctlConfig_STATUS +func (config *SysctlConfig) Initialize_From_SysctlConfig_STATUS(source *SysctlConfig_STATUS) error { + + // FsAioMaxNr + config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) + + // FsFileMax + config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) + + // FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) + + // FsNrOpen + config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) + + // KernelThreadsMax + config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) + + // NetCoreRmemDefault + config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) + + // NetCoreRmemMax + config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) + + // NetCoreSomaxconn + config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) + + // NetCoreWmemDefault + config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) + + // NetCoreWmemMax + config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if source.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + config.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + if source.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *source.NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } else { + config.NetIpv4TcpkeepaliveIntvl = nil + } + + // NetNetfilterNfConntrackBuckets + if source.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBucket := *source.NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBucket + } else { + config.NetNetfilterNfConntrackBuckets = nil + } + + // NetNetfilterNfConntrackMax + if source.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *source.NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } else { + config.NetNetfilterNfConntrackMax = nil + } + + // VmMaxMapCount + config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) + + // VmSwappiness + config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) + + // VmVfsCachePressure + config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) + + // No error + return nil +} + +// Sysctl settings for Linux agent nodes. +type SysctlConfig_STATUS struct { + // FsAioMaxNr: Sysctl setting fs.aio-max-nr. + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + + // FsFileMax: Sysctl setting fs.file-max. + FsFileMax *int `json:"fsFileMax,omitempty"` + + // FsInotifyMaxUserWatches: Sysctl setting fs.inotify.max_user_watches. + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + + // FsNrOpen: Sysctl setting fs.nr_open. + FsNrOpen *int `json:"fsNrOpen,omitempty"` + + // KernelThreadsMax: Sysctl setting kernel.threads-max. + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + + // NetCoreNetdevMaxBacklog: Sysctl setting net.core.netdev_max_backlog. + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + + // NetCoreOptmemMax: Sysctl setting net.core.optmem_max. + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + + // NetCoreRmemDefault: Sysctl setting net.core.rmem_default. + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + + // NetCoreRmemMax: Sysctl setting net.core.rmem_max. + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + + // NetCoreSomaxconn: Sysctl setting net.core.somaxconn. + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + + // NetCoreWmemDefault: Sysctl setting net.core.wmem_default. + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + + // NetCoreWmemMax: Sysctl setting net.core.wmem_max. + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + + // NetIpv4IpLocalPortRange: Sysctl setting net.ipv4.ip_local_port_range. + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + + // NetIpv4NeighDefaultGcThresh1: Sysctl setting net.ipv4.neigh.default.gc_thresh1. + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + + // NetIpv4NeighDefaultGcThresh2: Sysctl setting net.ipv4.neigh.default.gc_thresh2. + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + + // NetIpv4NeighDefaultGcThresh3: Sysctl setting net.ipv4.neigh.default.gc_thresh3. + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + + // NetIpv4TcpFinTimeout: Sysctl setting net.ipv4.tcp_fin_timeout. + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + + // NetIpv4TcpKeepaliveProbes: Sysctl setting net.ipv4.tcp_keepalive_probes. + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + + // NetIpv4TcpKeepaliveTime: Sysctl setting net.ipv4.tcp_keepalive_time. + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + + // NetIpv4TcpMaxSynBacklog: Sysctl setting net.ipv4.tcp_max_syn_backlog. + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + + // NetIpv4TcpMaxTwBuckets: Sysctl setting net.ipv4.tcp_max_tw_buckets. + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + + // NetIpv4TcpTwReuse: Sysctl setting net.ipv4.tcp_tw_reuse. + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + + // NetIpv4TcpkeepaliveIntvl: Sysctl setting net.ipv4.tcp_keepalive_intvl. + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + + // NetNetfilterNfConntrackBuckets: Sysctl setting net.netfilter.nf_conntrack_buckets. + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + + // NetNetfilterNfConntrackMax: Sysctl setting net.netfilter.nf_conntrack_max. + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + + // VmMaxMapCount: Sysctl setting vm.max_map_count. + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + + // VmSwappiness: Sysctl setting vm.swappiness. + VmSwappiness *int `json:"vmSwappiness,omitempty"` + + // VmVfsCachePressure: Sysctl setting vm.vfs_cache_pressure. + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} + +var _ genruntime.FromARMConverter = &SysctlConfig_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (config *SysctlConfig_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &SysctlConfig_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (config *SysctlConfig_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(SysctlConfig_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected SysctlConfig_STATUS_ARM, got %T", armInput) + } + + // Set property "FsAioMaxNr": + if typedInput.FsAioMaxNr != nil { + fsAioMaxNr := *typedInput.FsAioMaxNr + config.FsAioMaxNr = &fsAioMaxNr + } + + // Set property "FsFileMax": + if typedInput.FsFileMax != nil { + fsFileMax := *typedInput.FsFileMax + config.FsFileMax = &fsFileMax + } + + // Set property "FsInotifyMaxUserWatches": + if typedInput.FsInotifyMaxUserWatches != nil { + fsInotifyMaxUserWatches := *typedInput.FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = &fsInotifyMaxUserWatches + } + + // Set property "FsNrOpen": + if typedInput.FsNrOpen != nil { + fsNrOpen := *typedInput.FsNrOpen + config.FsNrOpen = &fsNrOpen + } + + // Set property "KernelThreadsMax": + if typedInput.KernelThreadsMax != nil { + kernelThreadsMax := *typedInput.KernelThreadsMax + config.KernelThreadsMax = &kernelThreadsMax + } + + // Set property "NetCoreNetdevMaxBacklog": + if typedInput.NetCoreNetdevMaxBacklog != nil { + netCoreNetdevMaxBacklog := *typedInput.NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = &netCoreNetdevMaxBacklog + } + + // Set property "NetCoreOptmemMax": + if typedInput.NetCoreOptmemMax != nil { + netCoreOptmemMax := *typedInput.NetCoreOptmemMax + config.NetCoreOptmemMax = &netCoreOptmemMax + } + + // Set property "NetCoreRmemDefault": + if typedInput.NetCoreRmemDefault != nil { + netCoreRmemDefault := *typedInput.NetCoreRmemDefault + config.NetCoreRmemDefault = &netCoreRmemDefault + } + + // Set property "NetCoreRmemMax": + if typedInput.NetCoreRmemMax != nil { + netCoreRmemMax := *typedInput.NetCoreRmemMax + config.NetCoreRmemMax = &netCoreRmemMax + } + + // Set property "NetCoreSomaxconn": + if typedInput.NetCoreSomaxconn != nil { + netCoreSomaxconn := *typedInput.NetCoreSomaxconn + config.NetCoreSomaxconn = &netCoreSomaxconn + } + + // Set property "NetCoreWmemDefault": + if typedInput.NetCoreWmemDefault != nil { + netCoreWmemDefault := *typedInput.NetCoreWmemDefault + config.NetCoreWmemDefault = &netCoreWmemDefault + } + + // Set property "NetCoreWmemMax": + if typedInput.NetCoreWmemMax != nil { + netCoreWmemMax := *typedInput.NetCoreWmemMax + config.NetCoreWmemMax = &netCoreWmemMax + } + + // Set property "NetIpv4IpLocalPortRange": + if typedInput.NetIpv4IpLocalPortRange != nil { + netIpv4IpLocalPortRange := *typedInput.NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = &netIpv4IpLocalPortRange + } + + // Set property "NetIpv4NeighDefaultGcThresh1": + if typedInput.NetIpv4NeighDefaultGcThresh1 != nil { + netIpv4NeighDefaultGcThresh1 := *typedInput.NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = &netIpv4NeighDefaultGcThresh1 + } + + // Set property "NetIpv4NeighDefaultGcThresh2": + if typedInput.NetIpv4NeighDefaultGcThresh2 != nil { + netIpv4NeighDefaultGcThresh2 := *typedInput.NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = &netIpv4NeighDefaultGcThresh2 + } + + // Set property "NetIpv4NeighDefaultGcThresh3": + if typedInput.NetIpv4NeighDefaultGcThresh3 != nil { + netIpv4NeighDefaultGcThresh3 := *typedInput.NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = &netIpv4NeighDefaultGcThresh3 + } + + // Set property "NetIpv4TcpFinTimeout": + if typedInput.NetIpv4TcpFinTimeout != nil { + netIpv4TcpFinTimeout := *typedInput.NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = &netIpv4TcpFinTimeout + } + + // Set property "NetIpv4TcpKeepaliveProbes": + if typedInput.NetIpv4TcpKeepaliveProbes != nil { + netIpv4TcpKeepaliveProbes := *typedInput.NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = &netIpv4TcpKeepaliveProbes + } + + // Set property "NetIpv4TcpKeepaliveTime": + if typedInput.NetIpv4TcpKeepaliveTime != nil { + netIpv4TcpKeepaliveTime := *typedInput.NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = &netIpv4TcpKeepaliveTime + } + + // Set property "NetIpv4TcpMaxSynBacklog": + if typedInput.NetIpv4TcpMaxSynBacklog != nil { + netIpv4TcpMaxSynBacklog := *typedInput.NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = &netIpv4TcpMaxSynBacklog + } + + // Set property "NetIpv4TcpMaxTwBuckets": + if typedInput.NetIpv4TcpMaxTwBuckets != nil { + netIpv4TcpMaxTwBuckets := *typedInput.NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = &netIpv4TcpMaxTwBuckets + } + + // Set property "NetIpv4TcpTwReuse": + if typedInput.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *typedInput.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } + + // Set property "NetIpv4TcpkeepaliveIntvl": + if typedInput.NetIpv4TcpkeepaliveIntvl != nil { + netIpv4TcpkeepaliveIntvl := *typedInput.NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = &netIpv4TcpkeepaliveIntvl + } + + // Set property "NetNetfilterNfConntrackBuckets": + if typedInput.NetNetfilterNfConntrackBuckets != nil { + netNetfilterNfConntrackBuckets := *typedInput.NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = &netNetfilterNfConntrackBuckets + } + + // Set property "NetNetfilterNfConntrackMax": + if typedInput.NetNetfilterNfConntrackMax != nil { + netNetfilterNfConntrackMax := *typedInput.NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = &netNetfilterNfConntrackMax + } + + // Set property "VmMaxMapCount": + if typedInput.VmMaxMapCount != nil { + vmMaxMapCount := *typedInput.VmMaxMapCount + config.VmMaxMapCount = &vmMaxMapCount + } + + // Set property "VmSwappiness": + if typedInput.VmSwappiness != nil { + vmSwappiness := *typedInput.VmSwappiness + config.VmSwappiness = &vmSwappiness + } + + // Set property "VmVfsCachePressure": + if typedInput.VmVfsCachePressure != nil { + vmVfsCachePressure := *typedInput.VmVfsCachePressure + config.VmVfsCachePressure = &vmVfsCachePressure + } + + // No error + return nil +} + +// AssignProperties_From_SysctlConfig_STATUS populates our SysctlConfig_STATUS from the provided source SysctlConfig_STATUS +func (config *SysctlConfig_STATUS) AssignProperties_From_SysctlConfig_STATUS(source *v20231001s.SysctlConfig_STATUS) error { + + // FsAioMaxNr + config.FsAioMaxNr = genruntime.ClonePointerToInt(source.FsAioMaxNr) + + // FsFileMax + config.FsFileMax = genruntime.ClonePointerToInt(source.FsFileMax) + + // FsInotifyMaxUserWatches + config.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(source.FsInotifyMaxUserWatches) + + // FsNrOpen + config.FsNrOpen = genruntime.ClonePointerToInt(source.FsNrOpen) + + // KernelThreadsMax + config.KernelThreadsMax = genruntime.ClonePointerToInt(source.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + config.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(source.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + config.NetCoreOptmemMax = genruntime.ClonePointerToInt(source.NetCoreOptmemMax) + + // NetCoreRmemDefault + config.NetCoreRmemDefault = genruntime.ClonePointerToInt(source.NetCoreRmemDefault) + + // NetCoreRmemMax + config.NetCoreRmemMax = genruntime.ClonePointerToInt(source.NetCoreRmemMax) + + // NetCoreSomaxconn + config.NetCoreSomaxconn = genruntime.ClonePointerToInt(source.NetCoreSomaxconn) + + // NetCoreWmemDefault + config.NetCoreWmemDefault = genruntime.ClonePointerToInt(source.NetCoreWmemDefault) + + // NetCoreWmemMax + config.NetCoreWmemMax = genruntime.ClonePointerToInt(source.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + config.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(source.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + config.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + config.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + config.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(source.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + config.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(source.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + config.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + config.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(source.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + config.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + config.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(source.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if source.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *source.NetIpv4TcpTwReuse + config.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + config.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + config.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(source.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + config.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + config.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(source.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + config.VmMaxMapCount = genruntime.ClonePointerToInt(source.VmMaxMapCount) + + // VmSwappiness + config.VmSwappiness = genruntime.ClonePointerToInt(source.VmSwappiness) + + // VmVfsCachePressure + config.VmVfsCachePressure = genruntime.ClonePointerToInt(source.VmVfsCachePressure) + + // No error + return nil +} + +// AssignProperties_To_SysctlConfig_STATUS populates the provided destination SysctlConfig_STATUS from our SysctlConfig_STATUS +func (config *SysctlConfig_STATUS) AssignProperties_To_SysctlConfig_STATUS(destination *v20231001s.SysctlConfig_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // FsAioMaxNr + destination.FsAioMaxNr = genruntime.ClonePointerToInt(config.FsAioMaxNr) + + // FsFileMax + destination.FsFileMax = genruntime.ClonePointerToInt(config.FsFileMax) + + // FsInotifyMaxUserWatches + destination.FsInotifyMaxUserWatches = genruntime.ClonePointerToInt(config.FsInotifyMaxUserWatches) + + // FsNrOpen + destination.FsNrOpen = genruntime.ClonePointerToInt(config.FsNrOpen) + + // KernelThreadsMax + destination.KernelThreadsMax = genruntime.ClonePointerToInt(config.KernelThreadsMax) + + // NetCoreNetdevMaxBacklog + destination.NetCoreNetdevMaxBacklog = genruntime.ClonePointerToInt(config.NetCoreNetdevMaxBacklog) + + // NetCoreOptmemMax + destination.NetCoreOptmemMax = genruntime.ClonePointerToInt(config.NetCoreOptmemMax) + + // NetCoreRmemDefault + destination.NetCoreRmemDefault = genruntime.ClonePointerToInt(config.NetCoreRmemDefault) + + // NetCoreRmemMax + destination.NetCoreRmemMax = genruntime.ClonePointerToInt(config.NetCoreRmemMax) + + // NetCoreSomaxconn + destination.NetCoreSomaxconn = genruntime.ClonePointerToInt(config.NetCoreSomaxconn) + + // NetCoreWmemDefault + destination.NetCoreWmemDefault = genruntime.ClonePointerToInt(config.NetCoreWmemDefault) + + // NetCoreWmemMax + destination.NetCoreWmemMax = genruntime.ClonePointerToInt(config.NetCoreWmemMax) + + // NetIpv4IpLocalPortRange + destination.NetIpv4IpLocalPortRange = genruntime.ClonePointerToString(config.NetIpv4IpLocalPortRange) + + // NetIpv4NeighDefaultGcThresh1 + destination.NetIpv4NeighDefaultGcThresh1 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh1) + + // NetIpv4NeighDefaultGcThresh2 + destination.NetIpv4NeighDefaultGcThresh2 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh2) + + // NetIpv4NeighDefaultGcThresh3 + destination.NetIpv4NeighDefaultGcThresh3 = genruntime.ClonePointerToInt(config.NetIpv4NeighDefaultGcThresh3) + + // NetIpv4TcpFinTimeout + destination.NetIpv4TcpFinTimeout = genruntime.ClonePointerToInt(config.NetIpv4TcpFinTimeout) + + // NetIpv4TcpKeepaliveProbes + destination.NetIpv4TcpKeepaliveProbes = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveProbes) + + // NetIpv4TcpKeepaliveTime + destination.NetIpv4TcpKeepaliveTime = genruntime.ClonePointerToInt(config.NetIpv4TcpKeepaliveTime) + + // NetIpv4TcpMaxSynBacklog + destination.NetIpv4TcpMaxSynBacklog = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxSynBacklog) + + // NetIpv4TcpMaxTwBuckets + destination.NetIpv4TcpMaxTwBuckets = genruntime.ClonePointerToInt(config.NetIpv4TcpMaxTwBuckets) + + // NetIpv4TcpTwReuse + if config.NetIpv4TcpTwReuse != nil { + netIpv4TcpTwReuse := *config.NetIpv4TcpTwReuse + destination.NetIpv4TcpTwReuse = &netIpv4TcpTwReuse + } else { + destination.NetIpv4TcpTwReuse = nil + } + + // NetIpv4TcpkeepaliveIntvl + destination.NetIpv4TcpkeepaliveIntvl = genruntime.ClonePointerToInt(config.NetIpv4TcpkeepaliveIntvl) + + // NetNetfilterNfConntrackBuckets + destination.NetNetfilterNfConntrackBuckets = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackBuckets) + + // NetNetfilterNfConntrackMax + destination.NetNetfilterNfConntrackMax = genruntime.ClonePointerToInt(config.NetNetfilterNfConntrackMax) + + // VmMaxMapCount + destination.VmMaxMapCount = genruntime.ClonePointerToInt(config.VmMaxMapCount) + + // VmSwappiness + destination.VmSwappiness = genruntime.ClonePointerToInt(config.VmSwappiness) + + // VmVfsCachePressure + destination.VmVfsCachePressure = genruntime.ClonePointerToInt(config.VmVfsCachePressure) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"TCP","UDP"} +type PortRange_Protocol string + +const ( + PortRange_Protocol_TCP = PortRange_Protocol("TCP") + PortRange_Protocol_UDP = PortRange_Protocol("UDP") +) + +type PortRange_Protocol_STATUS string + +const ( + PortRange_Protocol_STATUS_TCP = PortRange_Protocol_STATUS("TCP") + PortRange_Protocol_STATUS_UDP = PortRange_Protocol_STATUS("UDP") +) + +func init() { + SchemeBuilder.Register(&ManagedClustersAgentPool{}, &ManagedClustersAgentPoolList{}) +} diff --git a/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen_test.go new file mode 100644 index 00000000000..2d0c530c9ea --- /dev/null +++ b/v2/api/containerservice/v1api20231001/managed_clusters_agent_pool_types_gen_test.go @@ -0,0 +1,2365 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20231001 + +import ( + "encoding/json" + v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClustersAgentPool_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClustersAgentPool to hub returns original", + prop.ForAll(RunResourceConversionTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForManagedClustersAgentPool tests if a specific instance of ManagedClustersAgentPool round trips to the hub storage version and back losslessly +func RunResourceConversionTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20231001s.ManagedClustersAgentPool + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual ManagedClustersAgentPool + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClustersAgentPool_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClustersAgentPool to ManagedClustersAgentPool via AssignProperties_To_ManagedClustersAgentPool & AssignProperties_From_ManagedClustersAgentPool returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClustersAgentPool tests if a specific instance of ManagedClustersAgentPool can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClustersAgentPool + err := copied.AssignProperties_To_ManagedClustersAgentPool(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClustersAgentPool + err = actual.AssignProperties_From_ManagedClustersAgentPool(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClustersAgentPool_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClustersAgentPool via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClustersAgentPool runs a test to see if a specific instance of ManagedClustersAgentPool round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClustersAgentPool + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClustersAgentPool instances for property testing - lazily instantiated by +// ManagedClustersAgentPoolGenerator() +var managedClustersAgentPoolGenerator gopter.Gen + +// ManagedClustersAgentPoolGenerator returns a generator of ManagedClustersAgentPool instances for property testing. +func ManagedClustersAgentPoolGenerator() gopter.Gen { + if managedClustersAgentPoolGenerator != nil { + return managedClustersAgentPoolGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClustersAgentPool(generators) + managedClustersAgentPoolGenerator = gen.Struct(reflect.TypeOf(ManagedClustersAgentPool{}), generators) + + return managedClustersAgentPoolGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClustersAgentPool is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClustersAgentPool(gens map[string]gopter.Gen) { + gens["Spec"] = ManagedClusters_AgentPool_SpecGenerator() + gens["Status"] = ManagedClusters_AgentPool_STATUSGenerator() +} + +func Test_ManagedClusters_AgentPool_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusters_AgentPool_Spec to ManagedClusters_AgentPool_Spec via AssignProperties_To_ManagedClusters_AgentPool_Spec & AssignProperties_From_ManagedClusters_AgentPool_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec, ManagedClusters_AgentPool_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec tests if a specific instance of ManagedClusters_AgentPool_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusters_AgentPool_Spec(subject ManagedClusters_AgentPool_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusters_AgentPool_Spec + err := copied.AssignProperties_To_ManagedClusters_AgentPool_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusters_AgentPool_Spec + err = actual.AssignProperties_From_ManagedClusters_AgentPool_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusters_AgentPool_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_Spec, ManagedClusters_AgentPool_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_Spec runs a test to see if a specific instance of ManagedClusters_AgentPool_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_Spec(subject ManagedClusters_AgentPool_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_Spec instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_SpecGenerator() +var managedClusters_AgentPool_SpecGenerator gopter.Gen + +// ManagedClusters_AgentPool_SpecGenerator returns a generator of ManagedClusters_AgentPool_Spec instances for property testing. +// We first initialize managedClusters_AgentPool_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_SpecGenerator() gopter.Gen { + if managedClusters_AgentPool_SpecGenerator != nil { + return managedClusters_AgentPool_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + managedClusters_AgentPool_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + managedClusters_AgentPool_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec{}), generators) + + return managedClusters_AgentPool_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["AzureName"] = gen.AlphaString() + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_MIG1G, + GPUInstanceProfile_MIG2G, + GPUInstanceProfile_MIG3G, + GPUInstanceProfile_MIG4G, + GPUInstanceProfile_MIG7G)) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_OS, KubeletDiskType_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_System, AgentPoolMode_User)) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int().Map(func(it int) ContainerServiceOSDisk { + return ContainerServiceOSDisk(it) + })) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_Ephemeral, OSDiskType_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_AzureLinux, + OSSKU_CBLMariner, + OSSKU_Ubuntu, + OSSKU_Windows2019, + OSSKU_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_Linux, OSType_Windows)) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_Deallocate, ScaleDownMode_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_Deallocate, ScaleSetEvictionPolicy_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_Regular, ScaleSetPriority_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_AvailabilitySet, AgentPoolType_VirtualMachineScaleSets)) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_OCIContainer, WorkloadRuntime_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationDataGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfigGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfigGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfileGenerator()) + gens["PowerState"] = gen.PtrOf(PowerStateGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) +} + +func Test_ManagedClusters_AgentPool_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ManagedClusters_AgentPool_STATUS to ManagedClusters_AgentPool_STATUS via AssignProperties_To_ManagedClusters_AgentPool_STATUS & AssignProperties_From_ManagedClusters_AgentPool_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS, ManagedClusters_AgentPool_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS tests if a specific instance of ManagedClusters_AgentPool_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForManagedClusters_AgentPool_STATUS(subject ManagedClusters_AgentPool_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.ManagedClusters_AgentPool_STATUS + err := copied.AssignProperties_To_ManagedClusters_AgentPool_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ManagedClusters_AgentPool_STATUS + err = actual.AssignProperties_From_ManagedClusters_AgentPool_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ManagedClusters_AgentPool_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_STATUS, ManagedClusters_AgentPool_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_STATUS runs a test to see if a specific instance of ManagedClusters_AgentPool_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_STATUS(subject ManagedClusters_AgentPool_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_STATUS instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_STATUSGenerator() +var managedClusters_AgentPool_STATUSGenerator gopter.Gen + +// ManagedClusters_AgentPool_STATUSGenerator returns a generator of ManagedClusters_AgentPool_STATUS instances for property testing. +// We first initialize managedClusters_AgentPool_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_STATUSGenerator() gopter.Gen { + if managedClusters_AgentPool_STATUSGenerator != nil { + return managedClusters_AgentPool_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + managedClusters_AgentPool_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + managedClusters_AgentPool_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS{}), generators) + + return managedClusters_AgentPool_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.OneConstOf( + GPUInstanceProfile_STATUS_MIG1G, + GPUInstanceProfile_STATUS_MIG2G, + GPUInstanceProfile_STATUS_MIG3G, + GPUInstanceProfile_STATUS_MIG4G, + GPUInstanceProfile_STATUS_MIG7G)) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.OneConstOf(KubeletDiskType_STATUS_OS, KubeletDiskType_STATUS_Temporary)) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.OneConstOf(AgentPoolMode_STATUS_System, AgentPoolMode_STATUS_User)) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.OneConstOf(OSDiskType_STATUS_Ephemeral, OSDiskType_STATUS_Managed)) + gens["OsSKU"] = gen.PtrOf(gen.OneConstOf( + OSSKU_STATUS_AzureLinux, + OSSKU_STATUS_CBLMariner, + OSSKU_STATUS_Ubuntu, + OSSKU_STATUS_Windows2019, + OSSKU_STATUS_Windows2022)) + gens["OsType"] = gen.PtrOf(gen.OneConstOf(OSType_STATUS_Linux, OSType_STATUS_Windows)) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["PropertiesType"] = gen.PtrOf(gen.OneConstOf(AgentPoolType_STATUS_AvailabilitySet, AgentPoolType_STATUS_VirtualMachineScaleSets)) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.OneConstOf(ScaleDownMode_STATUS_Deallocate, ScaleDownMode_STATUS_Delete)) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.OneConstOf(ScaleSetEvictionPolicy_STATUS_Deallocate, ScaleSetEvictionPolicy_STATUS_Delete)) + gens["ScaleSetPriority"] = gen.PtrOf(gen.OneConstOf(ScaleSetPriority_STATUS_Regular, ScaleSetPriority_STATUS_Spot)) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.OneConstOf(WorkloadRuntime_STATUS_OCIContainer, WorkloadRuntime_STATUS_WasmWasi)) +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUSGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUSGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) +} + +func Test_AgentPoolNetworkProfile_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolNetworkProfile to AgentPoolNetworkProfile via AssignProperties_To_AgentPoolNetworkProfile & AssignProperties_From_AgentPoolNetworkProfile returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolNetworkProfile, AgentPoolNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolNetworkProfile tests if a specific instance of AgentPoolNetworkProfile can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolNetworkProfile(subject AgentPoolNetworkProfile) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolNetworkProfile + err := copied.AssignProperties_To_AgentPoolNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolNetworkProfile + err = actual.AssignProperties_From_AgentPoolNetworkProfile(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AgentPoolNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile, AgentPoolNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile runs a test to see if a specific instance of AgentPoolNetworkProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile(subject AgentPoolNetworkProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile instances for property testing - lazily instantiated by +// AgentPoolNetworkProfileGenerator() +var agentPoolNetworkProfileGenerator gopter.Gen + +// AgentPoolNetworkProfileGenerator returns a generator of AgentPoolNetworkProfile instances for property testing. +func AgentPoolNetworkProfileGenerator() gopter.Gen { + if agentPoolNetworkProfileGenerator != nil { + return agentPoolNetworkProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile(generators) + agentPoolNetworkProfileGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile{}), generators) + + return agentPoolNetworkProfileGenerator +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRangeGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTagGenerator()) +} + +func Test_AgentPoolNetworkProfile_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolNetworkProfile_STATUS to AgentPoolNetworkProfile_STATUS via AssignProperties_To_AgentPoolNetworkProfile_STATUS & AssignProperties_From_AgentPoolNetworkProfile_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS, AgentPoolNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS tests if a specific instance of AgentPoolNetworkProfile_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolNetworkProfile_STATUS(subject AgentPoolNetworkProfile_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolNetworkProfile_STATUS + err := copied.AssignProperties_To_AgentPoolNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolNetworkProfile_STATUS + err = actual.AssignProperties_From_AgentPoolNetworkProfile_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AgentPoolNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS, AgentPoolNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS runs a test to see if a specific instance of AgentPoolNetworkProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS(subject AgentPoolNetworkProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile_STATUS instances for property testing - lazily instantiated by +// AgentPoolNetworkProfile_STATUSGenerator() +var agentPoolNetworkProfile_STATUSGenerator gopter.Gen + +// AgentPoolNetworkProfile_STATUSGenerator returns a generator of AgentPoolNetworkProfile_STATUS instances for property testing. +// We first initialize agentPoolNetworkProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func AgentPoolNetworkProfile_STATUSGenerator() gopter.Gen { + if agentPoolNetworkProfile_STATUSGenerator != nil { + return agentPoolNetworkProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + agentPoolNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + agentPoolNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS{}), generators) + + return agentPoolNetworkProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["ApplicationSecurityGroups"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRange_STATUSGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTag_STATUSGenerator()) +} + +func Test_AgentPoolUpgradeSettings_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolUpgradeSettings to AgentPoolUpgradeSettings via AssignProperties_To_AgentPoolUpgradeSettings & AssignProperties_From_AgentPoolUpgradeSettings returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolUpgradeSettings, AgentPoolUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolUpgradeSettings tests if a specific instance of AgentPoolUpgradeSettings can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolUpgradeSettings(subject AgentPoolUpgradeSettings) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolUpgradeSettings + err := copied.AssignProperties_To_AgentPoolUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolUpgradeSettings + err = actual.AssignProperties_From_AgentPoolUpgradeSettings(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AgentPoolUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings, AgentPoolUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings runs a test to see if a specific instance of AgentPoolUpgradeSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings(subject AgentPoolUpgradeSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettingsGenerator() +var agentPoolUpgradeSettingsGenerator gopter.Gen + +// AgentPoolUpgradeSettingsGenerator returns a generator of AgentPoolUpgradeSettings instances for property testing. +func AgentPoolUpgradeSettingsGenerator() gopter.Gen { + if agentPoolUpgradeSettingsGenerator != nil { + return agentPoolUpgradeSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings(generators) + agentPoolUpgradeSettingsGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings{}), generators) + + return agentPoolUpgradeSettingsGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AgentPoolUpgradeSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AgentPoolUpgradeSettings_STATUS to AgentPoolUpgradeSettings_STATUS via AssignProperties_To_AgentPoolUpgradeSettings_STATUS & AssignProperties_From_AgentPoolUpgradeSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS, AgentPoolUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS tests if a specific instance of AgentPoolUpgradeSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAgentPoolUpgradeSettings_STATUS(subject AgentPoolUpgradeSettings_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.AgentPoolUpgradeSettings_STATUS + err := copied.AssignProperties_To_AgentPoolUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AgentPoolUpgradeSettings_STATUS + err = actual.AssignProperties_From_AgentPoolUpgradeSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_AgentPoolUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS, AgentPoolUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS runs a test to see if a specific instance of AgentPoolUpgradeSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS(subject AgentPoolUpgradeSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings_STATUS instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettings_STATUSGenerator() +var agentPoolUpgradeSettings_STATUSGenerator gopter.Gen + +// AgentPoolUpgradeSettings_STATUSGenerator returns a generator of AgentPoolUpgradeSettings_STATUS instances for property testing. +func AgentPoolUpgradeSettings_STATUSGenerator() gopter.Gen { + if agentPoolUpgradeSettings_STATUSGenerator != nil { + return agentPoolUpgradeSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS(generators) + agentPoolUpgradeSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings_STATUS{}), generators) + + return agentPoolUpgradeSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CreationData_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CreationData to CreationData via AssignProperties_To_CreationData & AssignProperties_From_CreationData returns original", + prop.ForAll(RunPropertyAssignmentTestForCreationData, CreationDataGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCreationData tests if a specific instance of CreationData can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForCreationData(subject CreationData) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.CreationData + err := copied.AssignProperties_To_CreationData(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CreationData + err = actual.AssignProperties_From_CreationData(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_CreationData_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData, CreationDataGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData runs a test to see if a specific instance of CreationData round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData(subject CreationData) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData instances for property testing - lazily instantiated by CreationDataGenerator() +var creationDataGenerator gopter.Gen + +// CreationDataGenerator returns a generator of CreationData instances for property testing. +func CreationDataGenerator() gopter.Gen { + if creationDataGenerator != nil { + return creationDataGenerator + } + + generators := make(map[string]gopter.Gen) + creationDataGenerator = gen.Struct(reflect.TypeOf(CreationData{}), generators) + + return creationDataGenerator +} + +func Test_CreationData_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CreationData_STATUS to CreationData_STATUS via AssignProperties_To_CreationData_STATUS & AssignProperties_From_CreationData_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForCreationData_STATUS, CreationData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCreationData_STATUS tests if a specific instance of CreationData_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForCreationData_STATUS(subject CreationData_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.CreationData_STATUS + err := copied.AssignProperties_To_CreationData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CreationData_STATUS + err = actual.AssignProperties_From_CreationData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_CreationData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData_STATUS, CreationData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData_STATUS runs a test to see if a specific instance of CreationData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData_STATUS(subject CreationData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData_STATUS instances for property testing - lazily instantiated by +// CreationData_STATUSGenerator() +var creationData_STATUSGenerator gopter.Gen + +// CreationData_STATUSGenerator returns a generator of CreationData_STATUS instances for property testing. +func CreationData_STATUSGenerator() gopter.Gen { + if creationData_STATUSGenerator != nil { + return creationData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCreationData_STATUS(generators) + creationData_STATUSGenerator = gen.Struct(reflect.TypeOf(CreationData_STATUS{}), generators) + + return creationData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCreationData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCreationData_STATUS(gens map[string]gopter.Gen) { + gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from KubeletConfig to KubeletConfig via AssignProperties_To_KubeletConfig & AssignProperties_From_KubeletConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForKubeletConfig, KubeletConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForKubeletConfig tests if a specific instance of KubeletConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForKubeletConfig(subject KubeletConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.KubeletConfig + err := copied.AssignProperties_To_KubeletConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual KubeletConfig + err = actual.AssignProperties_From_KubeletConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_KubeletConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig, KubeletConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig runs a test to see if a specific instance of KubeletConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig(subject KubeletConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig instances for property testing - lazily instantiated by KubeletConfigGenerator() +var kubeletConfigGenerator gopter.Gen + +// KubeletConfigGenerator returns a generator of KubeletConfig instances for property testing. +func KubeletConfigGenerator() gopter.Gen { + if kubeletConfigGenerator != nil { + return kubeletConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig(generators) + kubeletConfigGenerator = gen.Struct(reflect.TypeOf(KubeletConfig{}), generators) + + return kubeletConfigGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from KubeletConfig_STATUS to KubeletConfig_STATUS via AssignProperties_To_KubeletConfig_STATUS & AssignProperties_From_KubeletConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForKubeletConfig_STATUS, KubeletConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForKubeletConfig_STATUS tests if a specific instance of KubeletConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForKubeletConfig_STATUS(subject KubeletConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.KubeletConfig_STATUS + err := copied.AssignProperties_To_KubeletConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual KubeletConfig_STATUS + err = actual.AssignProperties_From_KubeletConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_KubeletConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig_STATUS, KubeletConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig_STATUS runs a test to see if a specific instance of KubeletConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig_STATUS(subject KubeletConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig_STATUS instances for property testing - lazily instantiated by +// KubeletConfig_STATUSGenerator() +var kubeletConfig_STATUSGenerator gopter.Gen + +// KubeletConfig_STATUSGenerator returns a generator of KubeletConfig_STATUS instances for property testing. +func KubeletConfig_STATUSGenerator() gopter.Gen { + if kubeletConfig_STATUSGenerator != nil { + return kubeletConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig_STATUS(generators) + kubeletConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(KubeletConfig_STATUS{}), generators) + + return kubeletConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig_STATUS(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_LinuxOSConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from LinuxOSConfig to LinuxOSConfig via AssignProperties_To_LinuxOSConfig & AssignProperties_From_LinuxOSConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForLinuxOSConfig, LinuxOSConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForLinuxOSConfig tests if a specific instance of LinuxOSConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForLinuxOSConfig(subject LinuxOSConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.LinuxOSConfig + err := copied.AssignProperties_To_LinuxOSConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual LinuxOSConfig + err = actual.AssignProperties_From_LinuxOSConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_LinuxOSConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig, LinuxOSConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig runs a test to see if a specific instance of LinuxOSConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig(subject LinuxOSConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig instances for property testing - lazily instantiated by LinuxOSConfigGenerator() +var linuxOSConfigGenerator gopter.Gen + +// LinuxOSConfigGenerator returns a generator of LinuxOSConfig instances for property testing. +// We first initialize linuxOSConfigGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfigGenerator() gopter.Gen { + if linuxOSConfigGenerator != nil { + return linuxOSConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig(generators) + linuxOSConfigGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig(generators) + linuxOSConfigGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig{}), generators) + + return linuxOSConfigGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfigGenerator()) +} + +func Test_LinuxOSConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from LinuxOSConfig_STATUS to LinuxOSConfig_STATUS via AssignProperties_To_LinuxOSConfig_STATUS & AssignProperties_From_LinuxOSConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForLinuxOSConfig_STATUS, LinuxOSConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForLinuxOSConfig_STATUS tests if a specific instance of LinuxOSConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForLinuxOSConfig_STATUS(subject LinuxOSConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.LinuxOSConfig_STATUS + err := copied.AssignProperties_To_LinuxOSConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual LinuxOSConfig_STATUS + err = actual.AssignProperties_From_LinuxOSConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_LinuxOSConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig_STATUS, LinuxOSConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig_STATUS runs a test to see if a specific instance of LinuxOSConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig_STATUS(subject LinuxOSConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig_STATUS instances for property testing - lazily instantiated by +// LinuxOSConfig_STATUSGenerator() +var linuxOSConfig_STATUSGenerator gopter.Gen + +// LinuxOSConfig_STATUSGenerator returns a generator of LinuxOSConfig_STATUS instances for property testing. +// We first initialize linuxOSConfig_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfig_STATUSGenerator() gopter.Gen { + if linuxOSConfig_STATUSGenerator != nil { + return linuxOSConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + linuxOSConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + linuxOSConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS{}), generators) + + return linuxOSConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfig_STATUSGenerator()) +} + +func Test_PowerState_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PowerState to PowerState via AssignProperties_To_PowerState & AssignProperties_From_PowerState returns original", + prop.ForAll(RunPropertyAssignmentTestForPowerState, PowerStateGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPowerState tests if a specific instance of PowerState can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPowerState(subject PowerState) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PowerState + err := copied.AssignProperties_To_PowerState(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PowerState + err = actual.AssignProperties_From_PowerState(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PowerState_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState, PowerStateGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState runs a test to see if a specific instance of PowerState round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState(subject PowerState) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState instances for property testing - lazily instantiated by PowerStateGenerator() +var powerStateGenerator gopter.Gen + +// PowerStateGenerator returns a generator of PowerState instances for property testing. +func PowerStateGenerator() gopter.Gen { + if powerStateGenerator != nil { + return powerStateGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState(generators) + powerStateGenerator = gen.Struct(reflect.TypeOf(PowerState{}), generators) + + return powerStateGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.OneConstOf(PowerState_Code_Running, PowerState_Code_Stopped)) +} + +func Test_IPTag_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IPTag to IPTag via AssignProperties_To_IPTag & AssignProperties_From_IPTag returns original", + prop.ForAll(RunPropertyAssignmentTestForIPTag, IPTagGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIPTag tests if a specific instance of IPTag can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIPTag(subject IPTag) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IPTag + err := copied.AssignProperties_To_IPTag(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IPTag + err = actual.AssignProperties_From_IPTag(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IPTag_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag, IPTagGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag runs a test to see if a specific instance of IPTag round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag(subject IPTag) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag instances for property testing - lazily instantiated by IPTagGenerator() +var ipTagGenerator gopter.Gen + +// IPTagGenerator returns a generator of IPTag instances for property testing. +func IPTagGenerator() gopter.Gen { + if ipTagGenerator != nil { + return ipTagGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag(generators) + ipTagGenerator = gen.Struct(reflect.TypeOf(IPTag{}), generators) + + return ipTagGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IPTag_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IPTag_STATUS to IPTag_STATUS via AssignProperties_To_IPTag_STATUS & AssignProperties_From_IPTag_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIPTag_STATUS, IPTag_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIPTag_STATUS tests if a specific instance of IPTag_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIPTag_STATUS(subject IPTag_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.IPTag_STATUS + err := copied.AssignProperties_To_IPTag_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IPTag_STATUS + err = actual.AssignProperties_From_IPTag_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_IPTag_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag_STATUS, IPTag_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag_STATUS runs a test to see if a specific instance of IPTag_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag_STATUS(subject IPTag_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag_STATUS instances for property testing - lazily instantiated by IPTag_STATUSGenerator() +var ipTag_STATUSGenerator gopter.Gen + +// IPTag_STATUSGenerator returns a generator of IPTag_STATUS instances for property testing. +func IPTag_STATUSGenerator() gopter.Gen { + if ipTag_STATUSGenerator != nil { + return ipTag_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag_STATUS(generators) + ipTag_STATUSGenerator = gen.Struct(reflect.TypeOf(IPTag_STATUS{}), generators) + + return ipTag_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag_STATUS(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PortRange_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PortRange to PortRange via AssignProperties_To_PortRange & AssignProperties_From_PortRange returns original", + prop.ForAll(RunPropertyAssignmentTestForPortRange, PortRangeGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPortRange tests if a specific instance of PortRange can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPortRange(subject PortRange) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PortRange + err := copied.AssignProperties_To_PortRange(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PortRange + err = actual.AssignProperties_From_PortRange(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PortRange_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange, PortRangeGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange runs a test to see if a specific instance of PortRange round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange(subject PortRange) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange instances for property testing - lazily instantiated by PortRangeGenerator() +var portRangeGenerator gopter.Gen + +// PortRangeGenerator returns a generator of PortRange instances for property testing. +func PortRangeGenerator() gopter.Gen { + if portRangeGenerator != nil { + return portRangeGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange(generators) + portRangeGenerator = gen.Struct(reflect.TypeOf(PortRange{}), generators) + + return portRangeGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.OneConstOf(PortRange_Protocol_TCP, PortRange_Protocol_UDP)) +} + +func Test_PortRange_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PortRange_STATUS to PortRange_STATUS via AssignProperties_To_PortRange_STATUS & AssignProperties_From_PortRange_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPortRange_STATUS, PortRange_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPortRange_STATUS tests if a specific instance of PortRange_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPortRange_STATUS(subject PortRange_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.PortRange_STATUS + err := copied.AssignProperties_To_PortRange_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PortRange_STATUS + err = actual.AssignProperties_From_PortRange_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_PortRange_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange_STATUS, PortRange_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange_STATUS runs a test to see if a specific instance of PortRange_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange_STATUS(subject PortRange_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange_STATUS instances for property testing - lazily instantiated by PortRange_STATUSGenerator() +var portRange_STATUSGenerator gopter.Gen + +// PortRange_STATUSGenerator returns a generator of PortRange_STATUS instances for property testing. +func PortRange_STATUSGenerator() gopter.Gen { + if portRange_STATUSGenerator != nil { + return portRange_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange_STATUS(generators) + portRange_STATUSGenerator = gen.Struct(reflect.TypeOf(PortRange_STATUS{}), generators) + + return portRange_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange_STATUS(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.OneConstOf(PortRange_Protocol_STATUS_TCP, PortRange_Protocol_STATUS_UDP)) +} + +func Test_SysctlConfig_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SysctlConfig to SysctlConfig via AssignProperties_To_SysctlConfig & AssignProperties_From_SysctlConfig returns original", + prop.ForAll(RunPropertyAssignmentTestForSysctlConfig, SysctlConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSysctlConfig tests if a specific instance of SysctlConfig can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSysctlConfig(subject SysctlConfig) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SysctlConfig + err := copied.AssignProperties_To_SysctlConfig(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SysctlConfig + err = actual.AssignProperties_From_SysctlConfig(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_SysctlConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig, SysctlConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig runs a test to see if a specific instance of SysctlConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig(subject SysctlConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig instances for property testing - lazily instantiated by SysctlConfigGenerator() +var sysctlConfigGenerator gopter.Gen + +// SysctlConfigGenerator returns a generator of SysctlConfig instances for property testing. +func SysctlConfigGenerator() gopter.Gen { + if sysctlConfigGenerator != nil { + return sysctlConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig(generators) + sysctlConfigGenerator = gen.Struct(reflect.TypeOf(SysctlConfig{}), generators) + + return sysctlConfigGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} + +func Test_SysctlConfig_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SysctlConfig_STATUS to SysctlConfig_STATUS via AssignProperties_To_SysctlConfig_STATUS & AssignProperties_From_SysctlConfig_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForSysctlConfig_STATUS, SysctlConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSysctlConfig_STATUS tests if a specific instance of SysctlConfig_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForSysctlConfig_STATUS(subject SysctlConfig_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20231001s.SysctlConfig_STATUS + err := copied.AssignProperties_To_SysctlConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SysctlConfig_STATUS + err = actual.AssignProperties_From_SysctlConfig_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_SysctlConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig_STATUS, SysctlConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig_STATUS runs a test to see if a specific instance of SysctlConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig_STATUS(subject SysctlConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig_STATUS instances for property testing - lazily instantiated by +// SysctlConfig_STATUSGenerator() +var sysctlConfig_STATUSGenerator gopter.Gen + +// SysctlConfig_STATUSGenerator returns a generator of SysctlConfig_STATUS instances for property testing. +func SysctlConfig_STATUSGenerator() gopter.Gen { + if sysctlConfig_STATUSGenerator != nil { + return sysctlConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig_STATUS(generators) + sysctlConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(SysctlConfig_STATUS{}), generators) + + return sysctlConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig_STATUS(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} diff --git a/v2/api/containerservice/v1api20231001/storage/groupversion_info_gen.go b/v2/api/containerservice/v1api20231001/storage/groupversion_info_gen.go new file mode 100644 index 00000000000..146e5775591 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package storage contains API Schema definitions for the containerservice storage API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=containerservice.azure.com +// +versionName=v1api20231001storage +package storage + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "containerservice.azure.com", Version: "v1api20231001storage"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder +) diff --git a/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen.go b/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen.go new file mode 100644 index 00000000000..80fe28bec97 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen.go @@ -0,0 +1,1559 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "context" + "github.com/Azure/azure-service-operator/v2/internal/genericarmclient" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/configmaps" + "github.com/go-logr/logr" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// +kubebuilder:rbac:groups=containerservice.azure.com,resources=managedclusters,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=containerservice.azure.com,resources={managedclusters/status,managedclusters/finalizers},verbs=get;update;patch + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Storage version of v1api20231001.ManagedCluster +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName} +type ManagedCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ManagedCluster_Spec `json:"spec,omitempty"` + Status ManagedCluster_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ManagedCluster{} + +// GetConditions returns the conditions of the resource +func (cluster *ManagedCluster) GetConditions() conditions.Conditions { + return cluster.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (cluster *ManagedCluster) SetConditions(conditions conditions.Conditions) { + cluster.Status.Conditions = conditions +} + +var _ genruntime.KubernetesExporter = &ManagedCluster{} + +// ExportKubernetesResources defines a resource which can create other resources in Kubernetes. +func (cluster *ManagedCluster) ExportKubernetesResources(_ context.Context, _ genruntime.MetaObject, _ *genericarmclient.GenericClient, _ logr.Logger) ([]client.Object, error) { + collector := configmaps.NewCollector(cluster.Namespace) + if cluster.Spec.OperatorSpec != nil && cluster.Spec.OperatorSpec.ConfigMaps != nil { + if cluster.Status.OidcIssuerProfile != nil { + if cluster.Status.OidcIssuerProfile.IssuerURL != nil { + collector.AddValue(cluster.Spec.OperatorSpec.ConfigMaps.OIDCIssuerProfile, *cluster.Status.OidcIssuerProfile.IssuerURL) + } + } + } + result, err := collector.Values() + if err != nil { + return nil, err + } + return configmaps.SliceToClientObjectSlice(result), nil +} + +var _ genruntime.KubernetesResource = &ManagedCluster{} + +// AzureName returns the Azure name of the resource +func (cluster *ManagedCluster) AzureName() string { + return cluster.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (cluster ManagedCluster) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (cluster *ManagedCluster) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (cluster *ManagedCluster) GetSpec() genruntime.ConvertibleSpec { + return &cluster.Spec +} + +// GetStatus returns the status of this resource +func (cluster *ManagedCluster) GetStatus() genruntime.ConvertibleStatus { + return &cluster.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (cluster *ManagedCluster) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters" +func (cluster *ManagedCluster) GetType() string { + return "Microsoft.ContainerService/managedClusters" +} + +// NewEmptyStatus returns a new empty (blank) status +func (cluster *ManagedCluster) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ManagedCluster_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (cluster *ManagedCluster) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(cluster.Spec) + return cluster.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (cluster *ManagedCluster) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ManagedCluster_STATUS); ok { + cluster.Status = *st + return nil + } + + // Convert status to required version + var st ManagedCluster_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + cluster.Status = st + return nil +} + +// Hub marks that this ManagedCluster is the hub type for conversion +func (cluster *ManagedCluster) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (cluster *ManagedCluster) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: cluster.Spec.OriginalVersion, + Kind: "ManagedCluster", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20231001.ManagedCluster +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName} +type ManagedClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ManagedCluster `json:"items"` +} + +// Storage version of v1api20231001.APIVersion +// +kubebuilder:validation:Enum={"2023-10-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-10-01") + +// Storage version of v1api20231001.ManagedCluster_Spec +type ManagedCluster_Spec struct { + AadProfile *ManagedClusterAADProfile `json:"aadProfile,omitempty"` + AddonProfiles map[string]ManagedClusterAddonProfile `json:"addonProfiles,omitempty"` + AgentPoolProfiles []ManagedClusterAgentPoolProfile `json:"agentPoolProfiles,omitempty"` + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile `json:"apiServerAccessProfile,omitempty"` + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile `json:"autoScalerProfile,omitempty"` + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile `json:"autoUpgradeProfile,omitempty"` + AzureMonitorProfile *ManagedClusterAzureMonitorProfile `json:"azureMonitorProfile,omitempty"` + + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + + // DiskEncryptionSetReference: This is of the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}' + DiskEncryptionSetReference *genruntime.ResourceReference `armReference:"DiskEncryptionSetID" json:"diskEncryptionSetReference,omitempty"` + DnsPrefix *string `json:"dnsPrefix,omitempty"` + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + EnableRBAC *bool `json:"enableRBAC,omitempty"` + ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"` + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + HttpProxyConfig *ManagedClusterHTTPProxyConfig `json:"httpProxyConfig,omitempty"` + Identity *ManagedClusterIdentity `json:"identity,omitempty"` + IdentityProfile map[string]UserAssignedIdentity `json:"identityProfile,omitempty"` + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + LinuxProfile *ContainerServiceLinuxProfile `json:"linuxProfile,omitempty"` + Location *string `json:"location,omitempty"` + NetworkProfile *ContainerServiceNetworkProfile `json:"networkProfile,omitempty"` + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile `json:"oidcIssuerProfile,omitempty"` + OperatorSpec *ManagedClusterOperatorSpec `json:"operatorSpec,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + PodIdentityProfile *ManagedClusterPodIdentityProfile `json:"podIdentityProfile,omitempty"` + PrivateLinkResources []PrivateLinkResource `json:"privateLinkResources,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + SecurityProfile *ManagedClusterSecurityProfile `json:"securityProfile,omitempty"` + ServiceMeshProfile *ServiceMeshProfile `json:"serviceMeshProfile,omitempty"` + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"` + Sku *ManagedClusterSKU `json:"sku,omitempty"` + StorageProfile *ManagedClusterStorageProfile `json:"storageProfile,omitempty"` + SupportPlan *string `json:"supportPlan,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + UpgradeSettings *ClusterUpgradeSettings `json:"upgradeSettings,omitempty"` + WindowsProfile *ManagedClusterWindowsProfile `json:"windowsProfile,omitempty"` + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile `json:"workloadAutoScalerProfile,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &ManagedCluster_Spec{} + +// ConvertSpecFrom populates our ManagedCluster_Spec from the provided source +func (cluster *ManagedCluster_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == cluster { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(cluster) +} + +// ConvertSpecTo populates the provided destination from our ManagedCluster_Spec +func (cluster *ManagedCluster_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == cluster { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(cluster) +} + +// Storage version of v1api20231001.ManagedCluster_STATUS +// Managed cluster. +type ManagedCluster_STATUS struct { + AadProfile *ManagedClusterAADProfile_STATUS `json:"aadProfile,omitempty"` + AddonProfiles map[string]ManagedClusterAddonProfile_STATUS `json:"addonProfiles,omitempty"` + AgentPoolProfiles []ManagedClusterAgentPoolProfile_STATUS `json:"agentPoolProfiles,omitempty"` + ApiServerAccessProfile *ManagedClusterAPIServerAccessProfile_STATUS `json:"apiServerAccessProfile,omitempty"` + AutoScalerProfile *ManagedClusterProperties_AutoScalerProfile_STATUS `json:"autoScalerProfile,omitempty"` + AutoUpgradeProfile *ManagedClusterAutoUpgradeProfile_STATUS `json:"autoUpgradeProfile,omitempty"` + AzureMonitorProfile *ManagedClusterAzureMonitorProfile_STATUS `json:"azureMonitorProfile,omitempty"` + AzurePortalFQDN *string `json:"azurePortalFQDN,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + CurrentKubernetesVersion *string `json:"currentKubernetesVersion,omitempty"` + DisableLocalAccounts *bool `json:"disableLocalAccounts,omitempty"` + DiskEncryptionSetID *string `json:"diskEncryptionSetID,omitempty"` + DnsPrefix *string `json:"dnsPrefix,omitempty"` + EnablePodSecurityPolicy *bool `json:"enablePodSecurityPolicy,omitempty"` + EnableRBAC *bool `json:"enableRBAC,omitempty"` + ExtendedLocation *ExtendedLocation_STATUS `json:"extendedLocation,omitempty"` + Fqdn *string `json:"fqdn,omitempty"` + FqdnSubdomain *string `json:"fqdnSubdomain,omitempty"` + HttpProxyConfig *ManagedClusterHTTPProxyConfig_STATUS `json:"httpProxyConfig,omitempty"` + Id *string `json:"id,omitempty"` + Identity *ManagedClusterIdentity_STATUS `json:"identity,omitempty"` + IdentityProfile map[string]UserAssignedIdentity_STATUS `json:"identityProfile,omitempty"` + KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + LinuxProfile *ContainerServiceLinuxProfile_STATUS `json:"linuxProfile,omitempty"` + Location *string `json:"location,omitempty"` + MaxAgentPools *int `json:"maxAgentPools,omitempty"` + Name *string `json:"name,omitempty"` + NetworkProfile *ContainerServiceNetworkProfile_STATUS `json:"networkProfile,omitempty"` + NodeResourceGroup *string `json:"nodeResourceGroup,omitempty"` + OidcIssuerProfile *ManagedClusterOIDCIssuerProfile_STATUS `json:"oidcIssuerProfile,omitempty"` + PodIdentityProfile *ManagedClusterPodIdentityProfile_STATUS `json:"podIdentityProfile,omitempty"` + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + PrivateFQDN *string `json:"privateFQDN,omitempty"` + PrivateLinkResources []PrivateLinkResource_STATUS `json:"privateLinkResources,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + ResourceUID *string `json:"resourceUID,omitempty"` + SecurityProfile *ManagedClusterSecurityProfile_STATUS `json:"securityProfile,omitempty"` + ServiceMeshProfile *ServiceMeshProfile_STATUS `json:"serviceMeshProfile,omitempty"` + ServicePrincipalProfile *ManagedClusterServicePrincipalProfile_STATUS `json:"servicePrincipalProfile,omitempty"` + Sku *ManagedClusterSKU_STATUS `json:"sku,omitempty"` + StorageProfile *ManagedClusterStorageProfile_STATUS `json:"storageProfile,omitempty"` + SupportPlan *string `json:"supportPlan,omitempty"` + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *ClusterUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + WindowsProfile *ManagedClusterWindowsProfile_STATUS `json:"windowsProfile,omitempty"` + WorkloadAutoScalerProfile *ManagedClusterWorkloadAutoScalerProfile_STATUS `json:"workloadAutoScalerProfile,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ManagedCluster_STATUS{} + +// ConvertStatusFrom populates our ManagedCluster_STATUS from the provided source +func (cluster *ManagedCluster_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == cluster { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(cluster) +} + +// ConvertStatusTo populates the provided destination from our ManagedCluster_STATUS +func (cluster *ManagedCluster_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == cluster { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(cluster) +} + +// Storage version of v1api20231001.ClusterUpgradeSettings +// Settings for upgrading a cluster. +type ClusterUpgradeSettings struct { + OverrideSettings *UpgradeOverrideSettings `json:"overrideSettings,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ClusterUpgradeSettings_STATUS +// Settings for upgrading a cluster. +type ClusterUpgradeSettings_STATUS struct { + OverrideSettings *UpgradeOverrideSettings_STATUS `json:"overrideSettings,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceLinuxProfile +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile struct { + AdminUsername *string `json:"adminUsername,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Ssh *ContainerServiceSshConfiguration `json:"ssh,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceLinuxProfile_STATUS +// Profile for Linux VMs in the container service cluster. +type ContainerServiceLinuxProfile_STATUS struct { + AdminUsername *string `json:"adminUsername,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Ssh *ContainerServiceSshConfiguration_STATUS `json:"ssh,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceNetworkProfile +// Profile of network configuration. +type ContainerServiceNetworkProfile struct { + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + IpFamilies []string `json:"ipFamilies,omitempty"` + LoadBalancerProfile *ManagedClusterLoadBalancerProfile `json:"loadBalancerProfile,omitempty"` + LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` + NatGatewayProfile *ManagedClusterNATGatewayProfile `json:"natGatewayProfile,omitempty"` + NetworkDataplane *string `json:"networkDataplane,omitempty"` + NetworkMode *string `json:"networkMode,omitempty"` + NetworkPlugin *string `json:"networkPlugin,omitempty"` + NetworkPluginMode *string `json:"networkPluginMode,omitempty"` + NetworkPolicy *string `json:"networkPolicy,omitempty"` + OutboundType *string `json:"outboundType,omitempty"` + PodCidr *string `json:"podCidr,omitempty"` + PodCidrs []string `json:"podCidrs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServiceCidr *string `json:"serviceCidr,omitempty"` + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceNetworkProfile_STATUS +// Profile of network configuration. +type ContainerServiceNetworkProfile_STATUS struct { + DnsServiceIP *string `json:"dnsServiceIP,omitempty"` + IpFamilies []string `json:"ipFamilies,omitempty"` + LoadBalancerProfile *ManagedClusterLoadBalancerProfile_STATUS `json:"loadBalancerProfile,omitempty"` + LoadBalancerSku *string `json:"loadBalancerSku,omitempty"` + NatGatewayProfile *ManagedClusterNATGatewayProfile_STATUS `json:"natGatewayProfile,omitempty"` + NetworkDataplane *string `json:"networkDataplane,omitempty"` + NetworkMode *string `json:"networkMode,omitempty"` + NetworkPlugin *string `json:"networkPlugin,omitempty"` + NetworkPluginMode *string `json:"networkPluginMode,omitempty"` + NetworkPolicy *string `json:"networkPolicy,omitempty"` + OutboundType *string `json:"outboundType,omitempty"` + PodCidr *string `json:"podCidr,omitempty"` + PodCidrs []string `json:"podCidrs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServiceCidr *string `json:"serviceCidr,omitempty"` + ServiceCidrs []string `json:"serviceCidrs,omitempty"` +} + +// Storage version of v1api20231001.ExtendedLocation +// The complex type of the extended location. +type ExtendedLocation struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20231001.ExtendedLocation_STATUS +// The complex type of the extended location. +type ExtendedLocation_STATUS struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAADProfile +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile struct { + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + ClientAppID *string `json:"clientAppID,omitempty"` + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + Managed *bool `json:"managed,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServerAppID *string `json:"serverAppID,omitempty"` + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + TenantID *string `json:"tenantID,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAADProfile_STATUS +// For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad). +type ManagedClusterAADProfile_STATUS struct { + AdminGroupObjectIDs []string `json:"adminGroupObjectIDs,omitempty"` + ClientAppID *string `json:"clientAppID,omitempty"` + EnableAzureRBAC *bool `json:"enableAzureRBAC,omitempty"` + Managed *bool `json:"managed,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ServerAppID *string `json:"serverAppID,omitempty"` + ServerAppSecret *string `json:"serverAppSecret,omitempty"` + TenantID *string `json:"tenantID,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAddonProfile +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile struct { + Config map[string]string `json:"config,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAddonProfile_STATUS +// A Kubernetes add-on profile for a managed cluster. +type ManagedClusterAddonProfile_STATUS struct { + Config map[string]string `json:"config,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAgentPoolProfile +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // CapacityReservationGroupReference: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupReference *genruntime.ResourceReference `armReference:"CapacityReservationGroupID" json:"capacityReservationGroupReference,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData `json:"creationData,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + + // HostGroupReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` + KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` + MaxCount *int `json:"maxCount,omitempty"` + MaxPods *int `json:"maxPods,omitempty"` + MinCount *int `json:"minCount,omitempty"` + Mode *string `json:"mode,omitempty"` + Name *string `json:"name,omitempty"` + NetworkProfile *AgentPoolNetworkProfile `json:"networkProfile,omitempty"` + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + + // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). + // This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` + PowerState *PowerState `json:"powerState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // ProximityPlacementGroupReference: The ID for Proximity Placement Group. + ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is + // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAgentPoolProfile_STATUS +// Profile for the container service agent pool. +type ManagedClusterAgentPoolProfile_STATUS struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData_STATUS `json:"creationData,omitempty"` + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + HostGroupID *string `json:"hostGroupID,omitempty"` + KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` + MaxCount *int `json:"maxCount,omitempty"` + MaxPods *int `json:"maxPods,omitempty"` + MinCount *int `json:"minCount,omitempty"` + Mode *string `json:"mode,omitempty"` + Name *string `json:"name,omitempty"` + NetworkProfile *AgentPoolNetworkProfile_STATUS `json:"networkProfile,omitempty"` + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + PodSubnetID *string `json:"podSubnetID,omitempty"` + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAPIServerAccessProfile +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile struct { + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAPIServerAccessProfile_STATUS +// Access profile for managed cluster API server. +type ManagedClusterAPIServerAccessProfile_STATUS struct { + AuthorizedIPRanges []string `json:"authorizedIPRanges,omitempty"` + DisableRunCommand *bool `json:"disableRunCommand,omitempty"` + EnablePrivateCluster *bool `json:"enablePrivateCluster,omitempty"` + EnablePrivateClusterPublicFQDN *bool `json:"enablePrivateClusterPublicFQDN,omitempty"` + PrivateDNSZone *string `json:"privateDNSZone,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAutoUpgradeProfile +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile struct { + NodeOSUpgradeChannel *string `json:"nodeOSUpgradeChannel,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpgradeChannel *string `json:"upgradeChannel,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAutoUpgradeProfile_STATUS +// Auto upgrade profile for a managed cluster. +type ManagedClusterAutoUpgradeProfile_STATUS struct { + NodeOSUpgradeChannel *string `json:"nodeOSUpgradeChannel,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UpgradeChannel *string `json:"upgradeChannel,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfile +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile struct { + Metrics *ManagedClusterAzureMonitorProfileMetrics `json:"metrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfile_STATUS +// Azure Monitor addon profiles for monitoring the managed cluster. +type ManagedClusterAzureMonitorProfile_STATUS struct { + Metrics *ManagedClusterAzureMonitorProfileMetrics_STATUS `json:"metrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterHTTPProxyConfig +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig struct { + HttpProxy *string `json:"httpProxy,omitempty"` + HttpsProxy *string `json:"httpsProxy,omitempty"` + NoProxy []string `json:"noProxy,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TrustedCa *string `json:"trustedCa,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterHTTPProxyConfig_STATUS +// Cluster HTTP proxy configuration. +type ManagedClusterHTTPProxyConfig_STATUS struct { + HttpProxy *string `json:"httpProxy,omitempty"` + HttpsProxy *string `json:"httpsProxy,omitempty"` + NoProxy []string `json:"noProxy,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TrustedCa *string `json:"trustedCa,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterIdentity +// Identity for the managed cluster. +type ManagedClusterIdentity struct { + DelegatedResources map[string]DelegatedResource `json:"delegatedResources,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterIdentity_STATUS +// Identity for the managed cluster. +type ManagedClusterIdentity_STATUS struct { + DelegatedResources map[string]DelegatedResource_STATUS `json:"delegatedResources,omitempty"` + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TenantId *string `json:"tenantId,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS `json:"userAssignedIdentities,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterOIDCIssuerProfile +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterOIDCIssuerProfile_STATUS +// The OIDC issuer profile of the Managed Cluster. +type ManagedClusterOIDCIssuerProfile_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + IssuerURL *string `json:"issuerURL,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterOperatorSpec +// Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure +type ManagedClusterOperatorSpec struct { + ConfigMaps *ManagedClusterOperatorConfigMaps `json:"configMaps,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Secrets *ManagedClusterOperatorSecrets `json:"secrets,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityProfile +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile struct { + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserAssignedIdentities []ManagedClusterPodIdentity `json:"userAssignedIdentities,omitempty"` + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException `json:"userAssignedIdentityExceptions,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityProfile_STATUS +// See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod +// identity integration. +type ManagedClusterPodIdentityProfile_STATUS struct { + AllowNetworkPluginKubenet *bool `json:"allowNetworkPluginKubenet,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserAssignedIdentities []ManagedClusterPodIdentity_STATUS `json:"userAssignedIdentities,omitempty"` + UserAssignedIdentityExceptions []ManagedClusterPodIdentityException_STATUS `json:"userAssignedIdentityExceptions,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterProperties_AutoScalerProfile +type ManagedClusterProperties_AutoScalerProfile struct { + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + Expander *string `json:"expander,omitempty"` + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + ScanInterval *string `json:"scan-interval,omitempty"` + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterProperties_AutoScalerProfile_STATUS +type ManagedClusterProperties_AutoScalerProfile_STATUS struct { + BalanceSimilarNodeGroups *string `json:"balance-similar-node-groups,omitempty"` + Expander *string `json:"expander,omitempty"` + MaxEmptyBulkDelete *string `json:"max-empty-bulk-delete,omitempty"` + MaxGracefulTerminationSec *string `json:"max-graceful-termination-sec,omitempty"` + MaxNodeProvisionTime *string `json:"max-node-provision-time,omitempty"` + MaxTotalUnreadyPercentage *string `json:"max-total-unready-percentage,omitempty"` + NewPodScaleUpDelay *string `json:"new-pod-scale-up-delay,omitempty"` + OkTotalUnreadyCount *string `json:"ok-total-unready-count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ScaleDownDelayAfterAdd *string `json:"scale-down-delay-after-add,omitempty"` + ScaleDownDelayAfterDelete *string `json:"scale-down-delay-after-delete,omitempty"` + ScaleDownDelayAfterFailure *string `json:"scale-down-delay-after-failure,omitempty"` + ScaleDownUnneededTime *string `json:"scale-down-unneeded-time,omitempty"` + ScaleDownUnreadyTime *string `json:"scale-down-unready-time,omitempty"` + ScaleDownUtilizationThreshold *string `json:"scale-down-utilization-threshold,omitempty"` + ScanInterval *string `json:"scan-interval,omitempty"` + SkipNodesWithLocalStorage *string `json:"skip-nodes-with-local-storage,omitempty"` + SkipNodesWithSystemPods *string `json:"skip-nodes-with-system-pods,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfile +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile struct { + AzureKeyVaultKms *AzureKeyVaultKms `json:"azureKeyVaultKms,omitempty"` + Defender *ManagedClusterSecurityProfileDefender `json:"defender,omitempty"` + ImageCleaner *ManagedClusterSecurityProfileImageCleaner `json:"imageCleaner,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity `json:"workloadIdentity,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfile_STATUS +// Security profile for the container service cluster. +type ManagedClusterSecurityProfile_STATUS struct { + AzureKeyVaultKms *AzureKeyVaultKms_STATUS `json:"azureKeyVaultKms,omitempty"` + Defender *ManagedClusterSecurityProfileDefender_STATUS `json:"defender,omitempty"` + ImageCleaner *ManagedClusterSecurityProfileImageCleaner_STATUS `json:"imageCleaner,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + WorkloadIdentity *ManagedClusterSecurityProfileWorkloadIdentity_STATUS `json:"workloadIdentity,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterServicePrincipalProfile +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile struct { + ClientId *string `json:"clientId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Secret *genruntime.SecretReference `json:"secret,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterServicePrincipalProfile_STATUS +// Information about a service principal identity for the cluster to use for manipulating Azure APIs. +type ManagedClusterServicePrincipalProfile_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSKU +// The SKU of a Managed Cluster. +type ManagedClusterSKU struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tier *string `json:"tier,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSKU_STATUS +// The SKU of a Managed Cluster. +type ManagedClusterSKU_STATUS struct { + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tier *string `json:"tier,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfile +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile struct { + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver `json:"blobCSIDriver,omitempty"` + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver `json:"diskCSIDriver,omitempty"` + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver `json:"fileCSIDriver,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SnapshotController *ManagedClusterStorageProfileSnapshotController `json:"snapshotController,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfile_STATUS +// Storage profile for the container service cluster. +type ManagedClusterStorageProfile_STATUS struct { + BlobCSIDriver *ManagedClusterStorageProfileBlobCSIDriver_STATUS `json:"blobCSIDriver,omitempty"` + DiskCSIDriver *ManagedClusterStorageProfileDiskCSIDriver_STATUS `json:"diskCSIDriver,omitempty"` + FileCSIDriver *ManagedClusterStorageProfileFileCSIDriver_STATUS `json:"fileCSIDriver,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SnapshotController *ManagedClusterStorageProfileSnapshotController_STATUS `json:"snapshotController,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWindowsProfile +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile struct { + AdminPassword *string `json:"adminPassword,omitempty"` + AdminUsername *string `json:"adminUsername,omitempty"` + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + GmsaProfile *WindowsGmsaProfile `json:"gmsaProfile,omitempty"` + LicenseType *string `json:"licenseType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWindowsProfile_STATUS +// Profile for Windows VMs in the managed cluster. +type ManagedClusterWindowsProfile_STATUS struct { + AdminPassword *string `json:"adminPassword,omitempty"` + AdminUsername *string `json:"adminUsername,omitempty"` + EnableCSIProxy *bool `json:"enableCSIProxy,omitempty"` + GmsaProfile *WindowsGmsaProfile_STATUS `json:"gmsaProfile,omitempty"` + LicenseType *string `json:"licenseType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfile +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile struct { + Keda *ManagedClusterWorkloadAutoScalerProfileKeda `json:"keda,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler `json:"verticalPodAutoscaler,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfile_STATUS +// Workload Auto-scaler profile for the managed cluster. +type ManagedClusterWorkloadAutoScalerProfile_STATUS struct { + Keda *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS `json:"keda,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + VerticalPodAutoscaler *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS `json:"verticalPodAutoscaler,omitempty"` +} + +// Storage version of v1api20231001.PowerState_STATUS +// Describes the Power State of the cluster +type PowerState_STATUS struct { + Code *string `json:"code,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.PrivateLinkResource +// A private link resource +type PrivateLinkResource struct { + GroupId *string `json:"groupId,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // Reference: The ID of the private link resource. + Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` + RequiredMembers []string `json:"requiredMembers,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20231001.PrivateLinkResource_STATUS +// A private link resource +type PrivateLinkResource_STATUS struct { + GroupId *string `json:"groupId,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + PrivateLinkServiceID *string `json:"privateLinkServiceID,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RequiredMembers []string `json:"requiredMembers,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20231001.ServiceMeshProfile +// Service mesh profile for a managed cluster. +type ServiceMeshProfile struct { + Istio *IstioServiceMesh `json:"istio,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ServiceMeshProfile_STATUS +// Service mesh profile for a managed cluster. +type ServiceMeshProfile_STATUS struct { + Istio *IstioServiceMesh_STATUS `json:"istio,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.SystemData_STATUS +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS struct { + CreatedAt *string `json:"createdAt,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + CreatedByType *string `json:"createdByType,omitempty"` + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + LastModifiedByType *string `json:"lastModifiedByType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.UserAssignedIdentity +// Details about a user assigned identity. +type UserAssignedIdentity struct { + ClientId *string `json:"clientId,omitempty"` + ObjectId *string `json:"objectId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // ResourceReference: The resource ID of the user assigned identity. + ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` +} + +// Storage version of v1api20231001.UserAssignedIdentity_STATUS +// Details about a user assigned identity. +type UserAssignedIdentity_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + ObjectId *string `json:"objectId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` +} + +// Storage version of v1api20231001.AzureKeyVaultKms +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms struct { + Enabled *bool `json:"enabled,omitempty"` + KeyId *string `json:"keyId,omitempty"` + KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` + + // KeyVaultResourceReference: Resource ID of key vault. When keyVaultNetworkAccess is `Private`, this field is required and + // must be a valid resource ID. When keyVaultNetworkAccess is `Public`, leave the field empty. + KeyVaultResourceReference *genruntime.ResourceReference `armReference:"KeyVaultResourceId" json:"keyVaultResourceReference,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.AzureKeyVaultKms_STATUS +// Azure Key Vault key management service settings for the security profile. +type AzureKeyVaultKms_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + KeyId *string `json:"keyId,omitempty"` + KeyVaultNetworkAccess *string `json:"keyVaultNetworkAccess,omitempty"` + KeyVaultResourceId *string `json:"keyVaultResourceId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceSshConfiguration +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicKeys []ContainerServiceSshPublicKey `json:"publicKeys,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceSshConfiguration_STATUS +// SSH configuration for Linux-based VMs running on Azure. +type ContainerServiceSshConfiguration_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicKeys []ContainerServiceSshPublicKey_STATUS `json:"publicKeys,omitempty"` +} + +// Storage version of v1api20231001.DelegatedResource +// Delegated resource properties - internal use only. +type DelegatedResource struct { + Location *string `json:"location,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ReferralResource *string `json:"referralResource,omitempty"` + + // ResourceReference: The ARM resource id of the delegated resource - internal use only. + ResourceReference *genruntime.ResourceReference `armReference:"ResourceId" json:"resourceReference,omitempty"` + TenantId *string `json:"tenantId,omitempty"` +} + +// Storage version of v1api20231001.DelegatedResource_STATUS +// Delegated resource properties - internal use only. +type DelegatedResource_STATUS struct { + Location *string `json:"location,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ReferralResource *string `json:"referralResource,omitempty"` + ResourceId *string `json:"resourceId,omitempty"` + TenantId *string `json:"tenantId,omitempty"` +} + +// Storage version of v1api20231001.IstioServiceMesh +// Istio service mesh configuration. +type IstioServiceMesh struct { + CertificateAuthority *IstioCertificateAuthority `json:"certificateAuthority,omitempty"` + Components *IstioComponents `json:"components,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Revisions []string `json:"revisions,omitempty"` +} + +// Storage version of v1api20231001.IstioServiceMesh_STATUS +// Istio service mesh configuration. +type IstioServiceMesh_STATUS struct { + CertificateAuthority *IstioCertificateAuthority_STATUS `json:"certificateAuthority,omitempty"` + Components *IstioComponents_STATUS `json:"components,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Revisions []string `json:"revisions,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfileMetrics +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics struct { + Enabled *bool `json:"enabled,omitempty"` + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics `json:"kubeStateMetrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfileMetrics_STATUS +// Metrics profile for the Azure Monitor managed service for Prometheus addon. Collect out-of-the-box Kubernetes +// infrastructure metrics to send to an Azure Monitor Workspace and configure additional scraping for custom targets. See +// aka.ms/AzureManagedPrometheus for an overview. +type ManagedClusterAzureMonitorProfileMetrics_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + KubeStateMetrics *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS `json:"kubeStateMetrics,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterIdentity_UserAssignedIdentities_STATUS +type ManagedClusterIdentity_UserAssignedIdentities_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile struct { + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + BackendPoolType *string `json:"backendPoolType,omitempty"` + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs `json:"managedOutboundIPs,omitempty"` + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes `json:"outboundIPPrefixes,omitempty"` + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs `json:"outboundIPs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_STATUS +// Profile of the managed cluster load balancer. +type ManagedClusterLoadBalancerProfile_STATUS struct { + AllocatedOutboundPorts *int `json:"allocatedOutboundPorts,omitempty"` + BackendPoolType *string `json:"backendPoolType,omitempty"` + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + EnableMultipleStandardLoadBalancers *bool `json:"enableMultipleStandardLoadBalancers,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPs *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS `json:"managedOutboundIPs,omitempty"` + OutboundIPPrefixes *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS `json:"outboundIPPrefixes,omitempty"` + OutboundIPs *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS `json:"outboundIPs,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterNATGatewayProfile +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile struct { + EffectiveOutboundIPs []ResourceReference `json:"effectiveOutboundIPs,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile `json:"managedOutboundIPProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterNATGatewayProfile_STATUS +// Profile of the managed cluster NAT gateway. +type ManagedClusterNATGatewayProfile_STATUS struct { + EffectiveOutboundIPs []ResourceReference_STATUS `json:"effectiveOutboundIPs,omitempty"` + IdleTimeoutInMinutes *int `json:"idleTimeoutInMinutes,omitempty"` + ManagedOutboundIPProfile *ManagedClusterManagedOutboundIPProfile_STATUS `json:"managedOutboundIPProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterOperatorConfigMaps +type ManagedClusterOperatorConfigMaps struct { + OIDCIssuerProfile *genruntime.ConfigMapDestination `json:"oidcIssuerProfile,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterOperatorSecrets +type ManagedClusterOperatorSecrets struct { + AdminCredentials *genruntime.SecretDestination `json:"adminCredentials,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + UserCredentials *genruntime.SecretDestination `json:"userCredentials,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentity +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity struct { + BindingSelector *string `json:"bindingSelector,omitempty"` + Identity *UserAssignedIdentity `json:"identity,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentity_STATUS +// Details about the pod identity assigned to the Managed Cluster. +type ManagedClusterPodIdentity_STATUS struct { + BindingSelector *string `json:"bindingSelector,omitempty"` + Identity *UserAssignedIdentity_STATUS `json:"identity,omitempty"` + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningInfo *ManagedClusterPodIdentity_ProvisioningInfo_STATUS `json:"provisioningInfo,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityException +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException struct { + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PodLabels map[string]string `json:"podLabels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityException_STATUS +// See [disable AAD Pod Identity for a specific +// Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details. +type ManagedClusterPodIdentityException_STATUS struct { + Name *string `json:"name,omitempty"` + Namespace *string `json:"namespace,omitempty"` + PodLabels map[string]string `json:"podLabels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileDefender +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender struct { + // LogAnalyticsWorkspaceResourceReference: Resource ID of the Log Analytics workspace to be associated with Microsoft + // Defender. When Microsoft Defender is enabled, this field is required and must be a valid workspace resource ID. When + // Microsoft Defender is disabled, leave the field empty. + LogAnalyticsWorkspaceResourceReference *genruntime.ResourceReference `armReference:"LogAnalyticsWorkspaceResourceId" json:"logAnalyticsWorkspaceResourceReference,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring `json:"securityMonitoring,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileDefender_STATUS +// Microsoft Defender settings for the security profile. +type ManagedClusterSecurityProfileDefender_STATUS struct { + LogAnalyticsWorkspaceResourceId *string `json:"logAnalyticsWorkspaceResourceId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SecurityMonitoring *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS `json:"securityMonitoring,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileImageCleaner +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner struct { + Enabled *bool `json:"enabled,omitempty"` + IntervalHours *int `json:"intervalHours,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileImageCleaner_STATUS +// Image Cleaner removes unused images from nodes, freeing up disk space and helping to reduce attack surface area. Here +// are settings for the security profile. +type ManagedClusterSecurityProfileImageCleaner_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + IntervalHours *int `json:"intervalHours,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileWorkloadIdentity +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileWorkloadIdentity_STATUS +// Workload identity settings for the security profile. +type ManagedClusterSecurityProfileWorkloadIdentity_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileBlobCSIDriver +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileBlobCSIDriver_STATUS +// AzureBlob CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileBlobCSIDriver_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileDiskCSIDriver +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileDiskCSIDriver_STATUS +// AzureDisk CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileDiskCSIDriver_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileFileCSIDriver +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileFileCSIDriver_STATUS +// AzureFile CSI Driver settings for the storage profile. +type ManagedClusterStorageProfileFileCSIDriver_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileSnapshotController +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterStorageProfileSnapshotController_STATUS +// Snapshot Controller settings for the storage profile. +type ManagedClusterStorageProfileSnapshotController_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfileKeda +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfileKeda_STATUS +// KEDA (Kubernetes Event-driven Autoscaling) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileKeda_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS +// VPA (Vertical Pod Autoscaler) settings for the workload auto-scaler profile. +type ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.UpgradeOverrideSettings +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings struct { + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` +} + +// Storage version of v1api20231001.UpgradeOverrideSettings_STATUS +// Settings for overrides when upgrading a cluster. +type UpgradeOverrideSettings_STATUS struct { + ForceUpgrade *bool `json:"forceUpgrade,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Until *string `json:"until,omitempty"` +} + +// Storage version of v1api20231001.UserAssignedIdentityDetails +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +} + +// Storage version of v1api20231001.WindowsGmsaProfile +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// Storage version of v1api20231001.WindowsGmsaProfile_STATUS +// Windows gMSA Profile in the managed cluster. +type WindowsGmsaProfile_STATUS struct { + DnsServer *string `json:"dnsServer,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootDomainName *string `json:"rootDomainName,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceSshPublicKey +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey struct { + KeyData *string `json:"keyData,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ContainerServiceSshPublicKey_STATUS +// Contains information about SSH certificate public key data. +type ContainerServiceSshPublicKey_STATUS struct { + KeyData *string `json:"keyData,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioCertificateAuthority +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority struct { + Plugin *IstioPluginCertificateAuthority `json:"plugin,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioCertificateAuthority_STATUS +// Istio Service Mesh Certificate Authority (CA) configuration. For now, we only support plugin certificates as described +// here https://aka.ms/asm-plugin-ca +type IstioCertificateAuthority_STATUS struct { + Plugin *IstioPluginCertificateAuthority_STATUS `json:"plugin,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioComponents +// Istio components configuration. +type IstioComponents struct { + EgressGateways []IstioEgressGateway `json:"egressGateways,omitempty"` + IngressGateways []IstioIngressGateway `json:"ingressGateways,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioComponents_STATUS +// Istio components configuration. +type IstioComponents_STATUS struct { + EgressGateways []IstioEgressGateway_STATUS `json:"egressGateways,omitempty"` + IngressGateways []IstioIngressGateway_STATUS `json:"ingressGateways,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfileKubeStateMetrics +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics struct { + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS +// Kube State Metrics profile for the Azure Managed Prometheus addon. These optional settings are for the +// kube-state-metrics pod that is deployed with the addon. See aka.ms/AzureManagedPrometheus-optional-parameters for +// details. +type ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS struct { + MetricAnnotationsAllowList *string `json:"metricAnnotationsAllowList,omitempty"` + MetricLabelsAllowlist *string `json:"metricLabelsAllowlist,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs struct { + Count *int `json:"count,omitempty"` + CountIPv6 *int `json:"countIPv6,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS +type ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS struct { + Count *int `json:"count,omitempty"` + CountIPv6 *int `json:"countIPv6,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicIPPrefixes []ResourceReference `json:"publicIPPrefixes,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS +type ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicIPPrefixes []ResourceReference_STATUS `json:"publicIPPrefixes,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_OutboundIPs +type ManagedClusterLoadBalancerProfile_OutboundIPs struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicIPs []ResourceReference `json:"publicIPs,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS +type ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicIPs []ResourceReference_STATUS `json:"publicIPs,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterManagedOutboundIPProfile +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile struct { + Count *int `json:"count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterManagedOutboundIPProfile_STATUS +// Profile of the managed outbound IP resources of the managed cluster. +type ManagedClusterManagedOutboundIPProfile_STATUS struct { + Count *int `json:"count,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentity_ProvisioningInfo_STATUS +type ManagedClusterPodIdentity_ProvisioningInfo_STATUS struct { + Error *ManagedClusterPodIdentityProvisioningError_STATUS `json:"error,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileDefenderSecurityMonitoring +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS +// Microsoft Defender settings for the security profile threat detection. +type ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ResourceReference +// A reference to an Azure resource. +type ResourceReference struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // Reference: The fully qualified Azure resource id. + Reference *genruntime.ResourceReference `armReference:"Id" json:"reference,omitempty"` +} + +// Storage version of v1api20231001.ResourceReference_STATUS +// A reference to an Azure resource. +type ResourceReference_STATUS struct { + Id *string `json:"id,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioEgressGateway +// Istio egress gateway configuration. +type IstioEgressGateway struct { + Enabled *bool `json:"enabled,omitempty"` + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioEgressGateway_STATUS +// Istio egress gateway configuration. +type IstioEgressGateway_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + NodeSelector map[string]string `json:"nodeSelector,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioIngressGateway +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway struct { + Enabled *bool `json:"enabled,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioIngressGateway_STATUS +// Istio ingress gateway configuration. For now, we support up to one external ingress gateway named +// `aks-istio-ingressgateway-external` and one internal ingress gateway named `aks-istio-ingressgateway-internal`. +type IstioIngressGateway_STATUS struct { + Enabled *bool `json:"enabled,omitempty"` + Mode *string `json:"mode,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IstioPluginCertificateAuthority +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority struct { + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + CertObjectName *string `json:"certObjectName,omitempty"` + KeyObjectName *string `json:"keyObjectName,omitempty"` + + // KeyVaultReference: The resource ID of the Key Vault. + KeyVaultReference *genruntime.ResourceReference `armReference:"KeyVaultId" json:"keyVaultReference,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} + +// Storage version of v1api20231001.IstioPluginCertificateAuthority_STATUS +// Plugin certificates information for Service Mesh. +type IstioPluginCertificateAuthority_STATUS struct { + CertChainObjectName *string `json:"certChainObjectName,omitempty"` + CertObjectName *string `json:"certObjectName,omitempty"` + KeyObjectName *string `json:"keyObjectName,omitempty"` + KeyVaultId *string `json:"keyVaultId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + RootCertObjectName *string `json:"rootCertObjectName,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityProvisioningError_STATUS +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningError_STATUS struct { + Error *ManagedClusterPodIdentityProvisioningErrorBody_STATUS `json:"error,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityProvisioningErrorBody_STATUS +// An error response from the pod identity provisioning. +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS struct { + Code *string `json:"code,omitempty"` + Details []ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled `json:"details,omitempty"` + Message *string `json:"message,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Target *string `json:"target,omitempty"` +} + +// Storage version of v1api20231001.ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled +type ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled struct { + Code *string `json:"code,omitempty"` + Message *string `json:"message,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Target *string `json:"target,omitempty"` +} + +func init() { + SchemeBuilder.Register(&ManagedCluster{}, &ManagedClusterList{}) +} diff --git a/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen_test.go b/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen_test.go new file mode 100644 index 00000000000..5a4d6d343b9 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/managed_cluster_types_gen_test.go @@ -0,0 +1,8557 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedCluster_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster, ManagedClusterGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster runs a test to see if a specific instance of ManagedCluster round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster(subject ManagedCluster) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster instances for property testing - lazily instantiated by ManagedClusterGenerator() +var managedClusterGenerator gopter.Gen + +// ManagedClusterGenerator returns a generator of ManagedCluster instances for property testing. +func ManagedClusterGenerator() gopter.Gen { + if managedClusterGenerator != nil { + return managedClusterGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedCluster(generators) + managedClusterGenerator = gen.Struct(reflect.TypeOf(ManagedCluster{}), generators) + + return managedClusterGenerator +} + +// AddRelatedPropertyGeneratorsForManagedCluster is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster(gens map[string]gopter.Gen) { + gens["Spec"] = ManagedCluster_SpecGenerator() + gens["Status"] = ManagedCluster_STATUSGenerator() +} + +func Test_ManagedCluster_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_Spec, ManagedCluster_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_Spec runs a test to see if a specific instance of ManagedCluster_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_Spec(subject ManagedCluster_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_Spec instances for property testing - lazily instantiated by +// ManagedCluster_SpecGenerator() +var managedCluster_SpecGenerator gopter.Gen + +// ManagedCluster_SpecGenerator returns a generator of ManagedCluster_Spec instances for property testing. +// We first initialize managedCluster_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_SpecGenerator() gopter.Gen { + if managedCluster_SpecGenerator != nil { + return managedCluster_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec(generators) + managedCluster_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_Spec(generators) + AddRelatedPropertyGeneratorsForManagedCluster_Spec(generators) + managedCluster_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_Spec{}), generators) + + return managedCluster_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["PublicNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["SupportPlan"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_Spec(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfileGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfileGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfileGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfileGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfileGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfileGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfileGenerator()) + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocationGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfigGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentityGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentityGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfileGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfileGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfileGenerator()) + gens["OperatorSpec"] = gen.PtrOf(ManagedClusterOperatorSpecGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfileGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResourceGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfileGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfileGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfileGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKUGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfileGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettingsGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfileGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileGenerator()) +} + +func Test_ManagedCluster_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedCluster_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedCluster_STATUS, ManagedCluster_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedCluster_STATUS runs a test to see if a specific instance of ManagedCluster_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedCluster_STATUS(subject ManagedCluster_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedCluster_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedCluster_STATUS instances for property testing - lazily instantiated by +// ManagedCluster_STATUSGenerator() +var managedCluster_STATUSGenerator gopter.Gen + +// ManagedCluster_STATUSGenerator returns a generator of ManagedCluster_STATUS instances for property testing. +// We first initialize managedCluster_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedCluster_STATUSGenerator() gopter.Gen { + if managedCluster_STATUSGenerator != nil { + return managedCluster_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS(generators) + managedCluster_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedCluster_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedCluster_STATUS(generators) + managedCluster_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedCluster_STATUS{}), generators) + + return managedCluster_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedCluster_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter.Gen) { + gens["AzurePortalFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["CurrentKubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["DisableLocalAccounts"] = gen.PtrOf(gen.Bool()) + gens["DiskEncryptionSetID"] = gen.PtrOf(gen.AlphaString()) + gens["DnsPrefix"] = gen.PtrOf(gen.AlphaString()) + gens["EnablePodSecurityPolicy"] = gen.PtrOf(gen.Bool()) + gens["EnableRBAC"] = gen.PtrOf(gen.Bool()) + gens["Fqdn"] = gen.PtrOf(gen.AlphaString()) + gens["FqdnSubdomain"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["KubernetesVersion"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["MaxAgentPools"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeResourceGroup"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateFQDN"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceUID"] = gen.PtrOf(gen.AlphaString()) + gens["SupportPlan"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedCluster_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedCluster_STATUS(gens map[string]gopter.Gen) { + gens["AadProfile"] = gen.PtrOf(ManagedClusterAADProfile_STATUSGenerator()) + gens["AddonProfiles"] = gen.MapOf(gen.AlphaString(), ManagedClusterAddonProfile_STATUSGenerator()) + gens["AgentPoolProfiles"] = gen.SliceOf(ManagedClusterAgentPoolProfile_STATUSGenerator()) + gens["ApiServerAccessProfile"] = gen.PtrOf(ManagedClusterAPIServerAccessProfile_STATUSGenerator()) + gens["AutoScalerProfile"] = gen.PtrOf(ManagedClusterProperties_AutoScalerProfile_STATUSGenerator()) + gens["AutoUpgradeProfile"] = gen.PtrOf(ManagedClusterAutoUpgradeProfile_STATUSGenerator()) + gens["AzureMonitorProfile"] = gen.PtrOf(ManagedClusterAzureMonitorProfile_STATUSGenerator()) + gens["ExtendedLocation"] = gen.PtrOf(ExtendedLocation_STATUSGenerator()) + gens["HttpProxyConfig"] = gen.PtrOf(ManagedClusterHTTPProxyConfig_STATUSGenerator()) + gens["Identity"] = gen.PtrOf(ManagedClusterIdentity_STATUSGenerator()) + gens["IdentityProfile"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentity_STATUSGenerator()) + gens["LinuxProfile"] = gen.PtrOf(ContainerServiceLinuxProfile_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(ContainerServiceNetworkProfile_STATUSGenerator()) + gens["OidcIssuerProfile"] = gen.PtrOf(ManagedClusterOIDCIssuerProfile_STATUSGenerator()) + gens["PodIdentityProfile"] = gen.PtrOf(ManagedClusterPodIdentityProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["PrivateLinkResources"] = gen.SliceOf(PrivateLinkResource_STATUSGenerator()) + gens["SecurityProfile"] = gen.PtrOf(ManagedClusterSecurityProfile_STATUSGenerator()) + gens["ServiceMeshProfile"] = gen.PtrOf(ServiceMeshProfile_STATUSGenerator()) + gens["ServicePrincipalProfile"] = gen.PtrOf(ManagedClusterServicePrincipalProfile_STATUSGenerator()) + gens["Sku"] = gen.PtrOf(ManagedClusterSKU_STATUSGenerator()) + gens["StorageProfile"] = gen.PtrOf(ManagedClusterStorageProfile_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(ClusterUpgradeSettings_STATUSGenerator()) + gens["WindowsProfile"] = gen.PtrOf(ManagedClusterWindowsProfile_STATUSGenerator()) + gens["WorkloadAutoScalerProfile"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator()) +} + +func Test_ClusterUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings, ClusterUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings runs a test to see if a specific instance of ClusterUpgradeSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings(subject ClusterUpgradeSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings instances for property testing - lazily instantiated by +// ClusterUpgradeSettingsGenerator() +var clusterUpgradeSettingsGenerator gopter.Gen + +// ClusterUpgradeSettingsGenerator returns a generator of ClusterUpgradeSettings instances for property testing. +func ClusterUpgradeSettingsGenerator() gopter.Gen { + if clusterUpgradeSettingsGenerator != nil { + return clusterUpgradeSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings(generators) + clusterUpgradeSettingsGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings{}), generators) + + return clusterUpgradeSettingsGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettingsGenerator()) +} + +func Test_ClusterUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ClusterUpgradeSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForClusterUpgradeSettings_STATUS, ClusterUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForClusterUpgradeSettings_STATUS runs a test to see if a specific instance of ClusterUpgradeSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForClusterUpgradeSettings_STATUS(subject ClusterUpgradeSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ClusterUpgradeSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ClusterUpgradeSettings_STATUS instances for property testing - lazily instantiated by +// ClusterUpgradeSettings_STATUSGenerator() +var clusterUpgradeSettings_STATUSGenerator gopter.Gen + +// ClusterUpgradeSettings_STATUSGenerator returns a generator of ClusterUpgradeSettings_STATUS instances for property testing. +func ClusterUpgradeSettings_STATUSGenerator() gopter.Gen { + if clusterUpgradeSettings_STATUSGenerator != nil { + return clusterUpgradeSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(generators) + clusterUpgradeSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(ClusterUpgradeSettings_STATUS{}), generators) + + return clusterUpgradeSettings_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForClusterUpgradeSettings_STATUS(gens map[string]gopter.Gen) { + gens["OverrideSettings"] = gen.PtrOf(UpgradeOverrideSettings_STATUSGenerator()) +} + +func Test_ContainerServiceLinuxProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile, ContainerServiceLinuxProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile runs a test to see if a specific instance of ContainerServiceLinuxProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile(subject ContainerServiceLinuxProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfileGenerator() +var containerServiceLinuxProfileGenerator gopter.Gen + +// ContainerServiceLinuxProfileGenerator returns a generator of ContainerServiceLinuxProfile instances for property testing. +// We first initialize containerServiceLinuxProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfileGenerator() gopter.Gen { + if containerServiceLinuxProfileGenerator != nil { + return containerServiceLinuxProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(generators) + containerServiceLinuxProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile(generators) + containerServiceLinuxProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile{}), generators) + + return containerServiceLinuxProfileGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfigurationGenerator()) +} + +func Test_ContainerServiceLinuxProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceLinuxProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS, ContainerServiceLinuxProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS runs a test to see if a specific instance of ContainerServiceLinuxProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceLinuxProfile_STATUS(subject ContainerServiceLinuxProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceLinuxProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceLinuxProfile_STATUS instances for property testing - lazily instantiated by +// ContainerServiceLinuxProfile_STATUSGenerator() +var containerServiceLinuxProfile_STATUSGenerator gopter.Gen + +// ContainerServiceLinuxProfile_STATUSGenerator returns a generator of ContainerServiceLinuxProfile_STATUS instances for property testing. +// We first initialize containerServiceLinuxProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceLinuxProfile_STATUSGenerator() gopter.Gen { + if containerServiceLinuxProfile_STATUSGenerator != nil { + return containerServiceLinuxProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + containerServiceLinuxProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(generators) + containerServiceLinuxProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceLinuxProfile_STATUS{}), generators) + + return containerServiceLinuxProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceLinuxProfile_STATUS(gens map[string]gopter.Gen) { + gens["Ssh"] = gen.PtrOf(ContainerServiceSshConfiguration_STATUSGenerator()) +} + +func Test_ContainerServiceNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile, ContainerServiceNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile runs a test to see if a specific instance of ContainerServiceNetworkProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile(subject ContainerServiceNetworkProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfileGenerator() +var containerServiceNetworkProfileGenerator gopter.Gen + +// ContainerServiceNetworkProfileGenerator returns a generator of ContainerServiceNetworkProfile instances for property testing. +// We first initialize containerServiceNetworkProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfileGenerator() gopter.Gen { + if containerServiceNetworkProfileGenerator != nil { + return containerServiceNetworkProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(generators) + containerServiceNetworkProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile(generators) + containerServiceNetworkProfileGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile{}), generators) + + return containerServiceNetworkProfileGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.AlphaString()) + gens["LoadBalancerSku"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkDataplane"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkMode"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPlugin"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPluginMode"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundType"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfileGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfileGenerator()) +} + +func Test_ContainerServiceNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceNetworkProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS, ContainerServiceNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS runs a test to see if a specific instance of ContainerServiceNetworkProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceNetworkProfile_STATUS(subject ContainerServiceNetworkProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceNetworkProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceNetworkProfile_STATUS instances for property testing - lazily instantiated by +// ContainerServiceNetworkProfile_STATUSGenerator() +var containerServiceNetworkProfile_STATUSGenerator gopter.Gen + +// ContainerServiceNetworkProfile_STATUSGenerator returns a generator of ContainerServiceNetworkProfile_STATUS instances for property testing. +// We first initialize containerServiceNetworkProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ContainerServiceNetworkProfile_STATUSGenerator() gopter.Gen { + if containerServiceNetworkProfile_STATUSGenerator != nil { + return containerServiceNetworkProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + containerServiceNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(generators) + containerServiceNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceNetworkProfile_STATUS{}), generators) + + return containerServiceNetworkProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["DnsServiceIP"] = gen.PtrOf(gen.AlphaString()) + gens["IpFamilies"] = gen.SliceOf(gen.AlphaString()) + gens["LoadBalancerSku"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkDataplane"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkMode"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPlugin"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPluginMode"] = gen.PtrOf(gen.AlphaString()) + gens["NetworkPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundType"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidr"] = gen.PtrOf(gen.AlphaString()) + gens["PodCidrs"] = gen.SliceOf(gen.AlphaString()) + gens["ServiceCidr"] = gen.PtrOf(gen.AlphaString()) + gens["ServiceCidrs"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["LoadBalancerProfile"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_STATUSGenerator()) + gens["NatGatewayProfile"] = gen.PtrOf(ManagedClusterNATGatewayProfile_STATUSGenerator()) +} + +func Test_ExtendedLocation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation, ExtendedLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation runs a test to see if a specific instance of ExtendedLocation round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation(subject ExtendedLocation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation instances for property testing - lazily instantiated by ExtendedLocationGenerator() +var extendedLocationGenerator gopter.Gen + +// ExtendedLocationGenerator returns a generator of ExtendedLocation instances for property testing. +func ExtendedLocationGenerator() gopter.Gen { + if extendedLocationGenerator != nil { + return extendedLocationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation(generators) + extendedLocationGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation{}), generators) + + return extendedLocationGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ExtendedLocation_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ExtendedLocation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForExtendedLocation_STATUS, ExtendedLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForExtendedLocation_STATUS runs a test to see if a specific instance of ExtendedLocation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForExtendedLocation_STATUS(subject ExtendedLocation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ExtendedLocation_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ExtendedLocation_STATUS instances for property testing - lazily instantiated by +// ExtendedLocation_STATUSGenerator() +var extendedLocation_STATUSGenerator gopter.Gen + +// ExtendedLocation_STATUSGenerator returns a generator of ExtendedLocation_STATUS instances for property testing. +func ExtendedLocation_STATUSGenerator() gopter.Gen { + if extendedLocation_STATUSGenerator != nil { + return extendedLocation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForExtendedLocation_STATUS(generators) + extendedLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(ExtendedLocation_STATUS{}), generators) + + return extendedLocation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForExtendedLocation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForExtendedLocation_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAADProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile, ManagedClusterAADProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile runs a test to see if a specific instance of ManagedClusterAADProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile(subject ManagedClusterAADProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile instances for property testing - lazily instantiated by +// ManagedClusterAADProfileGenerator() +var managedClusterAADProfileGenerator gopter.Gen + +// ManagedClusterAADProfileGenerator returns a generator of ManagedClusterAADProfile instances for property testing. +func ManagedClusterAADProfileGenerator() gopter.Gen { + if managedClusterAADProfileGenerator != nil { + return managedClusterAADProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile(generators) + managedClusterAADProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile{}), generators) + + return managedClusterAADProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAADProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAADProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAADProfile_STATUS, ManagedClusterAADProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAADProfile_STATUS runs a test to see if a specific instance of ManagedClusterAADProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAADProfile_STATUS(subject ManagedClusterAADProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAADProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAADProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAADProfile_STATUSGenerator() +var managedClusterAADProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAADProfile_STATUSGenerator returns a generator of ManagedClusterAADProfile_STATUS instances for property testing. +func ManagedClusterAADProfile_STATUSGenerator() gopter.Gen { + if managedClusterAADProfile_STATUSGenerator != nil { + return managedClusterAADProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS(generators) + managedClusterAADProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAADProfile_STATUS{}), generators) + + return managedClusterAADProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAADProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminGroupObjectIDs"] = gen.SliceOf(gen.AlphaString()) + gens["ClientAppID"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAzureRBAC"] = gen.PtrOf(gen.Bool()) + gens["Managed"] = gen.PtrOf(gen.Bool()) + gens["ServerAppID"] = gen.PtrOf(gen.AlphaString()) + gens["ServerAppSecret"] = gen.PtrOf(gen.AlphaString()) + gens["TenantID"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAddonProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile, ManagedClusterAddonProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile runs a test to see if a specific instance of ManagedClusterAddonProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile(subject ManagedClusterAddonProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile instances for property testing - lazily instantiated by +// ManagedClusterAddonProfileGenerator() +var managedClusterAddonProfileGenerator gopter.Gen + +// ManagedClusterAddonProfileGenerator returns a generator of ManagedClusterAddonProfile instances for property testing. +func ManagedClusterAddonProfileGenerator() gopter.Gen { + if managedClusterAddonProfileGenerator != nil { + return managedClusterAddonProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile(generators) + managedClusterAddonProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile{}), generators) + + return managedClusterAddonProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterAddonProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAddonProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAddonProfile_STATUS, ManagedClusterAddonProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAddonProfile_STATUS runs a test to see if a specific instance of ManagedClusterAddonProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAddonProfile_STATUS(subject ManagedClusterAddonProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAddonProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAddonProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAddonProfile_STATUSGenerator() +var managedClusterAddonProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAddonProfile_STATUSGenerator returns a generator of ManagedClusterAddonProfile_STATUS instances for property testing. +// We first initialize managedClusterAddonProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAddonProfile_STATUSGenerator() gopter.Gen { + if managedClusterAddonProfile_STATUSGenerator != nil { + return managedClusterAddonProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + managedClusterAddonProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS(generators) + managedClusterAddonProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAddonProfile_STATUS{}), generators) + + return managedClusterAddonProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAddonProfile_STATUS(gens map[string]gopter.Gen) { + gens["Config"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAddonProfile_STATUS(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUSGenerator()) +} + +func Test_ManagedClusterAgentPoolProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile, ManagedClusterAgentPoolProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile runs a test to see if a specific instance of ManagedClusterAgentPoolProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile(subject ManagedClusterAgentPoolProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfileGenerator() +var managedClusterAgentPoolProfileGenerator gopter.Gen + +// ManagedClusterAgentPoolProfileGenerator returns a generator of ManagedClusterAgentPoolProfile instances for property testing. +// We first initialize managedClusterAgentPoolProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfileGenerator() gopter.Gen { + if managedClusterAgentPoolProfileGenerator != nil { + return managedClusterAgentPoolProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + managedClusterAgentPoolProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile(generators) + managedClusterAgentPoolProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile{}), generators) + + return managedClusterAgentPoolProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["OsSKU"] = gen.PtrOf(gen.AlphaString()) + gens["OsType"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetPriority"] = gen.PtrOf(gen.AlphaString()) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationDataGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfigGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfigGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfileGenerator()) + gens["PowerState"] = gen.PtrOf(PowerStateGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) +} + +func Test_ManagedClusterAgentPoolProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAgentPoolProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS, ManagedClusterAgentPoolProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS runs a test to see if a specific instance of ManagedClusterAgentPoolProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAgentPoolProfile_STATUS(subject ManagedClusterAgentPoolProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAgentPoolProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAgentPoolProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAgentPoolProfile_STATUSGenerator() +var managedClusterAgentPoolProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAgentPoolProfile_STATUSGenerator returns a generator of ManagedClusterAgentPoolProfile_STATUS instances for property testing. +// We first initialize managedClusterAgentPoolProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAgentPoolProfile_STATUSGenerator() gopter.Gen { + if managedClusterAgentPoolProfile_STATUSGenerator != nil { + return managedClusterAgentPoolProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + managedClusterAgentPoolProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(generators) + managedClusterAgentPoolProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAgentPoolProfile_STATUS{}), generators) + + return managedClusterAgentPoolProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.AlphaString()) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["OsSKU"] = gen.PtrOf(gen.AlphaString()) + gens["OsType"] = gen.PtrOf(gen.AlphaString()) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetPriority"] = gen.PtrOf(gen.AlphaString()) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAgentPoolProfile_STATUS(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUSGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUSGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) +} + +func Test_ManagedClusterAPIServerAccessProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile, ManagedClusterAPIServerAccessProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile(subject ManagedClusterAPIServerAccessProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfileGenerator() +var managedClusterAPIServerAccessProfileGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfileGenerator returns a generator of ManagedClusterAPIServerAccessProfile instances for property testing. +func ManagedClusterAPIServerAccessProfileGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfileGenerator != nil { + return managedClusterAPIServerAccessProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile(generators) + managedClusterAPIServerAccessProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile{}), generators) + + return managedClusterAPIServerAccessProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAPIServerAccessProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAPIServerAccessProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS, ManagedClusterAPIServerAccessProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS runs a test to see if a specific instance of ManagedClusterAPIServerAccessProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAPIServerAccessProfile_STATUS(subject ManagedClusterAPIServerAccessProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAPIServerAccessProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAPIServerAccessProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAPIServerAccessProfile_STATUSGenerator() +var managedClusterAPIServerAccessProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAPIServerAccessProfile_STATUSGenerator returns a generator of ManagedClusterAPIServerAccessProfile_STATUS instances for property testing. +func ManagedClusterAPIServerAccessProfile_STATUSGenerator() gopter.Gen { + if managedClusterAPIServerAccessProfile_STATUSGenerator != nil { + return managedClusterAPIServerAccessProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS(generators) + managedClusterAPIServerAccessProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAPIServerAccessProfile_STATUS{}), generators) + + return managedClusterAPIServerAccessProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAPIServerAccessProfile_STATUS(gens map[string]gopter.Gen) { + gens["AuthorizedIPRanges"] = gen.SliceOf(gen.AlphaString()) + gens["DisableRunCommand"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateCluster"] = gen.PtrOf(gen.Bool()) + gens["EnablePrivateClusterPublicFQDN"] = gen.PtrOf(gen.Bool()) + gens["PrivateDNSZone"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAutoUpgradeProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile, ManagedClusterAutoUpgradeProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile(subject ManagedClusterAutoUpgradeProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfileGenerator() +var managedClusterAutoUpgradeProfileGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfileGenerator returns a generator of ManagedClusterAutoUpgradeProfile instances for property testing. +func ManagedClusterAutoUpgradeProfileGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfileGenerator != nil { + return managedClusterAutoUpgradeProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile(generators) + managedClusterAutoUpgradeProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile{}), generators) + + return managedClusterAutoUpgradeProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.AlphaString()) + gens["UpgradeChannel"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAutoUpgradeProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAutoUpgradeProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS, ManagedClusterAutoUpgradeProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS runs a test to see if a specific instance of ManagedClusterAutoUpgradeProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAutoUpgradeProfile_STATUS(subject ManagedClusterAutoUpgradeProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAutoUpgradeProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAutoUpgradeProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAutoUpgradeProfile_STATUSGenerator() +var managedClusterAutoUpgradeProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAutoUpgradeProfile_STATUSGenerator returns a generator of ManagedClusterAutoUpgradeProfile_STATUS instances for property testing. +func ManagedClusterAutoUpgradeProfile_STATUSGenerator() gopter.Gen { + if managedClusterAutoUpgradeProfile_STATUSGenerator != nil { + return managedClusterAutoUpgradeProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS(generators) + managedClusterAutoUpgradeProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAutoUpgradeProfile_STATUS{}), generators) + + return managedClusterAutoUpgradeProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAutoUpgradeProfile_STATUS(gens map[string]gopter.Gen) { + gens["NodeOSUpgradeChannel"] = gen.PtrOf(gen.AlphaString()) + gens["UpgradeChannel"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAzureMonitorProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile, ManagedClusterAzureMonitorProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile(subject ManagedClusterAzureMonitorProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileGenerator() +var managedClusterAzureMonitorProfileGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileGenerator returns a generator of ManagedClusterAzureMonitorProfile instances for property testing. +func ManagedClusterAzureMonitorProfileGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileGenerator != nil { + return managedClusterAzureMonitorProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile(generators) + managedClusterAzureMonitorProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile{}), generators) + + return managedClusterAzureMonitorProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetricsGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS, ManagedClusterAzureMonitorProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfile_STATUS(subject ManagedClusterAzureMonitorProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfile_STATUSGenerator() +var managedClusterAzureMonitorProfile_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfile_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfile_STATUS instances for property testing. +func ManagedClusterAzureMonitorProfile_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfile_STATUSGenerator != nil { + return managedClusterAzureMonitorProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS(generators) + managedClusterAzureMonitorProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfile_STATUS{}), generators) + + return managedClusterAzureMonitorProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfile_STATUS(gens map[string]gopter.Gen) { + gens["Metrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator()) +} + +func Test_ManagedClusterHTTPProxyConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig, ManagedClusterHTTPProxyConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig(subject ManagedClusterHTTPProxyConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfigGenerator() +var managedClusterHTTPProxyConfigGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfigGenerator returns a generator of ManagedClusterHTTPProxyConfig instances for property testing. +func ManagedClusterHTTPProxyConfigGenerator() gopter.Gen { + if managedClusterHTTPProxyConfigGenerator != nil { + return managedClusterHTTPProxyConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig(generators) + managedClusterHTTPProxyConfigGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig{}), generators) + + return managedClusterHTTPProxyConfigGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterHTTPProxyConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterHTTPProxyConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS, ManagedClusterHTTPProxyConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS runs a test to see if a specific instance of ManagedClusterHTTPProxyConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterHTTPProxyConfig_STATUS(subject ManagedClusterHTTPProxyConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterHTTPProxyConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterHTTPProxyConfig_STATUS instances for property testing - lazily instantiated by +// ManagedClusterHTTPProxyConfig_STATUSGenerator() +var managedClusterHTTPProxyConfig_STATUSGenerator gopter.Gen + +// ManagedClusterHTTPProxyConfig_STATUSGenerator returns a generator of ManagedClusterHTTPProxyConfig_STATUS instances for property testing. +func ManagedClusterHTTPProxyConfig_STATUSGenerator() gopter.Gen { + if managedClusterHTTPProxyConfig_STATUSGenerator != nil { + return managedClusterHTTPProxyConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS(generators) + managedClusterHTTPProxyConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterHTTPProxyConfig_STATUS{}), generators) + + return managedClusterHTTPProxyConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterHTTPProxyConfig_STATUS(gens map[string]gopter.Gen) { + gens["HttpProxy"] = gen.PtrOf(gen.AlphaString()) + gens["HttpsProxy"] = gen.PtrOf(gen.AlphaString()) + gens["NoProxy"] = gen.SliceOf(gen.AlphaString()) + gens["TrustedCa"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity, ManagedClusterIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity runs a test to see if a specific instance of ManagedClusterIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity(subject ManagedClusterIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity instances for property testing - lazily instantiated by +// ManagedClusterIdentityGenerator() +var managedClusterIdentityGenerator gopter.Gen + +// ManagedClusterIdentityGenerator returns a generator of ManagedClusterIdentity instances for property testing. +// We first initialize managedClusterIdentityGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentityGenerator() gopter.Gen { + if managedClusterIdentityGenerator != nil { + return managedClusterIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity(generators) + managedClusterIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity(generators) + managedClusterIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity{}), generators) + + return managedClusterIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResourceGenerator()) + gens["UserAssignedIdentities"] = gen.SliceOf(UserAssignedIdentityDetailsGenerator()) +} + +func Test_ManagedClusterIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_STATUS, ManagedClusterIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_STATUS runs a test to see if a specific instance of ManagedClusterIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_STATUS(subject ManagedClusterIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_STATUS instances for property testing - lazily instantiated by +// ManagedClusterIdentity_STATUSGenerator() +var managedClusterIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterIdentity_STATUSGenerator returns a generator of ManagedClusterIdentity_STATUS instances for property testing. +// We first initialize managedClusterIdentity_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterIdentity_STATUSGenerator() gopter.Gen { + if managedClusterIdentity_STATUSGenerator != nil { + return managedClusterIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + managedClusterIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS(generators) + managedClusterIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_STATUS{}), generators) + + return managedClusterIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_STATUS(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterIdentity_STATUS(gens map[string]gopter.Gen) { + gens["DelegatedResources"] = gen.MapOf(gen.AlphaString(), DelegatedResource_STATUSGenerator()) + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator()) +} + +func Test_ManagedClusterOIDCIssuerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile, ManagedClusterOIDCIssuerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile(subject ManagedClusterOIDCIssuerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfileGenerator() +var managedClusterOIDCIssuerProfileGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfileGenerator returns a generator of ManagedClusterOIDCIssuerProfile instances for property testing. +func ManagedClusterOIDCIssuerProfileGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfileGenerator != nil { + return managedClusterOIDCIssuerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile(generators) + managedClusterOIDCIssuerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile{}), generators) + + return managedClusterOIDCIssuerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterOIDCIssuerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOIDCIssuerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS, ManagedClusterOIDCIssuerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS runs a test to see if a specific instance of ManagedClusterOIDCIssuerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOIDCIssuerProfile_STATUS(subject ManagedClusterOIDCIssuerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOIDCIssuerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOIDCIssuerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterOIDCIssuerProfile_STATUSGenerator() +var managedClusterOIDCIssuerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterOIDCIssuerProfile_STATUSGenerator returns a generator of ManagedClusterOIDCIssuerProfile_STATUS instances for property testing. +func ManagedClusterOIDCIssuerProfile_STATUSGenerator() gopter.Gen { + if managedClusterOIDCIssuerProfile_STATUSGenerator != nil { + return managedClusterOIDCIssuerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS(generators) + managedClusterOIDCIssuerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOIDCIssuerProfile_STATUS{}), generators) + + return managedClusterOIDCIssuerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterOIDCIssuerProfile_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IssuerURL"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterOperatorSpec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorSpec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSpec, ManagedClusterOperatorSpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorSpec runs a test to see if a specific instance of ManagedClusterOperatorSpec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorSpec(subject ManagedClusterOperatorSpec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorSpec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorSpec instances for property testing - lazily instantiated by +// ManagedClusterOperatorSpecGenerator() +var managedClusterOperatorSpecGenerator gopter.Gen + +// ManagedClusterOperatorSpecGenerator returns a generator of ManagedClusterOperatorSpec instances for property testing. +func ManagedClusterOperatorSpecGenerator() gopter.Gen { + if managedClusterOperatorSpecGenerator != nil { + return managedClusterOperatorSpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(generators) + managedClusterOperatorSpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorSpec{}), generators) + + return managedClusterOperatorSpecGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterOperatorSpec(gens map[string]gopter.Gen) { + gens["ConfigMaps"] = gen.PtrOf(ManagedClusterOperatorConfigMapsGenerator()) + gens["Secrets"] = gen.PtrOf(ManagedClusterOperatorSecretsGenerator()) +} + +func Test_ManagedClusterPodIdentityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile, ManagedClusterPodIdentityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile runs a test to see if a specific instance of ManagedClusterPodIdentityProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile(subject ManagedClusterPodIdentityProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfileGenerator() +var managedClusterPodIdentityProfileGenerator gopter.Gen + +// ManagedClusterPodIdentityProfileGenerator returns a generator of ManagedClusterPodIdentityProfile instances for property testing. +// We first initialize managedClusterPodIdentityProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfileGenerator() gopter.Gen { + if managedClusterPodIdentityProfileGenerator != nil { + return managedClusterPodIdentityProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + managedClusterPodIdentityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile(generators) + managedClusterPodIdentityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile{}), generators) + + return managedClusterPodIdentityProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentityGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityExceptionGenerator()) +} + +func Test_ManagedClusterPodIdentityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS, ManagedClusterPodIdentityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProfile_STATUS(subject ManagedClusterPodIdentityProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityProfile_STATUSGenerator() +var managedClusterPodIdentityProfile_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProfile_STATUSGenerator returns a generator of ManagedClusterPodIdentityProfile_STATUS instances for property testing. +// We first initialize managedClusterPodIdentityProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProfile_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProfile_STATUSGenerator != nil { + return managedClusterPodIdentityProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + managedClusterPodIdentityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(generators) + managedClusterPodIdentityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProfile_STATUS{}), generators) + + return managedClusterPodIdentityProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllowNetworkPluginKubenet"] = gen.PtrOf(gen.Bool()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProfile_STATUS(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(ManagedClusterPodIdentity_STATUSGenerator()) + gens["UserAssignedIdentityExceptions"] = gen.SliceOf(ManagedClusterPodIdentityException_STATUSGenerator()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile, ManagedClusterProperties_AutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile(subject ManagedClusterProperties_AutoScalerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile instances for property testing - lazily instantiated by +// ManagedClusterProperties_AutoScalerProfileGenerator() +var managedClusterProperties_AutoScalerProfileGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfileGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile instances for property testing. +func ManagedClusterProperties_AutoScalerProfileGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfileGenerator != nil { + return managedClusterProperties_AutoScalerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile(generators) + managedClusterProperties_AutoScalerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile{}), generators) + + return managedClusterProperties_AutoScalerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.AlphaString()) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterProperties_AutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterProperties_AutoScalerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS, ManagedClusterProperties_AutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS runs a test to see if a specific instance of ManagedClusterProperties_AutoScalerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterProperties_AutoScalerProfile_STATUS(subject ManagedClusterProperties_AutoScalerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterProperties_AutoScalerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterProperties_AutoScalerProfile_STATUS instances for property testing - lazily instantiated +// by ManagedClusterProperties_AutoScalerProfile_STATUSGenerator() +var managedClusterProperties_AutoScalerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterProperties_AutoScalerProfile_STATUSGenerator returns a generator of ManagedClusterProperties_AutoScalerProfile_STATUS instances for property testing. +func ManagedClusterProperties_AutoScalerProfile_STATUSGenerator() gopter.Gen { + if managedClusterProperties_AutoScalerProfile_STATUSGenerator != nil { + return managedClusterProperties_AutoScalerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS(generators) + managedClusterProperties_AutoScalerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterProperties_AutoScalerProfile_STATUS{}), generators) + + return managedClusterProperties_AutoScalerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterProperties_AutoScalerProfile_STATUS(gens map[string]gopter.Gen) { + gens["BalanceSimilarNodeGroups"] = gen.PtrOf(gen.AlphaString()) + gens["Expander"] = gen.PtrOf(gen.AlphaString()) + gens["MaxEmptyBulkDelete"] = gen.PtrOf(gen.AlphaString()) + gens["MaxGracefulTerminationSec"] = gen.PtrOf(gen.AlphaString()) + gens["MaxNodeProvisionTime"] = gen.PtrOf(gen.AlphaString()) + gens["MaxTotalUnreadyPercentage"] = gen.PtrOf(gen.AlphaString()) + gens["NewPodScaleUpDelay"] = gen.PtrOf(gen.AlphaString()) + gens["OkTotalUnreadyCount"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterAdd"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterDelete"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownDelayAfterFailure"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnneededTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUnreadyTime"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownUtilizationThreshold"] = gen.PtrOf(gen.AlphaString()) + gens["ScanInterval"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithLocalStorage"] = gen.PtrOf(gen.AlphaString()) + gens["SkipNodesWithSystemPods"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile, ManagedClusterSecurityProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile runs a test to see if a specific instance of ManagedClusterSecurityProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile(subject ManagedClusterSecurityProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileGenerator() +var managedClusterSecurityProfileGenerator gopter.Gen + +// ManagedClusterSecurityProfileGenerator returns a generator of ManagedClusterSecurityProfile instances for property testing. +func ManagedClusterSecurityProfileGenerator() gopter.Gen { + if managedClusterSecurityProfileGenerator != nil { + return managedClusterSecurityProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile(generators) + managedClusterSecurityProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile{}), generators) + + return managedClusterSecurityProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKmsGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleanerGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentityGenerator()) +} + +func Test_ManagedClusterSecurityProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS, ManagedClusterSecurityProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfile_STATUS(subject ManagedClusterSecurityProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfile_STATUSGenerator() +var managedClusterSecurityProfile_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfile_STATUSGenerator returns a generator of ManagedClusterSecurityProfile_STATUS instances for property testing. +func ManagedClusterSecurityProfile_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfile_STATUSGenerator != nil { + return managedClusterSecurityProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS(generators) + managedClusterSecurityProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfile_STATUS{}), generators) + + return managedClusterSecurityProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfile_STATUS(gens map[string]gopter.Gen) { + gens["AzureKeyVaultKms"] = gen.PtrOf(AzureKeyVaultKms_STATUSGenerator()) + gens["Defender"] = gen.PtrOf(ManagedClusterSecurityProfileDefender_STATUSGenerator()) + gens["ImageCleaner"] = gen.PtrOf(ManagedClusterSecurityProfileImageCleaner_STATUSGenerator()) + gens["WorkloadIdentity"] = gen.PtrOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator()) +} + +func Test_ManagedClusterServicePrincipalProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile, ManagedClusterServicePrincipalProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile(subject ManagedClusterServicePrincipalProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfileGenerator() +var managedClusterServicePrincipalProfileGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfileGenerator returns a generator of ManagedClusterServicePrincipalProfile instances for property testing. +func ManagedClusterServicePrincipalProfileGenerator() gopter.Gen { + if managedClusterServicePrincipalProfileGenerator != nil { + return managedClusterServicePrincipalProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile(generators) + managedClusterServicePrincipalProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile{}), generators) + + return managedClusterServicePrincipalProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterServicePrincipalProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterServicePrincipalProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS, ManagedClusterServicePrincipalProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS runs a test to see if a specific instance of ManagedClusterServicePrincipalProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterServicePrincipalProfile_STATUS(subject ManagedClusterServicePrincipalProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterServicePrincipalProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterServicePrincipalProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterServicePrincipalProfile_STATUSGenerator() +var managedClusterServicePrincipalProfile_STATUSGenerator gopter.Gen + +// ManagedClusterServicePrincipalProfile_STATUSGenerator returns a generator of ManagedClusterServicePrincipalProfile_STATUS instances for property testing. +func ManagedClusterServicePrincipalProfile_STATUSGenerator() gopter.Gen { + if managedClusterServicePrincipalProfile_STATUSGenerator != nil { + return managedClusterServicePrincipalProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS(generators) + managedClusterServicePrincipalProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterServicePrincipalProfile_STATUS{}), generators) + + return managedClusterServicePrincipalProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterServicePrincipalProfile_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSKU_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU, ManagedClusterSKUGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU runs a test to see if a specific instance of ManagedClusterSKU round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU(subject ManagedClusterSKU) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU instances for property testing - lazily instantiated by ManagedClusterSKUGenerator() +var managedClusterSKUGenerator gopter.Gen + +// ManagedClusterSKUGenerator returns a generator of ManagedClusterSKU instances for property testing. +func ManagedClusterSKUGenerator() gopter.Gen { + if managedClusterSKUGenerator != nil { + return managedClusterSKUGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU(generators) + managedClusterSKUGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU{}), generators) + + return managedClusterSKUGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Tier"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterSKU_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSKU_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSKU_STATUS, ManagedClusterSKU_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSKU_STATUS runs a test to see if a specific instance of ManagedClusterSKU_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSKU_STATUS(subject ManagedClusterSKU_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSKU_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSKU_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSKU_STATUSGenerator() +var managedClusterSKU_STATUSGenerator gopter.Gen + +// ManagedClusterSKU_STATUSGenerator returns a generator of ManagedClusterSKU_STATUS instances for property testing. +func ManagedClusterSKU_STATUSGenerator() gopter.Gen { + if managedClusterSKU_STATUSGenerator != nil { + return managedClusterSKU_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS(generators) + managedClusterSKU_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSKU_STATUS{}), generators) + + return managedClusterSKU_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSKU_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Tier"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterStorageProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile, ManagedClusterStorageProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile runs a test to see if a specific instance of ManagedClusterStorageProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile(subject ManagedClusterStorageProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileGenerator() +var managedClusterStorageProfileGenerator gopter.Gen + +// ManagedClusterStorageProfileGenerator returns a generator of ManagedClusterStorageProfile instances for property testing. +func ManagedClusterStorageProfileGenerator() gopter.Gen { + if managedClusterStorageProfileGenerator != nil { + return managedClusterStorageProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile(generators) + managedClusterStorageProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile{}), generators) + + return managedClusterStorageProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriverGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriverGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriverGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotControllerGenerator()) +} + +func Test_ManagedClusterStorageProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfile_STATUS, ManagedClusterStorageProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfile_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfile_STATUS(subject ManagedClusterStorageProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfile_STATUSGenerator() +var managedClusterStorageProfile_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfile_STATUSGenerator returns a generator of ManagedClusterStorageProfile_STATUS instances for property testing. +func ManagedClusterStorageProfile_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfile_STATUSGenerator != nil { + return managedClusterStorageProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS(generators) + managedClusterStorageProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfile_STATUS{}), generators) + + return managedClusterStorageProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterStorageProfile_STATUS(gens map[string]gopter.Gen) { + gens["BlobCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator()) + gens["DiskCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator()) + gens["FileCSIDriver"] = gen.PtrOf(ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator()) + gens["SnapshotController"] = gen.PtrOf(ManagedClusterStorageProfileSnapshotController_STATUSGenerator()) +} + +func Test_ManagedClusterWindowsProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile, ManagedClusterWindowsProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile runs a test to see if a specific instance of ManagedClusterWindowsProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile(subject ManagedClusterWindowsProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfileGenerator() +var managedClusterWindowsProfileGenerator gopter.Gen + +// ManagedClusterWindowsProfileGenerator returns a generator of ManagedClusterWindowsProfile instances for property testing. +// We first initialize managedClusterWindowsProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfileGenerator() gopter.Gen { + if managedClusterWindowsProfileGenerator != nil { + return managedClusterWindowsProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(generators) + managedClusterWindowsProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile(generators) + managedClusterWindowsProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile{}), generators) + + return managedClusterWindowsProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfileGenerator()) +} + +func Test_ManagedClusterWindowsProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWindowsProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS, ManagedClusterWindowsProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS runs a test to see if a specific instance of ManagedClusterWindowsProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWindowsProfile_STATUS(subject ManagedClusterWindowsProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWindowsProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWindowsProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterWindowsProfile_STATUSGenerator() +var managedClusterWindowsProfile_STATUSGenerator gopter.Gen + +// ManagedClusterWindowsProfile_STATUSGenerator returns a generator of ManagedClusterWindowsProfile_STATUS instances for property testing. +// We first initialize managedClusterWindowsProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterWindowsProfile_STATUSGenerator() gopter.Gen { + if managedClusterWindowsProfile_STATUSGenerator != nil { + return managedClusterWindowsProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + managedClusterWindowsProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(generators) + managedClusterWindowsProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWindowsProfile_STATUS{}), generators) + + return managedClusterWindowsProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(gens map[string]gopter.Gen) { + gens["AdminPassword"] = gen.PtrOf(gen.AlphaString()) + gens["AdminUsername"] = gen.PtrOf(gen.AlphaString()) + gens["EnableCSIProxy"] = gen.PtrOf(gen.Bool()) + gens["LicenseType"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWindowsProfile_STATUS(gens map[string]gopter.Gen) { + gens["GmsaProfile"] = gen.PtrOf(WindowsGmsaProfile_STATUSGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile, ManagedClusterWorkloadAutoScalerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile(subject ManagedClusterWorkloadAutoScalerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfileGenerator() +var managedClusterWorkloadAutoScalerProfileGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileGenerator != nil { + return managedClusterWorkloadAutoScalerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile(generators) + managedClusterWorkloadAutoScalerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile{}), generators) + + return managedClusterWorkloadAutoScalerProfileGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKedaGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS, ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfile_STATUS(subject ManagedClusterWorkloadAutoScalerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfile_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfile_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfile_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS(generators) + managedClusterWorkloadAutoScalerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfile_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfile_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfile_STATUS(gens map[string]gopter.Gen) { + gens["Keda"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator()) + gens["VerticalPodAutoscaler"] = gen.PtrOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator()) +} + +func Test_PowerState_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState_STATUS, PowerState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState_STATUS runs a test to see if a specific instance of PowerState_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState_STATUS(subject PowerState_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState_STATUS instances for property testing - lazily instantiated by PowerState_STATUSGenerator() +var powerState_STATUSGenerator gopter.Gen + +// PowerState_STATUSGenerator returns a generator of PowerState_STATUS instances for property testing. +func PowerState_STATUSGenerator() gopter.Gen { + if powerState_STATUSGenerator != nil { + return powerState_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState_STATUS(generators) + powerState_STATUSGenerator = gen.Struct(reflect.TypeOf(PowerState_STATUS{}), generators) + + return powerState_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState_STATUS(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkResource_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource, PrivateLinkResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource runs a test to see if a specific instance of PrivateLinkResource round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource(subject PrivateLinkResource) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource instances for property testing - lazily instantiated by +// PrivateLinkResourceGenerator() +var privateLinkResourceGenerator gopter.Gen + +// PrivateLinkResourceGenerator returns a generator of PrivateLinkResource instances for property testing. +func PrivateLinkResourceGenerator() gopter.Gen { + if privateLinkResourceGenerator != nil { + return privateLinkResourceGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource(generators) + privateLinkResourceGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource{}), generators) + + return privateLinkResourceGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkResource_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PrivateLinkResource_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkResource_STATUS, PrivateLinkResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkResource_STATUS runs a test to see if a specific instance of PrivateLinkResource_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkResource_STATUS(subject PrivateLinkResource_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkResource_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PrivateLinkResource_STATUS instances for property testing - lazily instantiated by +// PrivateLinkResource_STATUSGenerator() +var privateLinkResource_STATUSGenerator gopter.Gen + +// PrivateLinkResource_STATUSGenerator returns a generator of PrivateLinkResource_STATUS instances for property testing. +func PrivateLinkResource_STATUSGenerator() gopter.Gen { + if privateLinkResource_STATUSGenerator != nil { + return privateLinkResource_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(generators) + privateLinkResource_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateLinkResource_STATUS{}), generators) + + return privateLinkResource_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkResource_STATUS(gens map[string]gopter.Gen) { + gens["GroupId"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateLinkServiceID"] = gen.PtrOf(gen.AlphaString()) + gens["RequiredMembers"] = gen.SliceOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ServiceMeshProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile, ServiceMeshProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile runs a test to see if a specific instance of ServiceMeshProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile(subject ServiceMeshProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile instances for property testing - lazily instantiated by ServiceMeshProfileGenerator() +var serviceMeshProfileGenerator gopter.Gen + +// ServiceMeshProfileGenerator returns a generator of ServiceMeshProfile instances for property testing. +// We first initialize serviceMeshProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfileGenerator() gopter.Gen { + if serviceMeshProfileGenerator != nil { + return serviceMeshProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile(generators) + serviceMeshProfileGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile{}), generators) + + return serviceMeshProfileGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMeshGenerator()) +} + +func Test_ServiceMeshProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ServiceMeshProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForServiceMeshProfile_STATUS, ServiceMeshProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForServiceMeshProfile_STATUS runs a test to see if a specific instance of ServiceMeshProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForServiceMeshProfile_STATUS(subject ServiceMeshProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ServiceMeshProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ServiceMeshProfile_STATUS instances for property testing - lazily instantiated by +// ServiceMeshProfile_STATUSGenerator() +var serviceMeshProfile_STATUSGenerator gopter.Gen + +// ServiceMeshProfile_STATUSGenerator returns a generator of ServiceMeshProfile_STATUS instances for property testing. +// We first initialize serviceMeshProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ServiceMeshProfile_STATUSGenerator() gopter.Gen { + if serviceMeshProfile_STATUSGenerator != nil { + return serviceMeshProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(generators) + serviceMeshProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ServiceMeshProfile_STATUS{}), generators) + + return serviceMeshProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForServiceMeshProfile_STATUS(gens map[string]gopter.Gen) { + gens["Istio"] = gen.PtrOf(IstioServiceMesh_STATUSGenerator()) +} + +func Test_SystemData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SystemData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS runs a test to see if a specific instance of SystemData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SystemData_STATUS instances for property testing - lazily instantiated by SystemData_STATUSGenerator() +var systemData_STATUSGenerator gopter.Gen + +// SystemData_STATUSGenerator returns a generator of SystemData_STATUS instances for property testing. +func SystemData_STATUSGenerator() gopter.Gen { + if systemData_STATUSGenerator != nil { + return systemData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS(generators) + systemData_STATUSGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS{}), generators) + + return systemData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity, UserAssignedIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity runs a test to see if a specific instance of UserAssignedIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity(subject UserAssignedIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity instances for property testing - lazily instantiated by +// UserAssignedIdentityGenerator() +var userAssignedIdentityGenerator gopter.Gen + +// UserAssignedIdentityGenerator returns a generator of UserAssignedIdentity instances for property testing. +func UserAssignedIdentityGenerator() gopter.Gen { + if userAssignedIdentityGenerator != nil { + return userAssignedIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity(generators) + userAssignedIdentityGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity{}), generators) + + return userAssignedIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentity_STATUS, UserAssignedIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentity_STATUS runs a test to see if a specific instance of UserAssignedIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentity_STATUS(subject UserAssignedIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentity_STATUS instances for property testing - lazily instantiated by +// UserAssignedIdentity_STATUSGenerator() +var userAssignedIdentity_STATUSGenerator gopter.Gen + +// UserAssignedIdentity_STATUSGenerator returns a generator of UserAssignedIdentity_STATUS instances for property testing. +func UserAssignedIdentity_STATUSGenerator() gopter.Gen { + if userAssignedIdentity_STATUSGenerator != nil { + return userAssignedIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS(generators) + userAssignedIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentity_STATUS{}), generators) + + return userAssignedIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserAssignedIdentity_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["ObjectId"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AzureKeyVaultKms_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms, AzureKeyVaultKmsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms runs a test to see if a specific instance of AzureKeyVaultKms round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms(subject AzureKeyVaultKms) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms instances for property testing - lazily instantiated by AzureKeyVaultKmsGenerator() +var azureKeyVaultKmsGenerator gopter.Gen + +// AzureKeyVaultKmsGenerator returns a generator of AzureKeyVaultKms instances for property testing. +func AzureKeyVaultKmsGenerator() gopter.Gen { + if azureKeyVaultKmsGenerator != nil { + return azureKeyVaultKmsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms(generators) + azureKeyVaultKmsGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms{}), generators) + + return azureKeyVaultKmsGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AzureKeyVaultKms_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AzureKeyVaultKms_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureKeyVaultKms_STATUS, AzureKeyVaultKms_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureKeyVaultKms_STATUS runs a test to see if a specific instance of AzureKeyVaultKms_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureKeyVaultKms_STATUS(subject AzureKeyVaultKms_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureKeyVaultKms_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AzureKeyVaultKms_STATUS instances for property testing - lazily instantiated by +// AzureKeyVaultKms_STATUSGenerator() +var azureKeyVaultKms_STATUSGenerator gopter.Gen + +// AzureKeyVaultKms_STATUSGenerator returns a generator of AzureKeyVaultKms_STATUS instances for property testing. +func AzureKeyVaultKms_STATUSGenerator() gopter.Gen { + if azureKeyVaultKms_STATUSGenerator != nil { + return azureKeyVaultKms_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS(generators) + azureKeyVaultKms_STATUSGenerator = gen.Struct(reflect.TypeOf(AzureKeyVaultKms_STATUS{}), generators) + + return azureKeyVaultKms_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureKeyVaultKms_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["KeyId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration, ContainerServiceSshConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration runs a test to see if a specific instance of ContainerServiceSshConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration(subject ContainerServiceSshConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration instances for property testing - lazily instantiated by +// ContainerServiceSshConfigurationGenerator() +var containerServiceSshConfigurationGenerator gopter.Gen + +// ContainerServiceSshConfigurationGenerator returns a generator of ContainerServiceSshConfiguration instances for property testing. +func ContainerServiceSshConfigurationGenerator() gopter.Gen { + if containerServiceSshConfigurationGenerator != nil { + return containerServiceSshConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration(generators) + containerServiceSshConfigurationGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration{}), generators) + + return containerServiceSshConfigurationGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKeyGenerator()) +} + +func Test_ContainerServiceSshConfiguration_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS, ContainerServiceSshConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS runs a test to see if a specific instance of ContainerServiceSshConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshConfiguration_STATUS(subject ContainerServiceSshConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshConfiguration_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshConfiguration_STATUS instances for property testing - lazily instantiated by +// ContainerServiceSshConfiguration_STATUSGenerator() +var containerServiceSshConfiguration_STATUSGenerator gopter.Gen + +// ContainerServiceSshConfiguration_STATUSGenerator returns a generator of ContainerServiceSshConfiguration_STATUS instances for property testing. +func ContainerServiceSshConfiguration_STATUSGenerator() gopter.Gen { + if containerServiceSshConfiguration_STATUSGenerator != nil { + return containerServiceSshConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(generators) + containerServiceSshConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshConfiguration_STATUS{}), generators) + + return containerServiceSshConfiguration_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForContainerServiceSshConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["PublicKeys"] = gen.SliceOf(ContainerServiceSshPublicKey_STATUSGenerator()) +} + +func Test_DelegatedResource_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource, DelegatedResourceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource runs a test to see if a specific instance of DelegatedResource round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource(subject DelegatedResource) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource instances for property testing - lazily instantiated by DelegatedResourceGenerator() +var delegatedResourceGenerator gopter.Gen + +// DelegatedResourceGenerator returns a generator of DelegatedResource instances for property testing. +func DelegatedResourceGenerator() gopter.Gen { + if delegatedResourceGenerator != nil { + return delegatedResourceGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource(generators) + delegatedResourceGenerator = gen.Struct(reflect.TypeOf(DelegatedResource{}), generators) + + return delegatedResourceGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_DelegatedResource_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of DelegatedResource_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForDelegatedResource_STATUS, DelegatedResource_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForDelegatedResource_STATUS runs a test to see if a specific instance of DelegatedResource_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForDelegatedResource_STATUS(subject DelegatedResource_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual DelegatedResource_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of DelegatedResource_STATUS instances for property testing - lazily instantiated by +// DelegatedResource_STATUSGenerator() +var delegatedResource_STATUSGenerator gopter.Gen + +// DelegatedResource_STATUSGenerator returns a generator of DelegatedResource_STATUS instances for property testing. +func DelegatedResource_STATUSGenerator() gopter.Gen { + if delegatedResource_STATUSGenerator != nil { + return delegatedResource_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForDelegatedResource_STATUS(generators) + delegatedResource_STATUSGenerator = gen.Struct(reflect.TypeOf(DelegatedResource_STATUS{}), generators) + + return delegatedResource_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForDelegatedResource_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForDelegatedResource_STATUS(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ReferralResource"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioServiceMesh_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh, IstioServiceMeshGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh runs a test to see if a specific instance of IstioServiceMesh round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh(subject IstioServiceMesh) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh instances for property testing - lazily instantiated by IstioServiceMeshGenerator() +var istioServiceMeshGenerator gopter.Gen + +// IstioServiceMeshGenerator returns a generator of IstioServiceMesh instances for property testing. +// We first initialize istioServiceMeshGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMeshGenerator() gopter.Gen { + if istioServiceMeshGenerator != nil { + return istioServiceMeshGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh(generators) + istioServiceMeshGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh(generators) + istioServiceMeshGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh{}), generators) + + return istioServiceMeshGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthorityGenerator()) + gens["Components"] = gen.PtrOf(IstioComponentsGenerator()) +} + +func Test_IstioServiceMesh_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioServiceMesh_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioServiceMesh_STATUS, IstioServiceMesh_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioServiceMesh_STATUS runs a test to see if a specific instance of IstioServiceMesh_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioServiceMesh_STATUS(subject IstioServiceMesh_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioServiceMesh_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioServiceMesh_STATUS instances for property testing - lazily instantiated by +// IstioServiceMesh_STATUSGenerator() +var istioServiceMesh_STATUSGenerator gopter.Gen + +// IstioServiceMesh_STATUSGenerator returns a generator of IstioServiceMesh_STATUS instances for property testing. +// We first initialize istioServiceMesh_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func IstioServiceMesh_STATUSGenerator() gopter.Gen { + if istioServiceMesh_STATUSGenerator != nil { + return istioServiceMesh_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + istioServiceMesh_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(generators) + istioServiceMesh_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioServiceMesh_STATUS{}), generators) + + return istioServiceMesh_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioServiceMesh_STATUS(gens map[string]gopter.Gen) { + gens["Revisions"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioServiceMesh_STATUS(gens map[string]gopter.Gen) { + gens["CertificateAuthority"] = gen.PtrOf(IstioCertificateAuthority_STATUSGenerator()) + gens["Components"] = gen.PtrOf(IstioComponents_STATUSGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics, ManagedClusterAzureMonitorProfileMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics(subject ManagedClusterAzureMonitorProfileMetrics) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileMetricsGenerator() +var managedClusterAzureMonitorProfileMetricsGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetricsGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetricsGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetricsGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetricsGenerator != nil { + return managedClusterAzureMonitorProfileMetricsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + managedClusterAzureMonitorProfileMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(generators) + managedClusterAzureMonitorProfileMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics{}), generators) + + return managedClusterAzureMonitorProfileMetricsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileMetrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS, ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileMetrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileMetrics_STATUS(subject ManagedClusterAzureMonitorProfileMetrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileMetrics_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileMetrics_STATUS instances for property testing - lazily instantiated by +// ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator() +var managedClusterAzureMonitorProfileMetrics_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfileMetrics_STATUS instances for property testing. +// We first initialize managedClusterAzureMonitorProfileMetrics_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterAzureMonitorProfileMetrics_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileMetrics_STATUSGenerator != nil { + return managedClusterAzureMonitorProfileMetrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + managedClusterAzureMonitorProfileMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(generators) + managedClusterAzureMonitorProfileMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileMetrics_STATUS{}), generators) + + return managedClusterAzureMonitorProfileMetrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterAzureMonitorProfileMetrics_STATUS(gens map[string]gopter.Gen) { + gens["KubeStateMetrics"] = gen.PtrOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator()) +} + +func Test_ManagedClusterIdentity_UserAssignedIdentities_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterIdentity_UserAssignedIdentities_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS, ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS runs a test to see if a specific instance of ManagedClusterIdentity_UserAssignedIdentities_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterIdentity_UserAssignedIdentities_STATUS(subject ManagedClusterIdentity_UserAssignedIdentities_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterIdentity_UserAssignedIdentities_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS instances for property testing - lazily +// instantiated by ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator() +var managedClusterIdentity_UserAssignedIdentities_STATUSGenerator gopter.Gen + +// ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator returns a generator of ManagedClusterIdentity_UserAssignedIdentities_STATUS instances for property testing. +func ManagedClusterIdentity_UserAssignedIdentities_STATUSGenerator() gopter.Gen { + if managedClusterIdentity_UserAssignedIdentities_STATUSGenerator != nil { + return managedClusterIdentity_UserAssignedIdentities_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS(generators) + managedClusterIdentity_UserAssignedIdentities_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterIdentity_UserAssignedIdentities_STATUS{}), generators) + + return managedClusterIdentity_UserAssignedIdentities_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterIdentity_UserAssignedIdentities_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile, ManagedClusterLoadBalancerProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile(subject ManagedClusterLoadBalancerProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfileGenerator() +var managedClusterLoadBalancerProfileGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfileGenerator returns a generator of ManagedClusterLoadBalancerProfile instances for property testing. +// We first initialize managedClusterLoadBalancerProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfileGenerator() gopter.Gen { + if managedClusterLoadBalancerProfileGenerator != nil { + return managedClusterLoadBalancerProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + managedClusterLoadBalancerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile(generators) + managedClusterLoadBalancerProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile{}), generators) + + return managedClusterLoadBalancerProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.AlphaString()) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReferenceGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPsGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS, ManagedClusterLoadBalancerProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_STATUS(subject ManagedClusterLoadBalancerProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_STATUSGenerator() +var managedClusterLoadBalancerProfile_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_STATUS instances for property testing. +// We first initialize managedClusterLoadBalancerProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterLoadBalancerProfile_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + managedClusterLoadBalancerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(generators) + managedClusterLoadBalancerProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllocatedOutboundPorts"] = gen.PtrOf(gen.Int()) + gens["BackendPoolType"] = gen.PtrOf(gen.AlphaString()) + gens["EnableMultipleStandardLoadBalancers"] = gen.PtrOf(gen.Bool()) + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_STATUS(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) + gens["ManagedOutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator()) + gens["OutboundIPPrefixes"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator()) + gens["OutboundIPs"] = gen.PtrOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile, ManagedClusterNATGatewayProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile runs a test to see if a specific instance of ManagedClusterNATGatewayProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile(subject ManagedClusterNATGatewayProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfileGenerator() +var managedClusterNATGatewayProfileGenerator gopter.Gen + +// ManagedClusterNATGatewayProfileGenerator returns a generator of ManagedClusterNATGatewayProfile instances for property testing. +// We first initialize managedClusterNATGatewayProfileGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfileGenerator() gopter.Gen { + if managedClusterNATGatewayProfileGenerator != nil { + return managedClusterNATGatewayProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + managedClusterNATGatewayProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile(generators) + managedClusterNATGatewayProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile{}), generators) + + return managedClusterNATGatewayProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReferenceGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfileGenerator()) +} + +func Test_ManagedClusterNATGatewayProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterNATGatewayProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS, ManagedClusterNATGatewayProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS runs a test to see if a specific instance of ManagedClusterNATGatewayProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterNATGatewayProfile_STATUS(subject ManagedClusterNATGatewayProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterNATGatewayProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterNATGatewayProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterNATGatewayProfile_STATUSGenerator() +var managedClusterNATGatewayProfile_STATUSGenerator gopter.Gen + +// ManagedClusterNATGatewayProfile_STATUSGenerator returns a generator of ManagedClusterNATGatewayProfile_STATUS instances for property testing. +// We first initialize managedClusterNATGatewayProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterNATGatewayProfile_STATUSGenerator() gopter.Gen { + if managedClusterNATGatewayProfile_STATUSGenerator != nil { + return managedClusterNATGatewayProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + managedClusterNATGatewayProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(generators) + managedClusterNATGatewayProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterNATGatewayProfile_STATUS{}), generators) + + return managedClusterNATGatewayProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens map[string]gopter.Gen) { + gens["IdleTimeoutInMinutes"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterNATGatewayProfile_STATUS(gens map[string]gopter.Gen) { + gens["EffectiveOutboundIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) + gens["ManagedOutboundIPProfile"] = gen.PtrOf(ManagedClusterManagedOutboundIPProfile_STATUSGenerator()) +} + +func Test_ManagedClusterOperatorConfigMaps_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorConfigMaps via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorConfigMaps, ManagedClusterOperatorConfigMapsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorConfigMaps runs a test to see if a specific instance of ManagedClusterOperatorConfigMaps round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorConfigMaps(subject ManagedClusterOperatorConfigMaps) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorConfigMaps + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorConfigMaps instances for property testing - lazily instantiated by +// ManagedClusterOperatorConfigMapsGenerator() +var managedClusterOperatorConfigMapsGenerator gopter.Gen + +// ManagedClusterOperatorConfigMapsGenerator returns a generator of ManagedClusterOperatorConfigMaps instances for property testing. +func ManagedClusterOperatorConfigMapsGenerator() gopter.Gen { + if managedClusterOperatorConfigMapsGenerator != nil { + return managedClusterOperatorConfigMapsGenerator + } + + generators := make(map[string]gopter.Gen) + managedClusterOperatorConfigMapsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorConfigMaps{}), generators) + + return managedClusterOperatorConfigMapsGenerator +} + +func Test_ManagedClusterOperatorSecrets_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterOperatorSecrets via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterOperatorSecrets, ManagedClusterOperatorSecretsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterOperatorSecrets runs a test to see if a specific instance of ManagedClusterOperatorSecrets round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterOperatorSecrets(subject ManagedClusterOperatorSecrets) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterOperatorSecrets + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterOperatorSecrets instances for property testing - lazily instantiated by +// ManagedClusterOperatorSecretsGenerator() +var managedClusterOperatorSecretsGenerator gopter.Gen + +// ManagedClusterOperatorSecretsGenerator returns a generator of ManagedClusterOperatorSecrets instances for property testing. +func ManagedClusterOperatorSecretsGenerator() gopter.Gen { + if managedClusterOperatorSecretsGenerator != nil { + return managedClusterOperatorSecretsGenerator + } + + generators := make(map[string]gopter.Gen) + managedClusterOperatorSecretsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterOperatorSecrets{}), generators) + + return managedClusterOperatorSecretsGenerator +} + +func Test_ManagedClusterPodIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity, ManagedClusterPodIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity runs a test to see if a specific instance of ManagedClusterPodIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity(subject ManagedClusterPodIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityGenerator() +var managedClusterPodIdentityGenerator gopter.Gen + +// ManagedClusterPodIdentityGenerator returns a generator of ManagedClusterPodIdentity instances for property testing. +// We first initialize managedClusterPodIdentityGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityGenerator() gopter.Gen { + if managedClusterPodIdentityGenerator != nil { + return managedClusterPodIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(generators) + managedClusterPodIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity(generators) + managedClusterPodIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity{}), generators) + + return managedClusterPodIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentityGenerator()) +} + +func Test_ManagedClusterPodIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_STATUS, ManagedClusterPodIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_STATUS(subject ManagedClusterPodIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentity_STATUSGenerator() +var managedClusterPodIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentity_STATUSGenerator returns a generator of ManagedClusterPodIdentity_STATUS instances for property testing. +// We first initialize managedClusterPodIdentity_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentity_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentity_STATUSGenerator != nil { + return managedClusterPodIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + managedClusterPodIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS(generators) + managedClusterPodIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_STATUS{}), generators) + + return managedClusterPodIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentity_STATUS(gens map[string]gopter.Gen) { + gens["BindingSelector"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_STATUS(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(UserAssignedIdentity_STATUSGenerator()) + gens["ProvisioningInfo"] = gen.PtrOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator()) +} + +func Test_ManagedClusterPodIdentityException_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException, ManagedClusterPodIdentityExceptionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException runs a test to see if a specific instance of ManagedClusterPodIdentityException round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException(subject ManagedClusterPodIdentityException) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityExceptionGenerator() +var managedClusterPodIdentityExceptionGenerator gopter.Gen + +// ManagedClusterPodIdentityExceptionGenerator returns a generator of ManagedClusterPodIdentityException instances for property testing. +func ManagedClusterPodIdentityExceptionGenerator() gopter.Gen { + if managedClusterPodIdentityExceptionGenerator != nil { + return managedClusterPodIdentityExceptionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException(generators) + managedClusterPodIdentityExceptionGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException{}), generators) + + return managedClusterPodIdentityExceptionGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityException_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityException_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS, ManagedClusterPodIdentityException_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityException_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityException_STATUS(subject ManagedClusterPodIdentityException_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityException_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityException_STATUS instances for property testing - lazily instantiated by +// ManagedClusterPodIdentityException_STATUSGenerator() +var managedClusterPodIdentityException_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityException_STATUSGenerator returns a generator of ManagedClusterPodIdentityException_STATUS instances for property testing. +func ManagedClusterPodIdentityException_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityException_STATUSGenerator != nil { + return managedClusterPodIdentityException_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS(generators) + managedClusterPodIdentityException_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityException_STATUS{}), generators) + + return managedClusterPodIdentityException_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityException_STATUS(gens map[string]gopter.Gen) { + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Namespace"] = gen.PtrOf(gen.AlphaString()) + gens["PodLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_ManagedClusterSecurityProfileDefender_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender, ManagedClusterSecurityProfileDefenderGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender(subject ManagedClusterSecurityProfileDefender) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefenderGenerator() +var managedClusterSecurityProfileDefenderGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderGenerator returns a generator of ManagedClusterSecurityProfileDefender instances for property testing. +func ManagedClusterSecurityProfileDefenderGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderGenerator != nil { + return managedClusterSecurityProfileDefenderGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender(generators) + managedClusterSecurityProfileDefenderGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender{}), generators) + + return managedClusterSecurityProfileDefenderGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator()) +} + +func Test_ManagedClusterSecurityProfileDefender_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefender_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS, ManagedClusterSecurityProfileDefender_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileDefender_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefender_STATUS(subject ManagedClusterSecurityProfileDefender_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefender_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefender_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileDefender_STATUSGenerator() +var managedClusterSecurityProfileDefender_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefender_STATUSGenerator returns a generator of ManagedClusterSecurityProfileDefender_STATUS instances for property testing. +// We first initialize managedClusterSecurityProfileDefender_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterSecurityProfileDefender_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileDefender_STATUSGenerator != nil { + return managedClusterSecurityProfileDefender_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + managedClusterSecurityProfileDefender_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(generators) + managedClusterSecurityProfileDefender_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefender_STATUS{}), generators) + + return managedClusterSecurityProfileDefender_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(gens map[string]gopter.Gen) { + gens["LogAnalyticsWorkspaceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterSecurityProfileDefender_STATUS(gens map[string]gopter.Gen) { + gens["SecurityMonitoring"] = gen.PtrOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner, ManagedClusterSecurityProfileImageCleanerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner(subject ManagedClusterSecurityProfileImageCleaner) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileImageCleanerGenerator() +var managedClusterSecurityProfileImageCleanerGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleanerGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner instances for property testing. +func ManagedClusterSecurityProfileImageCleanerGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleanerGenerator != nil { + return managedClusterSecurityProfileImageCleanerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner(generators) + managedClusterSecurityProfileImageCleanerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner{}), generators) + + return managedClusterSecurityProfileImageCleanerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileImageCleaner_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileImageCleaner_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS, ManagedClusterSecurityProfileImageCleaner_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileImageCleaner_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileImageCleaner_STATUS(subject ManagedClusterSecurityProfileImageCleaner_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileImageCleaner_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileImageCleaner_STATUS instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileImageCleaner_STATUSGenerator() +var managedClusterSecurityProfileImageCleaner_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileImageCleaner_STATUSGenerator returns a generator of ManagedClusterSecurityProfileImageCleaner_STATUS instances for property testing. +func ManagedClusterSecurityProfileImageCleaner_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileImageCleaner_STATUSGenerator != nil { + return managedClusterSecurityProfileImageCleaner_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS(generators) + managedClusterSecurityProfileImageCleaner_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileImageCleaner_STATUS{}), generators) + + return managedClusterSecurityProfileImageCleaner_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileImageCleaner_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["IntervalHours"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity, ManagedClusterSecurityProfileWorkloadIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity(subject ManagedClusterSecurityProfileWorkloadIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity instances for property testing - lazily instantiated by +// ManagedClusterSecurityProfileWorkloadIdentityGenerator() +var managedClusterSecurityProfileWorkloadIdentityGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentityGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentityGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentityGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity(generators) + managedClusterSecurityProfileWorkloadIdentityGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity{}), generators) + + return managedClusterSecurityProfileWorkloadIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterSecurityProfileWorkloadIdentity_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileWorkloadIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS, ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileWorkloadIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileWorkloadIdentity_STATUS(subject ManagedClusterSecurityProfileWorkloadIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileWorkloadIdentity_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator() +var managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator returns a generator of ManagedClusterSecurityProfileWorkloadIdentity_STATUS instances for property testing. +func ManagedClusterSecurityProfileWorkloadIdentity_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator != nil { + return managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS(generators) + managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileWorkloadIdentity_STATUS{}), generators) + + return managedClusterSecurityProfileWorkloadIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileWorkloadIdentity_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver, ManagedClusterStorageProfileBlobCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver(subject ManagedClusterStorageProfileBlobCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileBlobCSIDriverGenerator() +var managedClusterStorageProfileBlobCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriverGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriverGenerator != nil { + return managedClusterStorageProfileBlobCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver(generators) + managedClusterStorageProfileBlobCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver{}), generators) + + return managedClusterStorageProfileBlobCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileBlobCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileBlobCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS, ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileBlobCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileBlobCSIDriver_STATUS(subject ManagedClusterStorageProfileBlobCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileBlobCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator() +var managedClusterStorageProfileBlobCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileBlobCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileBlobCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileBlobCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileBlobCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS(generators) + managedClusterStorageProfileBlobCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileBlobCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileBlobCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileBlobCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver, ManagedClusterStorageProfileDiskCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver(subject ManagedClusterStorageProfileDiskCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileDiskCSIDriverGenerator() +var managedClusterStorageProfileDiskCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriverGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriverGenerator != nil { + return managedClusterStorageProfileDiskCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver(generators) + managedClusterStorageProfileDiskCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver{}), generators) + + return managedClusterStorageProfileDiskCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileDiskCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileDiskCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS, ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileDiskCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileDiskCSIDriver_STATUS(subject ManagedClusterStorageProfileDiskCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileDiskCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator() +var managedClusterStorageProfileDiskCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileDiskCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileDiskCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileDiskCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileDiskCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS(generators) + managedClusterStorageProfileDiskCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileDiskCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileDiskCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileDiskCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver, ManagedClusterStorageProfileFileCSIDriverGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver(subject ManagedClusterStorageProfileFileCSIDriver) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileFileCSIDriverGenerator() +var managedClusterStorageProfileFileCSIDriverGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriverGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver instances for property testing. +func ManagedClusterStorageProfileFileCSIDriverGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriverGenerator != nil { + return managedClusterStorageProfileFileCSIDriverGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver(generators) + managedClusterStorageProfileFileCSIDriverGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver{}), generators) + + return managedClusterStorageProfileFileCSIDriverGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileFileCSIDriver_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileFileCSIDriver_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS, ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileFileCSIDriver_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileFileCSIDriver_STATUS(subject ManagedClusterStorageProfileFileCSIDriver_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileFileCSIDriver_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileFileCSIDriver_STATUS instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator() +var managedClusterStorageProfileFileCSIDriver_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator returns a generator of ManagedClusterStorageProfileFileCSIDriver_STATUS instances for property testing. +func ManagedClusterStorageProfileFileCSIDriver_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileFileCSIDriver_STATUSGenerator != nil { + return managedClusterStorageProfileFileCSIDriver_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS(generators) + managedClusterStorageProfileFileCSIDriver_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileFileCSIDriver_STATUS{}), generators) + + return managedClusterStorageProfileFileCSIDriver_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileFileCSIDriver_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController, ManagedClusterStorageProfileSnapshotControllerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController(subject ManagedClusterStorageProfileSnapshotController) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController instances for property testing - lazily instantiated by +// ManagedClusterStorageProfileSnapshotControllerGenerator() +var managedClusterStorageProfileSnapshotControllerGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotControllerGenerator returns a generator of ManagedClusterStorageProfileSnapshotController instances for property testing. +func ManagedClusterStorageProfileSnapshotControllerGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotControllerGenerator != nil { + return managedClusterStorageProfileSnapshotControllerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController(generators) + managedClusterStorageProfileSnapshotControllerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController{}), generators) + + return managedClusterStorageProfileSnapshotControllerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterStorageProfileSnapshotController_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterStorageProfileSnapshotController_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS, ManagedClusterStorageProfileSnapshotController_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS runs a test to see if a specific instance of ManagedClusterStorageProfileSnapshotController_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterStorageProfileSnapshotController_STATUS(subject ManagedClusterStorageProfileSnapshotController_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterStorageProfileSnapshotController_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterStorageProfileSnapshotController_STATUS instances for property testing - lazily +// instantiated by ManagedClusterStorageProfileSnapshotController_STATUSGenerator() +var managedClusterStorageProfileSnapshotController_STATUSGenerator gopter.Gen + +// ManagedClusterStorageProfileSnapshotController_STATUSGenerator returns a generator of ManagedClusterStorageProfileSnapshotController_STATUS instances for property testing. +func ManagedClusterStorageProfileSnapshotController_STATUSGenerator() gopter.Gen { + if managedClusterStorageProfileSnapshotController_STATUSGenerator != nil { + return managedClusterStorageProfileSnapshotController_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS(generators) + managedClusterStorageProfileSnapshotController_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterStorageProfileSnapshotController_STATUS{}), generators) + + return managedClusterStorageProfileSnapshotController_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterStorageProfileSnapshotController_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda, ManagedClusterWorkloadAutoScalerProfileKedaGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda(subject ManagedClusterWorkloadAutoScalerProfileKeda) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda instances for property testing - lazily instantiated by +// ManagedClusterWorkloadAutoScalerProfileKedaGenerator() +var managedClusterWorkloadAutoScalerProfileKedaGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKedaGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKedaGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKedaGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKedaGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda(generators) + managedClusterWorkloadAutoScalerProfileKedaGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda{}), generators) + + return managedClusterWorkloadAutoScalerProfileKedaGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS, ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(subject ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileKeda_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS instances for property testing - lazily instantiated +// by ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileKeda_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(generators) + managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfileKeda_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileKeda_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing - lazily +// instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscalerGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS, ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS runs a test to see if a specific instance of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(subject ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing - +// lazily instantiated by ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() +var managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator gopter.Gen + +// ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator returns a generator of ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS instances for property testing. +func ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator() gopter.Gen { + if managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator != nil { + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(generators) + managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS{}), generators) + + return managedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_UpgradeOverrideSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings, UpgradeOverrideSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings runs a test to see if a specific instance of UpgradeOverrideSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings(subject UpgradeOverrideSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings instances for property testing - lazily instantiated by +// UpgradeOverrideSettingsGenerator() +var upgradeOverrideSettingsGenerator gopter.Gen + +// UpgradeOverrideSettingsGenerator returns a generator of UpgradeOverrideSettings instances for property testing. +func UpgradeOverrideSettingsGenerator() gopter.Gen { + if upgradeOverrideSettingsGenerator != nil { + return upgradeOverrideSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(generators) + upgradeOverrideSettingsGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings{}), generators) + + return upgradeOverrideSettingsGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UpgradeOverrideSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UpgradeOverrideSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUpgradeOverrideSettings_STATUS, UpgradeOverrideSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUpgradeOverrideSettings_STATUS runs a test to see if a specific instance of UpgradeOverrideSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUpgradeOverrideSettings_STATUS(subject UpgradeOverrideSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UpgradeOverrideSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UpgradeOverrideSettings_STATUS instances for property testing - lazily instantiated by +// UpgradeOverrideSettings_STATUSGenerator() +var upgradeOverrideSettings_STATUSGenerator gopter.Gen + +// UpgradeOverrideSettings_STATUSGenerator returns a generator of UpgradeOverrideSettings_STATUS instances for property testing. +func UpgradeOverrideSettings_STATUSGenerator() gopter.Gen { + if upgradeOverrideSettings_STATUSGenerator != nil { + return upgradeOverrideSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(generators) + upgradeOverrideSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(UpgradeOverrideSettings_STATUS{}), generators) + + return upgradeOverrideSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUpgradeOverrideSettings_STATUS(gens map[string]gopter.Gen) { + gens["ForceUpgrade"] = gen.PtrOf(gen.Bool()) + gens["Until"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentityDetails_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails runs a test to see if a specific instance of UserAssignedIdentityDetails round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of UserAssignedIdentityDetails instances for property testing - lazily instantiated by +// UserAssignedIdentityDetailsGenerator() +var userAssignedIdentityDetailsGenerator gopter.Gen + +// UserAssignedIdentityDetailsGenerator returns a generator of UserAssignedIdentityDetails instances for property testing. +func UserAssignedIdentityDetailsGenerator() gopter.Gen { + if userAssignedIdentityDetailsGenerator != nil { + return userAssignedIdentityDetailsGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetailsGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails{}), generators) + + return userAssignedIdentityDetailsGenerator +} + +func Test_WindowsGmsaProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile, WindowsGmsaProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile runs a test to see if a specific instance of WindowsGmsaProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile(subject WindowsGmsaProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile instances for property testing - lazily instantiated by WindowsGmsaProfileGenerator() +var windowsGmsaProfileGenerator gopter.Gen + +// WindowsGmsaProfileGenerator returns a generator of WindowsGmsaProfile instances for property testing. +func WindowsGmsaProfileGenerator() gopter.Gen { + if windowsGmsaProfileGenerator != nil { + return windowsGmsaProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile(generators) + windowsGmsaProfileGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile{}), generators) + + return windowsGmsaProfileGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_WindowsGmsaProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of WindowsGmsaProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForWindowsGmsaProfile_STATUS, WindowsGmsaProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForWindowsGmsaProfile_STATUS runs a test to see if a specific instance of WindowsGmsaProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForWindowsGmsaProfile_STATUS(subject WindowsGmsaProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual WindowsGmsaProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of WindowsGmsaProfile_STATUS instances for property testing - lazily instantiated by +// WindowsGmsaProfile_STATUSGenerator() +var windowsGmsaProfile_STATUSGenerator gopter.Gen + +// WindowsGmsaProfile_STATUSGenerator returns a generator of WindowsGmsaProfile_STATUS instances for property testing. +func WindowsGmsaProfile_STATUSGenerator() gopter.Gen { + if windowsGmsaProfile_STATUSGenerator != nil { + return windowsGmsaProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS(generators) + windowsGmsaProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(WindowsGmsaProfile_STATUS{}), generators) + + return windowsGmsaProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForWindowsGmsaProfile_STATUS(gens map[string]gopter.Gen) { + gens["DnsServer"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["RootDomainName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey, ContainerServiceSshPublicKeyGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey runs a test to see if a specific instance of ContainerServiceSshPublicKey round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey(subject ContainerServiceSshPublicKey) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKeyGenerator() +var containerServiceSshPublicKeyGenerator gopter.Gen + +// ContainerServiceSshPublicKeyGenerator returns a generator of ContainerServiceSshPublicKey instances for property testing. +func ContainerServiceSshPublicKeyGenerator() gopter.Gen { + if containerServiceSshPublicKeyGenerator != nil { + return containerServiceSshPublicKeyGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(generators) + containerServiceSshPublicKeyGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey{}), generators) + + return containerServiceSshPublicKeyGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ContainerServiceSshPublicKey_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ContainerServiceSshPublicKey_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS, ContainerServiceSshPublicKey_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS runs a test to see if a specific instance of ContainerServiceSshPublicKey_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForContainerServiceSshPublicKey_STATUS(subject ContainerServiceSshPublicKey_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ContainerServiceSshPublicKey_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ContainerServiceSshPublicKey_STATUS instances for property testing - lazily instantiated by +// ContainerServiceSshPublicKey_STATUSGenerator() +var containerServiceSshPublicKey_STATUSGenerator gopter.Gen + +// ContainerServiceSshPublicKey_STATUSGenerator returns a generator of ContainerServiceSshPublicKey_STATUS instances for property testing. +func ContainerServiceSshPublicKey_STATUSGenerator() gopter.Gen { + if containerServiceSshPublicKey_STATUSGenerator != nil { + return containerServiceSshPublicKey_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(generators) + containerServiceSshPublicKey_STATUSGenerator = gen.Struct(reflect.TypeOf(ContainerServiceSshPublicKey_STATUS{}), generators) + + return containerServiceSshPublicKey_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForContainerServiceSshPublicKey_STATUS(gens map[string]gopter.Gen) { + gens["KeyData"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioCertificateAuthority_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority, IstioCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority runs a test to see if a specific instance of IstioCertificateAuthority round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority(subject IstioCertificateAuthority) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority instances for property testing - lazily instantiated by +// IstioCertificateAuthorityGenerator() +var istioCertificateAuthorityGenerator gopter.Gen + +// IstioCertificateAuthorityGenerator returns a generator of IstioCertificateAuthority instances for property testing. +func IstioCertificateAuthorityGenerator() gopter.Gen { + if istioCertificateAuthorityGenerator != nil { + return istioCertificateAuthorityGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority(generators) + istioCertificateAuthorityGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority{}), generators) + + return istioCertificateAuthorityGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthorityGenerator()) +} + +func Test_IstioCertificateAuthority_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioCertificateAuthority_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioCertificateAuthority_STATUS, IstioCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioCertificateAuthority_STATUS runs a test to see if a specific instance of IstioCertificateAuthority_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioCertificateAuthority_STATUS(subject IstioCertificateAuthority_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioCertificateAuthority_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioCertificateAuthority_STATUS instances for property testing - lazily instantiated by +// IstioCertificateAuthority_STATUSGenerator() +var istioCertificateAuthority_STATUSGenerator gopter.Gen + +// IstioCertificateAuthority_STATUSGenerator returns a generator of IstioCertificateAuthority_STATUS instances for property testing. +func IstioCertificateAuthority_STATUSGenerator() gopter.Gen { + if istioCertificateAuthority_STATUSGenerator != nil { + return istioCertificateAuthority_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS(generators) + istioCertificateAuthority_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioCertificateAuthority_STATUS{}), generators) + + return istioCertificateAuthority_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioCertificateAuthority_STATUS(gens map[string]gopter.Gen) { + gens["Plugin"] = gen.PtrOf(IstioPluginCertificateAuthority_STATUSGenerator()) +} + +func Test_IstioComponents_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents, IstioComponentsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents runs a test to see if a specific instance of IstioComponents round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents(subject IstioComponents) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents instances for property testing - lazily instantiated by IstioComponentsGenerator() +var istioComponentsGenerator gopter.Gen + +// IstioComponentsGenerator returns a generator of IstioComponents instances for property testing. +func IstioComponentsGenerator() gopter.Gen { + if istioComponentsGenerator != nil { + return istioComponentsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents(generators) + istioComponentsGenerator = gen.Struct(reflect.TypeOf(IstioComponents{}), generators) + + return istioComponentsGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGatewayGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGatewayGenerator()) +} + +func Test_IstioComponents_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioComponents_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioComponents_STATUS, IstioComponents_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioComponents_STATUS runs a test to see if a specific instance of IstioComponents_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioComponents_STATUS(subject IstioComponents_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioComponents_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioComponents_STATUS instances for property testing - lazily instantiated by +// IstioComponents_STATUSGenerator() +var istioComponents_STATUSGenerator gopter.Gen + +// IstioComponents_STATUSGenerator returns a generator of IstioComponents_STATUS instances for property testing. +func IstioComponents_STATUSGenerator() gopter.Gen { + if istioComponents_STATUSGenerator != nil { + return istioComponents_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForIstioComponents_STATUS(generators) + istioComponents_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioComponents_STATUS{}), generators) + + return istioComponents_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForIstioComponents_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForIstioComponents_STATUS(gens map[string]gopter.Gen) { + gens["EgressGateways"] = gen.SliceOf(IstioEgressGateway_STATUSGenerator()) + gens["IngressGateways"] = gen.SliceOf(IstioIngressGateway_STATUSGenerator()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics, ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics(subject ManagedClusterAzureMonitorProfileKubeStateMetrics) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics instances for property testing - lazily instantiated +// by ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator() +var managedClusterAzureMonitorProfileKubeStateMetricsGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetricsGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetricsGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetricsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics(generators) + managedClusterAzureMonitorProfileKubeStateMetricsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetricsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS, ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS runs a test to see if a specific instance of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(subject ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS instances for property testing - lazily +// instantiated by ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator() +var managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator gopter.Gen + +// ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator returns a generator of ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS instances for property testing. +func ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator() gopter.Gen { + if managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator != nil { + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(generators) + managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS{}), generators) + + return managedClusterAzureMonitorProfileKubeStateMetrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS(gens map[string]gopter.Gen) { + gens["MetricAnnotationsAllowList"] = gen.PtrOf(gen.AlphaString()) + gens["MetricLabelsAllowlist"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs, ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPsGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator() +var managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(generators) + managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CountIPv6"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes, ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixesGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReferenceGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator() +var managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(generators) + managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS(gens map[string]gopter.Gen) { + gens["PublicIPPrefixes"] = gen.SliceOf(ResourceReference_STATUSGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs, ManagedClusterLoadBalancerProfile_OutboundIPsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs(subject ManagedClusterLoadBalancerProfile_OutboundIPs) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs instances for property testing - lazily instantiated by +// ManagedClusterLoadBalancerProfile_OutboundIPsGenerator() +var managedClusterLoadBalancerProfile_OutboundIPsGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPsGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPsGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPsGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPsGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs(generators) + managedClusterLoadBalancerProfile_OutboundIPsGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPsGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReferenceGenerator()) +} + +func Test_ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS, ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS runs a test to see if a specific instance of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(subject ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS instances for property testing - lazily +// instantiated by ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator() +var managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator gopter.Gen + +// ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator returns a generator of ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS instances for property testing. +func ManagedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator() gopter.Gen { + if managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator != nil { + return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(generators) + managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS{}), generators) + + return managedClusterLoadBalancerProfile_OutboundIPs_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterLoadBalancerProfile_OutboundIPs_STATUS(gens map[string]gopter.Gen) { + gens["PublicIPs"] = gen.SliceOf(ResourceReference_STATUSGenerator()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile, ManagedClusterManagedOutboundIPProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile(subject ManagedClusterManagedOutboundIPProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile instances for property testing - lazily instantiated by +// ManagedClusterManagedOutboundIPProfileGenerator() +var managedClusterManagedOutboundIPProfileGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfileGenerator returns a generator of ManagedClusterManagedOutboundIPProfile instances for property testing. +func ManagedClusterManagedOutboundIPProfileGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfileGenerator != nil { + return managedClusterManagedOutboundIPProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile(generators) + managedClusterManagedOutboundIPProfileGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile{}), generators) + + return managedClusterManagedOutboundIPProfileGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterManagedOutboundIPProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterManagedOutboundIPProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS, ManagedClusterManagedOutboundIPProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS runs a test to see if a specific instance of ManagedClusterManagedOutboundIPProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterManagedOutboundIPProfile_STATUS(subject ManagedClusterManagedOutboundIPProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterManagedOutboundIPProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterManagedOutboundIPProfile_STATUS instances for property testing - lazily instantiated by +// ManagedClusterManagedOutboundIPProfile_STATUSGenerator() +var managedClusterManagedOutboundIPProfile_STATUSGenerator gopter.Gen + +// ManagedClusterManagedOutboundIPProfile_STATUSGenerator returns a generator of ManagedClusterManagedOutboundIPProfile_STATUS instances for property testing. +func ManagedClusterManagedOutboundIPProfile_STATUSGenerator() gopter.Gen { + if managedClusterManagedOutboundIPProfile_STATUSGenerator != nil { + return managedClusterManagedOutboundIPProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS(generators) + managedClusterManagedOutboundIPProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterManagedOutboundIPProfile_STATUS{}), generators) + + return managedClusterManagedOutboundIPProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterManagedOutboundIPProfile_STATUS(gens map[string]gopter.Gen) { + gens["Count"] = gen.PtrOf(gen.Int()) +} + +func Test_ManagedClusterPodIdentity_ProvisioningInfo_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentity_ProvisioningInfo_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS, ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentity_ProvisioningInfo_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentity_ProvisioningInfo_STATUS(subject ManagedClusterPodIdentity_ProvisioningInfo_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentity_ProvisioningInfo_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS instances for property testing - lazily instantiated +// by ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator() +var managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator returns a generator of ManagedClusterPodIdentity_ProvisioningInfo_STATUS instances for property testing. +func ManagedClusterPodIdentity_ProvisioningInfo_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator != nil { + return managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS(generators) + managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentity_ProvisioningInfo_STATUS{}), generators) + + return managedClusterPodIdentity_ProvisioningInfo_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentity_ProvisioningInfo_STATUS(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningError_STATUSGenerator()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring, ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoringGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoringGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoringGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoringGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring(generators) + managedClusterSecurityProfileDefenderSecurityMonitoringGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoringGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS, ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS runs a test to see if a specific instance of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(subject ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS instances for property testing - lazily +// instantiated by ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator() +var managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator gopter.Gen + +// ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator returns a generator of ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS instances for property testing. +func ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator() gopter.Gen { + if managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator != nil { + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(generators) + managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS{}), generators) + + return managedClusterSecurityProfileDefenderSecurityMonitoring_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) +} + +func Test_ResourceReference_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference, ResourceReferenceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference runs a test to see if a specific instance of ResourceReference round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference(subject ResourceReference) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference instances for property testing - lazily instantiated by ResourceReferenceGenerator() +var resourceReferenceGenerator gopter.Gen + +// ResourceReferenceGenerator returns a generator of ResourceReference instances for property testing. +func ResourceReferenceGenerator() gopter.Gen { + if resourceReferenceGenerator != nil { + return resourceReferenceGenerator + } + + generators := make(map[string]gopter.Gen) + resourceReferenceGenerator = gen.Struct(reflect.TypeOf(ResourceReference{}), generators) + + return resourceReferenceGenerator +} + +func Test_ResourceReference_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ResourceReference_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForResourceReference_STATUS, ResourceReference_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForResourceReference_STATUS runs a test to see if a specific instance of ResourceReference_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForResourceReference_STATUS(subject ResourceReference_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ResourceReference_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ResourceReference_STATUS instances for property testing - lazily instantiated by +// ResourceReference_STATUSGenerator() +var resourceReference_STATUSGenerator gopter.Gen + +// ResourceReference_STATUSGenerator returns a generator of ResourceReference_STATUS instances for property testing. +func ResourceReference_STATUSGenerator() gopter.Gen { + if resourceReference_STATUSGenerator != nil { + return resourceReference_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForResourceReference_STATUS(generators) + resourceReference_STATUSGenerator = gen.Struct(reflect.TypeOf(ResourceReference_STATUS{}), generators) + + return resourceReference_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForResourceReference_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForResourceReference_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioEgressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway, IstioEgressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway runs a test to see if a specific instance of IstioEgressGateway round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway(subject IstioEgressGateway) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway instances for property testing - lazily instantiated by IstioEgressGatewayGenerator() +var istioEgressGatewayGenerator gopter.Gen + +// IstioEgressGatewayGenerator returns a generator of IstioEgressGateway instances for property testing. +func IstioEgressGatewayGenerator() gopter.Gen { + if istioEgressGatewayGenerator != nil { + return istioEgressGatewayGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway(generators) + istioEgressGatewayGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway{}), generators) + + return istioEgressGatewayGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioEgressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioEgressGateway_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioEgressGateway_STATUS, IstioEgressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioEgressGateway_STATUS runs a test to see if a specific instance of IstioEgressGateway_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioEgressGateway_STATUS(subject IstioEgressGateway_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioEgressGateway_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioEgressGateway_STATUS instances for property testing - lazily instantiated by +// IstioEgressGateway_STATUSGenerator() +var istioEgressGateway_STATUSGenerator gopter.Gen + +// IstioEgressGateway_STATUSGenerator returns a generator of IstioEgressGateway_STATUS instances for property testing. +func IstioEgressGateway_STATUSGenerator() gopter.Gen { + if istioEgressGateway_STATUSGenerator != nil { + return istioEgressGateway_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS(generators) + istioEgressGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioEgressGateway_STATUS{}), generators) + + return istioEgressGateway_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioEgressGateway_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["NodeSelector"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) +} + +func Test_IstioIngressGateway_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway, IstioIngressGatewayGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway runs a test to see if a specific instance of IstioIngressGateway round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway(subject IstioIngressGateway) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway instances for property testing - lazily instantiated by +// IstioIngressGatewayGenerator() +var istioIngressGatewayGenerator gopter.Gen + +// IstioIngressGatewayGenerator returns a generator of IstioIngressGateway instances for property testing. +func IstioIngressGatewayGenerator() gopter.Gen { + if istioIngressGatewayGenerator != nil { + return istioIngressGatewayGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway(generators) + istioIngressGatewayGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway{}), generators) + + return istioIngressGatewayGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioIngressGateway_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioIngressGateway_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioIngressGateway_STATUS, IstioIngressGateway_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioIngressGateway_STATUS runs a test to see if a specific instance of IstioIngressGateway_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioIngressGateway_STATUS(subject IstioIngressGateway_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioIngressGateway_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioIngressGateway_STATUS instances for property testing - lazily instantiated by +// IstioIngressGateway_STATUSGenerator() +var istioIngressGateway_STATUSGenerator gopter.Gen + +// IstioIngressGateway_STATUSGenerator returns a generator of IstioIngressGateway_STATUS instances for property testing. +func IstioIngressGateway_STATUSGenerator() gopter.Gen { + if istioIngressGateway_STATUSGenerator != nil { + return istioIngressGateway_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(generators) + istioIngressGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioIngressGateway_STATUS{}), generators) + + return istioIngressGateway_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioIngressGateway_STATUS(gens map[string]gopter.Gen) { + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioPluginCertificateAuthority_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority, IstioPluginCertificateAuthorityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority runs a test to see if a specific instance of IstioPluginCertificateAuthority round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority(subject IstioPluginCertificateAuthority) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthorityGenerator() +var istioPluginCertificateAuthorityGenerator gopter.Gen + +// IstioPluginCertificateAuthorityGenerator returns a generator of IstioPluginCertificateAuthority instances for property testing. +func IstioPluginCertificateAuthorityGenerator() gopter.Gen { + if istioPluginCertificateAuthorityGenerator != nil { + return istioPluginCertificateAuthorityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority(generators) + istioPluginCertificateAuthorityGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority{}), generators) + + return istioPluginCertificateAuthorityGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IstioPluginCertificateAuthority_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IstioPluginCertificateAuthority_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS, IstioPluginCertificateAuthority_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS runs a test to see if a specific instance of IstioPluginCertificateAuthority_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIstioPluginCertificateAuthority_STATUS(subject IstioPluginCertificateAuthority_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IstioPluginCertificateAuthority_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IstioPluginCertificateAuthority_STATUS instances for property testing - lazily instantiated by +// IstioPluginCertificateAuthority_STATUSGenerator() +var istioPluginCertificateAuthority_STATUSGenerator gopter.Gen + +// IstioPluginCertificateAuthority_STATUSGenerator returns a generator of IstioPluginCertificateAuthority_STATUS instances for property testing. +func IstioPluginCertificateAuthority_STATUSGenerator() gopter.Gen { + if istioPluginCertificateAuthority_STATUSGenerator != nil { + return istioPluginCertificateAuthority_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS(generators) + istioPluginCertificateAuthority_STATUSGenerator = gen.Struct(reflect.TypeOf(IstioPluginCertificateAuthority_STATUS{}), generators) + + return istioPluginCertificateAuthority_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIstioPluginCertificateAuthority_STATUS(gens map[string]gopter.Gen) { + gens["CertChainObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["CertObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyObjectName"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["RootCertObjectName"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ManagedClusterPodIdentityProvisioningError_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningError_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS, ManagedClusterPodIdentityProvisioningError_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningError_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningError_STATUS(subject ManagedClusterPodIdentityProvisioningError_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningError_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningError_STATUS instances for property testing - lazily instantiated +// by ManagedClusterPodIdentityProvisioningError_STATUSGenerator() +var managedClusterPodIdentityProvisioningError_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningError_STATUSGenerator returns a generator of ManagedClusterPodIdentityProvisioningError_STATUS instances for property testing. +func ManagedClusterPodIdentityProvisioningError_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningError_STATUSGenerator != nil { + return managedClusterPodIdentityProvisioningError_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS(generators) + managedClusterPodIdentityProvisioningError_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningError_STATUS{}), generators) + + return managedClusterPodIdentityProvisioningError_STATUSGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningError_STATUS(gens map[string]gopter.Gen) { + gens["Error"] = gen.PtrOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS, ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS instances for property testing. +// We first initialize managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUSGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS(gens map[string]gopter.Gen) { + gens["Details"] = gen.SliceOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator()) +} + +func Test_ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled runs a test to see if a specific instance of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(subject ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled instances for property testing - lazily +// instantiated by ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator() +var managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator gopter.Gen + +// ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator returns a generator of ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled instances for property testing. +func ManagedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator() gopter.Gen { + if managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator != nil { + return managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(generators) + managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator = gen.Struct(reflect.TypeOf(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled{}), generators) + + return managedClusterPodIdentityProvisioningErrorBody_STATUS_UnrolledGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) + gens["Message"] = gen.PtrOf(gen.AlphaString()) + gens["Target"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen.go b/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen.go new file mode 100644 index 00000000000..8b0369eb009 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen.go @@ -0,0 +1,523 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// +kubebuilder:rbac:groups=containerservice.azure.com,resources=managedclustersagentpools,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=containerservice.azure.com,resources={managedclustersagentpools/status,managedclustersagentpools/finalizers},verbs=get;update;patch + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Storage version of v1api20231001.ManagedClustersAgentPool +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName} +type ManagedClustersAgentPool struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ManagedClusters_AgentPool_Spec `json:"spec,omitempty"` + Status ManagedClusters_AgentPool_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ManagedClustersAgentPool{} + +// GetConditions returns the conditions of the resource +func (pool *ManagedClustersAgentPool) GetConditions() conditions.Conditions { + return pool.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (pool *ManagedClustersAgentPool) SetConditions(conditions conditions.Conditions) { + pool.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &ManagedClustersAgentPool{} + +// AzureName returns the Azure name of the resource +func (pool *ManagedClustersAgentPool) AzureName() string { + return pool.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-10-01" +func (pool ManagedClustersAgentPool) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (pool *ManagedClustersAgentPool) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (pool *ManagedClustersAgentPool) GetSpec() genruntime.ConvertibleSpec { + return &pool.Spec +} + +// GetStatus returns the status of this resource +func (pool *ManagedClustersAgentPool) GetStatus() genruntime.ConvertibleStatus { + return &pool.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (pool *ManagedClustersAgentPool) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ContainerService/managedClusters/agentPools" +func (pool *ManagedClustersAgentPool) GetType() string { + return "Microsoft.ContainerService/managedClusters/agentPools" +} + +// NewEmptyStatus returns a new empty (blank) status +func (pool *ManagedClustersAgentPool) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ManagedClusters_AgentPool_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (pool *ManagedClustersAgentPool) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(pool.Spec) + return pool.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (pool *ManagedClustersAgentPool) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ManagedClusters_AgentPool_STATUS); ok { + pool.Status = *st + return nil + } + + // Convert status to required version + var st ManagedClusters_AgentPool_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + pool.Status = st + return nil +} + +// Hub marks that this ManagedClustersAgentPool is the hub type for conversion +func (pool *ManagedClustersAgentPool) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (pool *ManagedClustersAgentPool) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: pool.Spec.OriginalVersion, + Kind: "ManagedClustersAgentPool", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20231001.ManagedClustersAgentPool +// Generator information: +// - Generated from: /containerservice/resource-manager/Microsoft.ContainerService/aks/stable/2023-10-01/managedClusters.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/agentPools/{agentPoolName} +type ManagedClustersAgentPoolList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ManagedClustersAgentPool `json:"items"` +} + +// Storage version of v1api20231001.ManagedClusters_AgentPool_Spec +type ManagedClusters_AgentPool_Spec struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // CapacityReservationGroupReference: AKS will associate the specified agent pool with the Capacity Reservation Group. + CapacityReservationGroupReference *genruntime.ResourceReference `armReference:"CapacityReservationGroupID" json:"capacityReservationGroupReference,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData `json:"creationData,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + + // HostGroupReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/hostGroups/{hostGroupName}. + // For more information see [Azure dedicated hosts](https://docs.microsoft.com/azure/virtual-machines/dedicated-hosts). + HostGroupReference *genruntime.ResourceReference `armReference:"HostGroupID" json:"hostGroupReference,omitempty"` + KubeletConfig *KubeletConfig `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + LinuxOSConfig *LinuxOSConfig `json:"linuxOSConfig,omitempty"` + MaxCount *int `json:"maxCount,omitempty"` + MaxPods *int `json:"maxPods,omitempty"` + MinCount *int `json:"minCount,omitempty"` + Mode *string `json:"mode,omitempty"` + NetworkProfile *AgentPoolNetworkProfile `json:"networkProfile,omitempty"` + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + + // NodePublicIPPrefixReference: This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName} + NodePublicIPPrefixReference *genruntime.ResourceReference `armReference:"NodePublicIPPrefixID" json:"nodePublicIPPrefixReference,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a containerservice.azure.com/ManagedCluster resource + Owner *genruntime.KnownResourceReference `group:"containerservice.azure.com" json:"owner,omitempty" kind:"ManagedCluster"` + + // PodSubnetReference: If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). + // This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + PodSubnetReference *genruntime.ResourceReference `armReference:"PodSubnetID" json:"podSubnetReference,omitempty"` + PowerState *PowerState `json:"powerState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // ProximityPlacementGroupReference: The ID for Proximity Placement Group. + ProximityPlacementGroupReference *genruntime.ResourceReference `armReference:"ProximityPlacementGroupID" json:"proximityPlacementGroupReference,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + + // VnetSubnetReference: If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is + // specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName} + VnetSubnetReference *genruntime.ResourceReference `armReference:"VnetSubnetID" json:"vnetSubnetReference,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &ManagedClusters_AgentPool_Spec{} + +// ConvertSpecFrom populates our ManagedClusters_AgentPool_Spec from the provided source +func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == pool { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(pool) +} + +// ConvertSpecTo populates the provided destination from our ManagedClusters_AgentPool_Spec +func (pool *ManagedClusters_AgentPool_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == pool { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(pool) +} + +// Storage version of v1api20231001.ManagedClusters_AgentPool_STATUS +type ManagedClusters_AgentPool_STATUS struct { + AvailabilityZones []string `json:"availabilityZones,omitempty"` + CapacityReservationGroupID *string `json:"capacityReservationGroupID,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + Count *int `json:"count,omitempty"` + CreationData *CreationData_STATUS `json:"creationData,omitempty"` + CurrentOrchestratorVersion *string `json:"currentOrchestratorVersion,omitempty"` + EnableAutoScaling *bool `json:"enableAutoScaling,omitempty"` + EnableEncryptionAtHost *bool `json:"enableEncryptionAtHost,omitempty"` + EnableFIPS *bool `json:"enableFIPS,omitempty"` + EnableNodePublicIP *bool `json:"enableNodePublicIP,omitempty"` + EnableUltraSSD *bool `json:"enableUltraSSD,omitempty"` + GpuInstanceProfile *string `json:"gpuInstanceProfile,omitempty"` + HostGroupID *string `json:"hostGroupID,omitempty"` + Id *string `json:"id,omitempty"` + KubeletConfig *KubeletConfig_STATUS `json:"kubeletConfig,omitempty"` + KubeletDiskType *string `json:"kubeletDiskType,omitempty"` + LinuxOSConfig *LinuxOSConfig_STATUS `json:"linuxOSConfig,omitempty"` + MaxCount *int `json:"maxCount,omitempty"` + MaxPods *int `json:"maxPods,omitempty"` + MinCount *int `json:"minCount,omitempty"` + Mode *string `json:"mode,omitempty"` + Name *string `json:"name,omitempty"` + NetworkProfile *AgentPoolNetworkProfile_STATUS `json:"networkProfile,omitempty"` + NodeImageVersion *string `json:"nodeImageVersion,omitempty"` + NodeLabels map[string]string `json:"nodeLabels,omitempty"` + NodePublicIPPrefixID *string `json:"nodePublicIPPrefixID,omitempty"` + NodeTaints []string `json:"nodeTaints,omitempty"` + OrchestratorVersion *string `json:"orchestratorVersion,omitempty"` + OsDiskSizeGB *int `json:"osDiskSizeGB,omitempty"` + OsDiskType *string `json:"osDiskType,omitempty"` + OsSKU *string `json:"osSKU,omitempty"` + OsType *string `json:"osType,omitempty"` + PodSubnetID *string `json:"podSubnetID,omitempty"` + PowerState *PowerState_STATUS `json:"powerState,omitempty"` + PropertiesType *string `json:"properties_type,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + ProximityPlacementGroupID *string `json:"proximityPlacementGroupID,omitempty"` + ScaleDownMode *string `json:"scaleDownMode,omitempty"` + ScaleSetEvictionPolicy *string `json:"scaleSetEvictionPolicy,omitempty"` + ScaleSetPriority *string `json:"scaleSetPriority,omitempty"` + SpotMaxPrice *float64 `json:"spotMaxPrice,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` + UpgradeSettings *AgentPoolUpgradeSettings_STATUS `json:"upgradeSettings,omitempty"` + VmSize *string `json:"vmSize,omitempty"` + VnetSubnetID *string `json:"vnetSubnetID,omitempty"` + WorkloadRuntime *string `json:"workloadRuntime,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ManagedClusters_AgentPool_STATUS{} + +// ConvertStatusFrom populates our ManagedClusters_AgentPool_STATUS from the provided source +func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == pool { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(pool) +} + +// ConvertStatusTo populates the provided destination from our ManagedClusters_AgentPool_STATUS +func (pool *ManagedClusters_AgentPool_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == pool { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(pool) +} + +// Storage version of v1api20231001.AgentPoolNetworkProfile +// Network settings of an agent pool. +type AgentPoolNetworkProfile struct { + AllowedHostPorts []PortRange `json:"allowedHostPorts,omitempty"` + ApplicationSecurityGroupsReferences []genruntime.ResourceReference `armReference:"ApplicationSecurityGroups" json:"applicationSecurityGroupsReferences,omitempty"` + NodePublicIPTags []IPTag `json:"nodePublicIPTags,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.AgentPoolNetworkProfile_STATUS +// Network settings of an agent pool. +type AgentPoolNetworkProfile_STATUS struct { + AllowedHostPorts []PortRange_STATUS `json:"allowedHostPorts,omitempty"` + ApplicationSecurityGroups []string `json:"applicationSecurityGroups,omitempty"` + NodePublicIPTags []IPTag_STATUS `json:"nodePublicIPTags,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.AgentPoolUpgradeSettings +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings struct { + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + MaxSurge *string `json:"maxSurge,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.AgentPoolUpgradeSettings_STATUS +// Settings for upgrading an agentpool +type AgentPoolUpgradeSettings_STATUS struct { + DrainTimeoutInMinutes *int `json:"drainTimeoutInMinutes,omitempty"` + MaxSurge *string `json:"maxSurge,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.CreationData +// Data used when creating a target resource from a source resource. +type CreationData struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // SourceResourceReference: This is the ARM ID of the source object to be used to create the target object. + SourceResourceReference *genruntime.ResourceReference `armReference:"SourceResourceId" json:"sourceResourceReference,omitempty"` +} + +// Storage version of v1api20231001.CreationData_STATUS +// Data used when creating a target resource from a source resource. +type CreationData_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SourceResourceId *string `json:"sourceResourceId,omitempty"` +} + +// Storage version of v1api20231001.KubeletConfig +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig struct { + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + FailSwapOn *bool `json:"failSwapOn,omitempty"` + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + PodMaxPids *int `json:"podMaxPids,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +// Storage version of v1api20231001.KubeletConfig_STATUS +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type KubeletConfig_STATUS struct { + AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty"` + ContainerLogMaxFiles *int `json:"containerLogMaxFiles,omitempty"` + ContainerLogMaxSizeMB *int `json:"containerLogMaxSizeMB,omitempty"` + CpuCfsQuota *bool `json:"cpuCfsQuota,omitempty"` + CpuCfsQuotaPeriod *string `json:"cpuCfsQuotaPeriod,omitempty"` + CpuManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + FailSwapOn *bool `json:"failSwapOn,omitempty"` + ImageGcHighThreshold *int `json:"imageGcHighThreshold,omitempty"` + ImageGcLowThreshold *int `json:"imageGcLowThreshold,omitempty"` + PodMaxPids *int `json:"podMaxPids,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TopologyManagerPolicy *string `json:"topologyManagerPolicy,omitempty"` +} + +// Storage version of v1api20231001.LinuxOSConfig +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + Sysctls *SysctlConfig `json:"sysctls,omitempty"` + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +// Storage version of v1api20231001.LinuxOSConfig_STATUS +// See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details. +type LinuxOSConfig_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SwapFileSizeMB *int `json:"swapFileSizeMB,omitempty"` + Sysctls *SysctlConfig_STATUS `json:"sysctls,omitempty"` + TransparentHugePageDefrag *string `json:"transparentHugePageDefrag,omitempty"` + TransparentHugePageEnabled *string `json:"transparentHugePageEnabled,omitempty"` +} + +// Storage version of v1api20231001.PowerState +// Describes the Power State of the cluster +type PowerState struct { + Code *string `json:"code,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20231001.IPTag +// Contains the IPTag associated with the object. +type IPTag struct { + IpTagType *string `json:"ipTagType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tag *string `json:"tag,omitempty"` +} + +// Storage version of v1api20231001.IPTag_STATUS +// Contains the IPTag associated with the object. +type IPTag_STATUS struct { + IpTagType *string `json:"ipTagType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tag *string `json:"tag,omitempty"` +} + +// Storage version of v1api20231001.PortRange +// The port range. +type PortRange struct { + PortEnd *int `json:"portEnd,omitempty"` + PortStart *int `json:"portStart,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Protocol *string `json:"protocol,omitempty"` +} + +// Storage version of v1api20231001.PortRange_STATUS +// The port range. +type PortRange_STATUS struct { + PortEnd *int `json:"portEnd,omitempty"` + PortStart *int `json:"portStart,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Protocol *string `json:"protocol,omitempty"` +} + +// Storage version of v1api20231001.SysctlConfig +// Sysctl settings for Linux agent nodes. +type SysctlConfig struct { + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + FsFileMax *int `json:"fsFileMax,omitempty"` + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + FsNrOpen *int `json:"fsNrOpen,omitempty"` + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + VmSwappiness *int `json:"vmSwappiness,omitempty"` + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} + +// Storage version of v1api20231001.SysctlConfig_STATUS +// Sysctl settings for Linux agent nodes. +type SysctlConfig_STATUS struct { + FsAioMaxNr *int `json:"fsAioMaxNr,omitempty"` + FsFileMax *int `json:"fsFileMax,omitempty"` + FsInotifyMaxUserWatches *int `json:"fsInotifyMaxUserWatches,omitempty"` + FsNrOpen *int `json:"fsNrOpen,omitempty"` + KernelThreadsMax *int `json:"kernelThreadsMax,omitempty"` + NetCoreNetdevMaxBacklog *int `json:"netCoreNetdevMaxBacklog,omitempty"` + NetCoreOptmemMax *int `json:"netCoreOptmemMax,omitempty"` + NetCoreRmemDefault *int `json:"netCoreRmemDefault,omitempty"` + NetCoreRmemMax *int `json:"netCoreRmemMax,omitempty"` + NetCoreSomaxconn *int `json:"netCoreSomaxconn,omitempty"` + NetCoreWmemDefault *int `json:"netCoreWmemDefault,omitempty"` + NetCoreWmemMax *int `json:"netCoreWmemMax,omitempty"` + NetIpv4IpLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"` + NetIpv4NeighDefaultGcThresh1 *int `json:"netIpv4NeighDefaultGcThresh1,omitempty"` + NetIpv4NeighDefaultGcThresh2 *int `json:"netIpv4NeighDefaultGcThresh2,omitempty"` + NetIpv4NeighDefaultGcThresh3 *int `json:"netIpv4NeighDefaultGcThresh3,omitempty"` + NetIpv4TcpFinTimeout *int `json:"netIpv4TcpFinTimeout,omitempty"` + NetIpv4TcpKeepaliveProbes *int `json:"netIpv4TcpKeepaliveProbes,omitempty"` + NetIpv4TcpKeepaliveTime *int `json:"netIpv4TcpKeepaliveTime,omitempty"` + NetIpv4TcpMaxSynBacklog *int `json:"netIpv4TcpMaxSynBacklog,omitempty"` + NetIpv4TcpMaxTwBuckets *int `json:"netIpv4TcpMaxTwBuckets,omitempty"` + NetIpv4TcpTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"` + NetIpv4TcpkeepaliveIntvl *int `json:"netIpv4TcpkeepaliveIntvl,omitempty"` + NetNetfilterNfConntrackBuckets *int `json:"netNetfilterNfConntrackBuckets,omitempty"` + NetNetfilterNfConntrackMax *int `json:"netNetfilterNfConntrackMax,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + VmMaxMapCount *int `json:"vmMaxMapCount,omitempty"` + VmSwappiness *int `json:"vmSwappiness,omitempty"` + VmVfsCachePressure *int `json:"vmVfsCachePressure,omitempty"` +} + +func init() { + SchemeBuilder.Register(&ManagedClustersAgentPool{}, &ManagedClustersAgentPoolList{}) +} diff --git a/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen_test.go b/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen_test.go new file mode 100644 index 00000000000..cf405bd9e05 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/managed_clusters_agent_pool_types_gen_test.go @@ -0,0 +1,1460 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ManagedClustersAgentPool_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClustersAgentPool via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClustersAgentPool, ManagedClustersAgentPoolGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClustersAgentPool runs a test to see if a specific instance of ManagedClustersAgentPool round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClustersAgentPool(subject ManagedClustersAgentPool) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClustersAgentPool + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClustersAgentPool instances for property testing - lazily instantiated by +// ManagedClustersAgentPoolGenerator() +var managedClustersAgentPoolGenerator gopter.Gen + +// ManagedClustersAgentPoolGenerator returns a generator of ManagedClustersAgentPool instances for property testing. +func ManagedClustersAgentPoolGenerator() gopter.Gen { + if managedClustersAgentPoolGenerator != nil { + return managedClustersAgentPoolGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForManagedClustersAgentPool(generators) + managedClustersAgentPoolGenerator = gen.Struct(reflect.TypeOf(ManagedClustersAgentPool{}), generators) + + return managedClustersAgentPoolGenerator +} + +// AddRelatedPropertyGeneratorsForManagedClustersAgentPool is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClustersAgentPool(gens map[string]gopter.Gen) { + gens["Spec"] = ManagedClusters_AgentPool_SpecGenerator() + gens["Status"] = ManagedClusters_AgentPool_STATUSGenerator() +} + +func Test_ManagedClusters_AgentPool_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_Spec, ManagedClusters_AgentPool_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_Spec runs a test to see if a specific instance of ManagedClusters_AgentPool_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_Spec(subject ManagedClusters_AgentPool_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_Spec instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_SpecGenerator() +var managedClusters_AgentPool_SpecGenerator gopter.Gen + +// ManagedClusters_AgentPool_SpecGenerator returns a generator of ManagedClusters_AgentPool_Spec instances for property testing. +// We first initialize managedClusters_AgentPool_SpecGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_SpecGenerator() gopter.Gen { + if managedClusters_AgentPool_SpecGenerator != nil { + return managedClusters_AgentPool_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + managedClusters_AgentPool_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec(generators) + managedClusters_AgentPool_SpecGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_Spec{}), generators) + + return managedClusters_AgentPool_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_Spec(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["AzureName"] = gen.AlphaString() + gens["Count"] = gen.PtrOf(gen.Int()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["OsSKU"] = gen.PtrOf(gen.AlphaString()) + gens["OsType"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetPriority"] = gen.PtrOf(gen.AlphaString()) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_Spec(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationDataGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfigGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfigGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfileGenerator()) + gens["PowerState"] = gen.PtrOf(PowerStateGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettingsGenerator()) +} + +func Test_ManagedClusters_AgentPool_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ManagedClusters_AgentPool_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForManagedClusters_AgentPool_STATUS, ManagedClusters_AgentPool_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForManagedClusters_AgentPool_STATUS runs a test to see if a specific instance of ManagedClusters_AgentPool_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForManagedClusters_AgentPool_STATUS(subject ManagedClusters_AgentPool_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ManagedClusters_AgentPool_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ManagedClusters_AgentPool_STATUS instances for property testing - lazily instantiated by +// ManagedClusters_AgentPool_STATUSGenerator() +var managedClusters_AgentPool_STATUSGenerator gopter.Gen + +// ManagedClusters_AgentPool_STATUSGenerator returns a generator of ManagedClusters_AgentPool_STATUS instances for property testing. +// We first initialize managedClusters_AgentPool_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ManagedClusters_AgentPool_STATUSGenerator() gopter.Gen { + if managedClusters_AgentPool_STATUSGenerator != nil { + return managedClusters_AgentPool_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + managedClusters_AgentPool_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(generators) + managedClusters_AgentPool_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedClusters_AgentPool_STATUS{}), generators) + + return managedClusters_AgentPool_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[string]gopter.Gen) { + gens["AvailabilityZones"] = gen.SliceOf(gen.AlphaString()) + gens["CapacityReservationGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Count"] = gen.PtrOf(gen.Int()) + gens["CurrentOrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["EnableAutoScaling"] = gen.PtrOf(gen.Bool()) + gens["EnableEncryptionAtHost"] = gen.PtrOf(gen.Bool()) + gens["EnableFIPS"] = gen.PtrOf(gen.Bool()) + gens["EnableNodePublicIP"] = gen.PtrOf(gen.Bool()) + gens["EnableUltraSSD"] = gen.PtrOf(gen.Bool()) + gens["GpuInstanceProfile"] = gen.PtrOf(gen.AlphaString()) + gens["HostGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["KubeletDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["MaxCount"] = gen.PtrOf(gen.Int()) + gens["MaxPods"] = gen.PtrOf(gen.Int()) + gens["MinCount"] = gen.PtrOf(gen.Int()) + gens["Mode"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NodeImageVersion"] = gen.PtrOf(gen.AlphaString()) + gens["NodeLabels"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["NodePublicIPPrefixID"] = gen.PtrOf(gen.AlphaString()) + gens["NodeTaints"] = gen.SliceOf(gen.AlphaString()) + gens["OrchestratorVersion"] = gen.PtrOf(gen.AlphaString()) + gens["OsDiskSizeGB"] = gen.PtrOf(gen.Int()) + gens["OsDiskType"] = gen.PtrOf(gen.AlphaString()) + gens["OsSKU"] = gen.PtrOf(gen.AlphaString()) + gens["OsType"] = gen.PtrOf(gen.AlphaString()) + gens["PodSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["PropertiesType"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ProximityPlacementGroupID"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleDownMode"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetEvictionPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["ScaleSetPriority"] = gen.PtrOf(gen.AlphaString()) + gens["SpotMaxPrice"] = gen.PtrOf(gen.Float64()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VmSize"] = gen.PtrOf(gen.AlphaString()) + gens["VnetSubnetID"] = gen.PtrOf(gen.AlphaString()) + gens["WorkloadRuntime"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForManagedClusters_AgentPool_STATUS(gens map[string]gopter.Gen) { + gens["CreationData"] = gen.PtrOf(CreationData_STATUSGenerator()) + gens["KubeletConfig"] = gen.PtrOf(KubeletConfig_STATUSGenerator()) + gens["LinuxOSConfig"] = gen.PtrOf(LinuxOSConfig_STATUSGenerator()) + gens["NetworkProfile"] = gen.PtrOf(AgentPoolNetworkProfile_STATUSGenerator()) + gens["PowerState"] = gen.PtrOf(PowerState_STATUSGenerator()) + gens["UpgradeSettings"] = gen.PtrOf(AgentPoolUpgradeSettings_STATUSGenerator()) +} + +func Test_AgentPoolNetworkProfile_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile, AgentPoolNetworkProfileGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile runs a test to see if a specific instance of AgentPoolNetworkProfile round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile(subject AgentPoolNetworkProfile) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile instances for property testing - lazily instantiated by +// AgentPoolNetworkProfileGenerator() +var agentPoolNetworkProfileGenerator gopter.Gen + +// AgentPoolNetworkProfileGenerator returns a generator of AgentPoolNetworkProfile instances for property testing. +func AgentPoolNetworkProfileGenerator() gopter.Gen { + if agentPoolNetworkProfileGenerator != nil { + return agentPoolNetworkProfileGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile(generators) + agentPoolNetworkProfileGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile{}), generators) + + return agentPoolNetworkProfileGenerator +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRangeGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTagGenerator()) +} + +func Test_AgentPoolNetworkProfile_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolNetworkProfile_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS, AgentPoolNetworkProfile_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS runs a test to see if a specific instance of AgentPoolNetworkProfile_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolNetworkProfile_STATUS(subject AgentPoolNetworkProfile_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolNetworkProfile_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolNetworkProfile_STATUS instances for property testing - lazily instantiated by +// AgentPoolNetworkProfile_STATUSGenerator() +var agentPoolNetworkProfile_STATUSGenerator gopter.Gen + +// AgentPoolNetworkProfile_STATUSGenerator returns a generator of AgentPoolNetworkProfile_STATUS instances for property testing. +// We first initialize agentPoolNetworkProfile_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func AgentPoolNetworkProfile_STATUSGenerator() gopter.Gen { + if agentPoolNetworkProfile_STATUSGenerator != nil { + return agentPoolNetworkProfile_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + agentPoolNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(generators) + agentPoolNetworkProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolNetworkProfile_STATUS{}), generators) + + return agentPoolNetworkProfile_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["ApplicationSecurityGroups"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAgentPoolNetworkProfile_STATUS(gens map[string]gopter.Gen) { + gens["AllowedHostPorts"] = gen.SliceOf(PortRange_STATUSGenerator()) + gens["NodePublicIPTags"] = gen.SliceOf(IPTag_STATUSGenerator()) +} + +func Test_AgentPoolUpgradeSettings_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings, AgentPoolUpgradeSettingsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings runs a test to see if a specific instance of AgentPoolUpgradeSettings round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings(subject AgentPoolUpgradeSettings) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettingsGenerator() +var agentPoolUpgradeSettingsGenerator gopter.Gen + +// AgentPoolUpgradeSettingsGenerator returns a generator of AgentPoolUpgradeSettings instances for property testing. +func AgentPoolUpgradeSettingsGenerator() gopter.Gen { + if agentPoolUpgradeSettingsGenerator != nil { + return agentPoolUpgradeSettingsGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings(generators) + agentPoolUpgradeSettingsGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings{}), generators) + + return agentPoolUpgradeSettingsGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_AgentPoolUpgradeSettings_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AgentPoolUpgradeSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS, AgentPoolUpgradeSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS runs a test to see if a specific instance of AgentPoolUpgradeSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAgentPoolUpgradeSettings_STATUS(subject AgentPoolUpgradeSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AgentPoolUpgradeSettings_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of AgentPoolUpgradeSettings_STATUS instances for property testing - lazily instantiated by +// AgentPoolUpgradeSettings_STATUSGenerator() +var agentPoolUpgradeSettings_STATUSGenerator gopter.Gen + +// AgentPoolUpgradeSettings_STATUSGenerator returns a generator of AgentPoolUpgradeSettings_STATUS instances for property testing. +func AgentPoolUpgradeSettings_STATUSGenerator() gopter.Gen { + if agentPoolUpgradeSettings_STATUSGenerator != nil { + return agentPoolUpgradeSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS(generators) + agentPoolUpgradeSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(AgentPoolUpgradeSettings_STATUS{}), generators) + + return agentPoolUpgradeSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAgentPoolUpgradeSettings_STATUS(gens map[string]gopter.Gen) { + gens["DrainTimeoutInMinutes"] = gen.PtrOf(gen.Int()) + gens["MaxSurge"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CreationData_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData, CreationDataGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData runs a test to see if a specific instance of CreationData round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData(subject CreationData) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData instances for property testing - lazily instantiated by CreationDataGenerator() +var creationDataGenerator gopter.Gen + +// CreationDataGenerator returns a generator of CreationData instances for property testing. +func CreationDataGenerator() gopter.Gen { + if creationDataGenerator != nil { + return creationDataGenerator + } + + generators := make(map[string]gopter.Gen) + creationDataGenerator = gen.Struct(reflect.TypeOf(CreationData{}), generators) + + return creationDataGenerator +} + +func Test_CreationData_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CreationData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCreationData_STATUS, CreationData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCreationData_STATUS runs a test to see if a specific instance of CreationData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCreationData_STATUS(subject CreationData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CreationData_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of CreationData_STATUS instances for property testing - lazily instantiated by +// CreationData_STATUSGenerator() +var creationData_STATUSGenerator gopter.Gen + +// CreationData_STATUSGenerator returns a generator of CreationData_STATUS instances for property testing. +func CreationData_STATUSGenerator() gopter.Gen { + if creationData_STATUSGenerator != nil { + return creationData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCreationData_STATUS(generators) + creationData_STATUSGenerator = gen.Struct(reflect.TypeOf(CreationData_STATUS{}), generators) + + return creationData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCreationData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCreationData_STATUS(gens map[string]gopter.Gen) { + gens["SourceResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig, KubeletConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig runs a test to see if a specific instance of KubeletConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig(subject KubeletConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig instances for property testing - lazily instantiated by KubeletConfigGenerator() +var kubeletConfigGenerator gopter.Gen + +// KubeletConfigGenerator returns a generator of KubeletConfig instances for property testing. +func KubeletConfigGenerator() gopter.Gen { + if kubeletConfigGenerator != nil { + return kubeletConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig(generators) + kubeletConfigGenerator = gen.Struct(reflect.TypeOf(KubeletConfig{}), generators) + + return kubeletConfigGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_KubeletConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of KubeletConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForKubeletConfig_STATUS, KubeletConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForKubeletConfig_STATUS runs a test to see if a specific instance of KubeletConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForKubeletConfig_STATUS(subject KubeletConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual KubeletConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of KubeletConfig_STATUS instances for property testing - lazily instantiated by +// KubeletConfig_STATUSGenerator() +var kubeletConfig_STATUSGenerator gopter.Gen + +// KubeletConfig_STATUSGenerator returns a generator of KubeletConfig_STATUS instances for property testing. +func KubeletConfig_STATUSGenerator() gopter.Gen { + if kubeletConfig_STATUSGenerator != nil { + return kubeletConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForKubeletConfig_STATUS(generators) + kubeletConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(KubeletConfig_STATUS{}), generators) + + return kubeletConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForKubeletConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForKubeletConfig_STATUS(gens map[string]gopter.Gen) { + gens["AllowedUnsafeSysctls"] = gen.SliceOf(gen.AlphaString()) + gens["ContainerLogMaxFiles"] = gen.PtrOf(gen.Int()) + gens["ContainerLogMaxSizeMB"] = gen.PtrOf(gen.Int()) + gens["CpuCfsQuota"] = gen.PtrOf(gen.Bool()) + gens["CpuCfsQuotaPeriod"] = gen.PtrOf(gen.AlphaString()) + gens["CpuManagerPolicy"] = gen.PtrOf(gen.AlphaString()) + gens["FailSwapOn"] = gen.PtrOf(gen.Bool()) + gens["ImageGcHighThreshold"] = gen.PtrOf(gen.Int()) + gens["ImageGcLowThreshold"] = gen.PtrOf(gen.Int()) + gens["PodMaxPids"] = gen.PtrOf(gen.Int()) + gens["TopologyManagerPolicy"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_LinuxOSConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig, LinuxOSConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig runs a test to see if a specific instance of LinuxOSConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig(subject LinuxOSConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig instances for property testing - lazily instantiated by LinuxOSConfigGenerator() +var linuxOSConfigGenerator gopter.Gen + +// LinuxOSConfigGenerator returns a generator of LinuxOSConfig instances for property testing. +// We first initialize linuxOSConfigGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfigGenerator() gopter.Gen { + if linuxOSConfigGenerator != nil { + return linuxOSConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig(generators) + linuxOSConfigGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig(generators) + linuxOSConfigGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig{}), generators) + + return linuxOSConfigGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfigGenerator()) +} + +func Test_LinuxOSConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of LinuxOSConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForLinuxOSConfig_STATUS, LinuxOSConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForLinuxOSConfig_STATUS runs a test to see if a specific instance of LinuxOSConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForLinuxOSConfig_STATUS(subject LinuxOSConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual LinuxOSConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of LinuxOSConfig_STATUS instances for property testing - lazily instantiated by +// LinuxOSConfig_STATUSGenerator() +var linuxOSConfig_STATUSGenerator gopter.Gen + +// LinuxOSConfig_STATUSGenerator returns a generator of LinuxOSConfig_STATUS instances for property testing. +// We first initialize linuxOSConfig_STATUSGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func LinuxOSConfig_STATUSGenerator() gopter.Gen { + if linuxOSConfig_STATUSGenerator != nil { + return linuxOSConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + linuxOSConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS(generators) + linuxOSConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(LinuxOSConfig_STATUS{}), generators) + + return linuxOSConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForLinuxOSConfig_STATUS(gens map[string]gopter.Gen) { + gens["SwapFileSizeMB"] = gen.PtrOf(gen.Int()) + gens["TransparentHugePageDefrag"] = gen.PtrOf(gen.AlphaString()) + gens["TransparentHugePageEnabled"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForLinuxOSConfig_STATUS(gens map[string]gopter.Gen) { + gens["Sysctls"] = gen.PtrOf(SysctlConfig_STATUSGenerator()) +} + +func Test_PowerState_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PowerState via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPowerState, PowerStateGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPowerState runs a test to see if a specific instance of PowerState round trips to JSON and back losslessly +func RunJSONSerializationTestForPowerState(subject PowerState) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PowerState + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PowerState instances for property testing - lazily instantiated by PowerStateGenerator() +var powerStateGenerator gopter.Gen + +// PowerStateGenerator returns a generator of PowerState instances for property testing. +func PowerStateGenerator() gopter.Gen { + if powerStateGenerator != nil { + return powerStateGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPowerState(generators) + powerStateGenerator = gen.Struct(reflect.TypeOf(PowerState{}), generators) + + return powerStateGenerator +} + +// AddIndependentPropertyGeneratorsForPowerState is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPowerState(gens map[string]gopter.Gen) { + gens["Code"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IPTag_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag, IPTagGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag runs a test to see if a specific instance of IPTag round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag(subject IPTag) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag instances for property testing - lazily instantiated by IPTagGenerator() +var ipTagGenerator gopter.Gen + +// IPTagGenerator returns a generator of IPTag instances for property testing. +func IPTagGenerator() gopter.Gen { + if ipTagGenerator != nil { + return ipTagGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag(generators) + ipTagGenerator = gen.Struct(reflect.TypeOf(IPTag{}), generators) + + return ipTagGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_IPTag_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of IPTag_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIPTag_STATUS, IPTag_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIPTag_STATUS runs a test to see if a specific instance of IPTag_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIPTag_STATUS(subject IPTag_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IPTag_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of IPTag_STATUS instances for property testing - lazily instantiated by IPTag_STATUSGenerator() +var ipTag_STATUSGenerator gopter.Gen + +// IPTag_STATUSGenerator returns a generator of IPTag_STATUS instances for property testing. +func IPTag_STATUSGenerator() gopter.Gen { + if ipTag_STATUSGenerator != nil { + return ipTag_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIPTag_STATUS(generators) + ipTag_STATUSGenerator = gen.Struct(reflect.TypeOf(IPTag_STATUS{}), generators) + + return ipTag_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIPTag_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIPTag_STATUS(gens map[string]gopter.Gen) { + gens["IpTagType"] = gen.PtrOf(gen.AlphaString()) + gens["Tag"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PortRange_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange, PortRangeGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange runs a test to see if a specific instance of PortRange round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange(subject PortRange) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange instances for property testing - lazily instantiated by PortRangeGenerator() +var portRangeGenerator gopter.Gen + +// PortRangeGenerator returns a generator of PortRange instances for property testing. +func PortRangeGenerator() gopter.Gen { + if portRangeGenerator != nil { + return portRangeGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange(generators) + portRangeGenerator = gen.Struct(reflect.TypeOf(PortRange{}), generators) + + return portRangeGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PortRange_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of PortRange_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPortRange_STATUS, PortRange_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPortRange_STATUS runs a test to see if a specific instance of PortRange_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPortRange_STATUS(subject PortRange_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PortRange_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of PortRange_STATUS instances for property testing - lazily instantiated by PortRange_STATUSGenerator() +var portRange_STATUSGenerator gopter.Gen + +// PortRange_STATUSGenerator returns a generator of PortRange_STATUS instances for property testing. +func PortRange_STATUSGenerator() gopter.Gen { + if portRange_STATUSGenerator != nil { + return portRange_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPortRange_STATUS(generators) + portRange_STATUSGenerator = gen.Struct(reflect.TypeOf(PortRange_STATUS{}), generators) + + return portRange_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPortRange_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPortRange_STATUS(gens map[string]gopter.Gen) { + gens["PortEnd"] = gen.PtrOf(gen.Int()) + gens["PortStart"] = gen.PtrOf(gen.Int()) + gens["Protocol"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_SysctlConfig_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig, SysctlConfigGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig runs a test to see if a specific instance of SysctlConfig round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig(subject SysctlConfig) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig instances for property testing - lazily instantiated by SysctlConfigGenerator() +var sysctlConfigGenerator gopter.Gen + +// SysctlConfigGenerator returns a generator of SysctlConfig instances for property testing. +func SysctlConfigGenerator() gopter.Gen { + if sysctlConfigGenerator != nil { + return sysctlConfigGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig(generators) + sysctlConfigGenerator = gen.Struct(reflect.TypeOf(SysctlConfig{}), generators) + + return sysctlConfigGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} + +func Test_SysctlConfig_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of SysctlConfig_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSysctlConfig_STATUS, SysctlConfig_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSysctlConfig_STATUS runs a test to see if a specific instance of SysctlConfig_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSysctlConfig_STATUS(subject SysctlConfig_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SysctlConfig_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of SysctlConfig_STATUS instances for property testing - lazily instantiated by +// SysctlConfig_STATUSGenerator() +var sysctlConfig_STATUSGenerator gopter.Gen + +// SysctlConfig_STATUSGenerator returns a generator of SysctlConfig_STATUS instances for property testing. +func SysctlConfig_STATUSGenerator() gopter.Gen { + if sysctlConfig_STATUSGenerator != nil { + return sysctlConfig_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSysctlConfig_STATUS(generators) + sysctlConfig_STATUSGenerator = gen.Struct(reflect.TypeOf(SysctlConfig_STATUS{}), generators) + + return sysctlConfig_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSysctlConfig_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSysctlConfig_STATUS(gens map[string]gopter.Gen) { + gens["FsAioMaxNr"] = gen.PtrOf(gen.Int()) + gens["FsFileMax"] = gen.PtrOf(gen.Int()) + gens["FsInotifyMaxUserWatches"] = gen.PtrOf(gen.Int()) + gens["FsNrOpen"] = gen.PtrOf(gen.Int()) + gens["KernelThreadsMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreNetdevMaxBacklog"] = gen.PtrOf(gen.Int()) + gens["NetCoreOptmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreRmemMax"] = gen.PtrOf(gen.Int()) + gens["NetCoreSomaxconn"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemDefault"] = gen.PtrOf(gen.Int()) + gens["NetCoreWmemMax"] = gen.PtrOf(gen.Int()) + gens["NetIpv4IpLocalPortRange"] = gen.PtrOf(gen.AlphaString()) + gens["NetIpv4NeighDefaultGcThresh1"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh2"] = gen.PtrOf(gen.Int()) + gens["NetIpv4NeighDefaultGcThresh3"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpFinTimeout"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveProbes"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpKeepaliveTime"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxSynBacklog"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpMaxTwBuckets"] = gen.PtrOf(gen.Int()) + gens["NetIpv4TcpTwReuse"] = gen.PtrOf(gen.Bool()) + gens["NetIpv4TcpkeepaliveIntvl"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackBuckets"] = gen.PtrOf(gen.Int()) + gens["NetNetfilterNfConntrackMax"] = gen.PtrOf(gen.Int()) + gens["VmMaxMapCount"] = gen.PtrOf(gen.Int()) + gens["VmSwappiness"] = gen.PtrOf(gen.Int()) + gens["VmVfsCachePressure"] = gen.PtrOf(gen.Int()) +} diff --git a/v2/api/containerservice/v1api20231001/storage/structure.txt b/v2/api/containerservice/v1api20231001/storage/structure.txt new file mode 100644 index 00000000000..189c163db7d --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/structure.txt @@ -0,0 +1,1045 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage +├── APIVersion: Enum (1 value) +│ └── "2023-10-01" +├── ManagedCluster: Resource +│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/resources/v1apiv20191001.ResourceGroup +│ ├── Spec: Object (41 properties) +│ │ ├── AadProfile: *Object (8 properties) +│ │ │ ├── AdminGroupObjectIDs: string[] +│ │ │ ├── ClientAppID: *string +│ │ │ ├── EnableAzureRBAC: *bool +│ │ │ ├── Managed: *bool +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ServerAppID: *string +│ │ │ ├── ServerAppSecret: *string +│ │ │ └── TenantID: *string +│ │ ├── AddonProfiles: map[string]Object (3 properties) +│ │ │ ├── Config: map[string]string +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── AgentPoolProfiles: Object (42 properties)[] +│ │ │ ├── AvailabilityZones: string[] +│ │ │ ├── CapacityReservationGroupReference: *genruntime.ResourceReference +│ │ │ ├── Count: *int +│ │ │ ├── CreationData: *Object (2 properties) +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── SourceResourceReference: *genruntime.ResourceReference +│ │ │ ├── EnableAutoScaling: *bool +│ │ │ ├── EnableEncryptionAtHost: *bool +│ │ │ ├── EnableFIPS: *bool +│ │ │ ├── EnableNodePublicIP: *bool +│ │ │ ├── EnableUltraSSD: *bool +│ │ │ ├── GpuInstanceProfile: *string +│ │ │ ├── HostGroupReference: *genruntime.ResourceReference +│ │ │ ├── KubeletConfig: *Object (12 properties) +│ │ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ │ ├── CpuCfsQuota: *bool +│ │ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ │ ├── CpuManagerPolicy: *string +│ │ │ │ ├── FailSwapOn: *bool +│ │ │ │ ├── ImageGcHighThreshold: *int +│ │ │ │ ├── ImageGcLowThreshold: *int +│ │ │ │ ├── PodMaxPids: *int +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── TopologyManagerPolicy: *string +│ │ │ ├── KubeletDiskType: *string +│ │ │ ├── LinuxOSConfig: *Object (5 properties) +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── SwapFileSizeMB: *int +│ │ │ │ ├── Sysctls: *Object (29 properties) +│ │ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ │ ├── FsFileMax: *int +│ │ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ │ ├── FsNrOpen: *int +│ │ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ │ ├── VmSwappiness: *int +│ │ │ │ │ └── VmVfsCachePressure: *int +│ │ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ │ └── TransparentHugePageEnabled: *string +│ │ │ ├── MaxCount: *int +│ │ │ ├── MaxPods: *int +│ │ │ ├── MinCount: *int +│ │ │ ├── Mode: *string +│ │ │ ├── Name: *string +│ │ │ ├── NetworkProfile: *Object (4 properties) +│ │ │ │ ├── AllowedHostPorts: Object (4 properties)[] +│ │ │ │ │ ├── PortEnd: *int +│ │ │ │ │ ├── PortStart: *int +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Protocol: *string +│ │ │ │ ├── ApplicationSecurityGroupsReferences: genruntime.ResourceReference[] +│ │ │ │ ├── NodePublicIPTags: Object (3 properties)[] +│ │ │ │ │ ├── IpTagType: *string +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Tag: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── NodeLabels: map[string]string +│ │ │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference +│ │ │ ├── NodeTaints: string[] +│ │ │ ├── OrchestratorVersion: *string +│ │ │ ├── OsDiskSizeGB: *int +│ │ │ ├── OsDiskType: *string +│ │ │ ├── OsSKU: *string +│ │ │ ├── OsType: *string +│ │ │ ├── PodSubnetReference: *genruntime.ResourceReference +│ │ │ ├── PowerState: *Object (2 properties) +│ │ │ │ ├── Code: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference +│ │ │ ├── ScaleDownMode: *string +│ │ │ ├── ScaleSetEvictionPolicy: *string +│ │ │ ├── ScaleSetPriority: *string +│ │ │ ├── SpotMaxPrice: *float64 +│ │ │ ├── Tags: map[string]string +│ │ │ ├── Type: *string +│ │ │ ├── UpgradeSettings: *Object (3 properties) +│ │ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ │ ├── MaxSurge: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── VmSize: *string +│ │ │ ├── VnetSubnetReference: *genruntime.ResourceReference +│ │ │ └── WorkloadRuntime: *string +│ │ ├── ApiServerAccessProfile: *Object (6 properties) +│ │ │ ├── AuthorizedIPRanges: string[] +│ │ │ ├── DisableRunCommand: *bool +│ │ │ ├── EnablePrivateCluster: *bool +│ │ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ │ ├── PrivateDNSZone: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── AutoScalerProfile: *Object (18 properties) +│ │ │ ├── BalanceSimilarNodeGroups: *string +│ │ │ ├── Expander: *string +│ │ │ ├── MaxEmptyBulkDelete: *string +│ │ │ ├── MaxGracefulTerminationSec: *string +│ │ │ ├── MaxNodeProvisionTime: *string +│ │ │ ├── MaxTotalUnreadyPercentage: *string +│ │ │ ├── NewPodScaleUpDelay: *string +│ │ │ ├── OkTotalUnreadyCount: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ScaleDownDelayAfterAdd: *string +│ │ │ ├── ScaleDownDelayAfterDelete: *string +│ │ │ ├── ScaleDownDelayAfterFailure: *string +│ │ │ ├── ScaleDownUnneededTime: *string +│ │ │ ├── ScaleDownUnreadyTime: *string +│ │ │ ├── ScaleDownUtilizationThreshold: *string +│ │ │ ├── ScanInterval: *string +│ │ │ ├── SkipNodesWithLocalStorage: *string +│ │ │ └── SkipNodesWithSystemPods: *string +│ │ ├── AutoUpgradeProfile: *Object (3 properties) +│ │ │ ├── NodeOSUpgradeChannel: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── UpgradeChannel: *string +│ │ ├── AzureMonitorProfile: *Object (2 properties) +│ │ │ ├── Metrics: *Object (3 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── KubeStateMetrics: *Object (3 properties) +│ │ │ │ │ ├── MetricAnnotationsAllowList: *string +│ │ │ │ │ ├── MetricLabelsAllowlist: *string +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── AzureName: string +│ │ ├── DisableLocalAccounts: *bool +│ │ ├── DiskEncryptionSetReference: *genruntime.ResourceReference +│ │ ├── DnsPrefix: *string +│ │ ├── EnablePodSecurityPolicy: *bool +│ │ ├── EnableRBAC: *bool +│ │ ├── ExtendedLocation: *Object (3 properties) +│ │ │ ├── Name: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Type: *string +│ │ ├── FqdnSubdomain: *string +│ │ ├── HttpProxyConfig: *Object (5 properties) +│ │ │ ├── HttpProxy: *string +│ │ │ ├── HttpsProxy: *string +│ │ │ ├── NoProxy: string[] +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── TrustedCa: *string +│ │ ├── Identity: *Object (4 properties) +│ │ │ ├── DelegatedResources: map[string]Object (5 properties) +│ │ │ │ ├── Location: *string +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── ReferralResource: *string +│ │ │ │ ├── ResourceReference: *genruntime.ResourceReference +│ │ │ │ └── TenantId: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── Type: *string +│ │ │ └── UserAssignedIdentities: Object (2 properties)[] +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Reference: genruntime.ResourceReference +│ │ ├── IdentityProfile: map[string]Object (4 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── ResourceReference: *genruntime.ResourceReference +│ │ ├── KubernetesVersion: *string +│ │ ├── LinuxProfile: *Object (3 properties) +│ │ │ ├── AdminUsername: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Ssh: *Object (2 properties) +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── PublicKeys: Object (2 properties)[] +│ │ │ ├── KeyData: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── Location: *string +│ │ ├── NetworkProfile: *Object (16 properties) +│ │ │ ├── DnsServiceIP: *string +│ │ │ ├── IpFamilies: string[] +│ │ │ ├── LoadBalancerProfile: *Object (9 properties) +│ │ │ │ ├── AllocatedOutboundPorts: *int +│ │ │ │ ├── BackendPoolType: *string +│ │ │ │ ├── EffectiveOutboundIPs: Object (2 properties)[] +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ ├── ManagedOutboundIPs: *Object (3 properties) +│ │ │ │ │ ├── Count: *int +│ │ │ │ │ ├── CountIPv6: *int +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── OutboundIPPrefixes: *Object (2 properties) +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── PublicIPPrefixes: Object (2 properties)[] +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ ├── OutboundIPs: *Object (2 properties) +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── PublicIPs: Object (2 properties)[] +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── LoadBalancerSku: *string +│ │ │ ├── NatGatewayProfile: *Object (4 properties) +│ │ │ │ ├── EffectiveOutboundIPs: Object (2 properties)[] +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ ├── ManagedOutboundIPProfile: *Object (2 properties) +│ │ │ │ │ ├── Count: *int +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── NetworkDataplane: *string +│ │ │ ├── NetworkMode: *string +│ │ │ ├── NetworkPlugin: *string +│ │ │ ├── NetworkPluginMode: *string +│ │ │ ├── NetworkPolicy: *string +│ │ │ ├── OutboundType: *string +│ │ │ ├── PodCidr: *string +│ │ │ ├── PodCidrs: string[] +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ServiceCidr: *string +│ │ │ └── ServiceCidrs: string[] +│ │ ├── NodeResourceGroup: *string +│ │ ├── OidcIssuerProfile: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── OperatorSpec: *Object (3 properties) +│ │ │ ├── ConfigMaps: *Object (2 properties) +│ │ │ │ ├── OIDCIssuerProfile: *genruntime.ConfigMapDestination +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Secrets: *Object (3 properties) +│ │ │ ├── AdminCredentials: *genruntime.SecretDestination +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── UserCredentials: *genruntime.SecretDestination +│ │ ├── OriginalVersion: string +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── PodIdentityProfile: *Object (5 properties) +│ │ │ ├── AllowNetworkPluginKubenet: *bool +│ │ │ ├── Enabled: *bool +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── UserAssignedIdentities: Object (5 properties)[] +│ │ │ │ ├── BindingSelector: *string +│ │ │ │ ├── Identity: *Object (4 properties) +│ │ │ │ │ ├── ClientId: *string +│ │ │ │ │ ├── ObjectId: *string +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── ResourceReference: *genruntime.ResourceReference +│ │ │ │ ├── Name: *string +│ │ │ │ ├── Namespace: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── UserAssignedIdentityExceptions: Object (4 properties)[] +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ ├── PodLabels: map[string]string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PrivateLinkResources: Object (6 properties)[] +│ │ │ ├── GroupId: *string +│ │ │ ├── Name: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── Reference: *genruntime.ResourceReference +│ │ │ ├── RequiredMembers: string[] +│ │ │ └── Type: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── PublicNetworkAccess: *string +│ │ ├── SecurityProfile: *Object (5 properties) +│ │ │ ├── AzureKeyVaultKms: *Object (5 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── KeyId: *string +│ │ │ │ ├── KeyVaultNetworkAccess: *string +│ │ │ │ ├── KeyVaultResourceReference: *genruntime.ResourceReference +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── Defender: *Object (3 properties) +│ │ │ │ ├── LogAnalyticsWorkspaceResourceReference: *genruntime.ResourceReference +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── SecurityMonitoring: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ImageCleaner: *Object (3 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── IntervalHours: *int +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── WorkloadIdentity: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── ServiceMeshProfile: *Object (3 properties) +│ │ │ ├── Istio: *Object (4 properties) +│ │ │ │ ├── CertificateAuthority: *Object (2 properties) +│ │ │ │ │ ├── Plugin: *Object (6 properties) +│ │ │ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ │ │ ├── CertObjectName: *string +│ │ │ │ │ │ ├── KeyObjectName: *string +│ │ │ │ │ │ ├── KeyVaultReference: *genruntime.ResourceReference +│ │ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ │ └── RootCertObjectName: *string +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── Components: *Object (3 properties) +│ │ │ │ │ ├── EgressGateways: Object (3 properties)[] +│ │ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ │ ├── NodeSelector: map[string]string +│ │ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ ├── IngressGateways: Object (3 properties)[] +│ │ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ │ ├── Mode: *string +│ │ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── Revisions: string[] +│ │ │ ├── Mode: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── ServicePrincipalProfile: *Object (3 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Secret: *genruntime.SecretReference +│ │ ├── Sku: *Object (3 properties) +│ │ │ ├── Name: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Tier: *string +│ │ ├── StorageProfile: *Object (5 properties) +│ │ │ ├── BlobCSIDriver: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── DiskCSIDriver: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── FileCSIDriver: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── SnapshotController: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── SupportPlan: *string +│ │ ├── Tags: map[string]string +│ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ ├── OverrideSettings: *Object (3 properties) +│ │ │ │ ├── ForceUpgrade: *bool +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── Until: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── WindowsProfile: *Object (6 properties) +│ │ │ ├── AdminPassword: *string +│ │ │ ├── AdminUsername: *string +│ │ │ ├── EnableCSIProxy: *bool +│ │ │ ├── GmsaProfile: *Object (4 properties) +│ │ │ │ ├── DnsServer: *string +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── RootDomainName: *string +│ │ │ ├── LicenseType: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ └── WorkloadAutoScalerProfile: *Object (3 properties) +│ │ ├── Keda: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── VerticalPodAutoscaler: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── PropertyBag: genruntime.PropertyBag +│ └── Status: Object (50 properties) +│ ├── AadProfile: *Object (8 properties) +│ │ ├── AdminGroupObjectIDs: string[] +│ │ ├── ClientAppID: *string +│ │ ├── EnableAzureRBAC: *bool +│ │ ├── Managed: *bool +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── ServerAppID: *string +│ │ ├── ServerAppSecret: *string +│ │ └── TenantID: *string +│ ├── AddonProfiles: map[string]Object (4 properties) +│ │ ├── Config: map[string]string +│ │ ├── Enabled: *bool +│ │ ├── Identity: *Object (4 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── ResourceId: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── AgentPoolProfiles: Object (45 properties)[] +│ │ ├── AvailabilityZones: string[] +│ │ ├── CapacityReservationGroupID: *string +│ │ ├── Count: *int +│ │ ├── CreationData: *Object (2 properties) +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── SourceResourceId: *string +│ │ ├── CurrentOrchestratorVersion: *string +│ │ ├── EnableAutoScaling: *bool +│ │ ├── EnableEncryptionAtHost: *bool +│ │ ├── EnableFIPS: *bool +│ │ ├── EnableNodePublicIP: *bool +│ │ ├── EnableUltraSSD: *bool +│ │ ├── GpuInstanceProfile: *string +│ │ ├── HostGroupID: *string +│ │ ├── KubeletConfig: *Object (12 properties) +│ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ ├── CpuCfsQuota: *bool +│ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ ├── CpuManagerPolicy: *string +│ │ │ ├── FailSwapOn: *bool +│ │ │ ├── ImageGcHighThreshold: *int +│ │ │ ├── ImageGcLowThreshold: *int +│ │ │ ├── PodMaxPids: *int +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── TopologyManagerPolicy: *string +│ │ ├── KubeletDiskType: *string +│ │ ├── LinuxOSConfig: *Object (5 properties) +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── SwapFileSizeMB: *int +│ │ │ ├── Sysctls: *Object (29 properties) +│ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ ├── FsFileMax: *int +│ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ ├── FsNrOpen: *int +│ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ ├── VmSwappiness: *int +│ │ │ │ └── VmVfsCachePressure: *int +│ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ └── TransparentHugePageEnabled: *string +│ │ ├── MaxCount: *int +│ │ ├── MaxPods: *int +│ │ ├── MinCount: *int +│ │ ├── Mode: *string +│ │ ├── Name: *string +│ │ ├── NetworkProfile: *Object (4 properties) +│ │ │ ├── AllowedHostPorts: Object (4 properties)[] +│ │ │ │ ├── PortEnd: *int +│ │ │ │ ├── PortStart: *int +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── Protocol: *string +│ │ │ ├── ApplicationSecurityGroups: string[] +│ │ │ ├── NodePublicIPTags: Object (3 properties)[] +│ │ │ │ ├── IpTagType: *string +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── Tag: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── NodeImageVersion: *string +│ │ ├── NodeLabels: map[string]string +│ │ ├── NodePublicIPPrefixID: *string +│ │ ├── NodeTaints: string[] +│ │ ├── OrchestratorVersion: *string +│ │ ├── OsDiskSizeGB: *int +│ │ ├── OsDiskType: *string +│ │ ├── OsSKU: *string +│ │ ├── OsType: *string +│ │ ├── PodSubnetID: *string +│ │ ├── PowerState: *Object (2 properties) +│ │ │ ├── Code: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── ProvisioningState: *string +│ │ ├── ProximityPlacementGroupID: *string +│ │ ├── ScaleDownMode: *string +│ │ ├── ScaleSetEvictionPolicy: *string +│ │ ├── ScaleSetPriority: *string +│ │ ├── SpotMaxPrice: *float64 +│ │ ├── Tags: map[string]string +│ │ ├── Type: *string +│ │ ├── UpgradeSettings: *Object (3 properties) +│ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ ├── MaxSurge: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── VmSize: *string +│ │ ├── VnetSubnetID: *string +│ │ └── WorkloadRuntime: *string +│ ├── ApiServerAccessProfile: *Object (6 properties) +│ │ ├── AuthorizedIPRanges: string[] +│ │ ├── DisableRunCommand: *bool +│ │ ├── EnablePrivateCluster: *bool +│ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ ├── PrivateDNSZone: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── AutoScalerProfile: *Object (18 properties) +│ │ ├── BalanceSimilarNodeGroups: *string +│ │ ├── Expander: *string +│ │ ├── MaxEmptyBulkDelete: *string +│ │ ├── MaxGracefulTerminationSec: *string +│ │ ├── MaxNodeProvisionTime: *string +│ │ ├── MaxTotalUnreadyPercentage: *string +│ │ ├── NewPodScaleUpDelay: *string +│ │ ├── OkTotalUnreadyCount: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── ScaleDownDelayAfterAdd: *string +│ │ ├── ScaleDownDelayAfterDelete: *string +│ │ ├── ScaleDownDelayAfterFailure: *string +│ │ ├── ScaleDownUnneededTime: *string +│ │ ├── ScaleDownUnreadyTime: *string +│ │ ├── ScaleDownUtilizationThreshold: *string +│ │ ├── ScanInterval: *string +│ │ ├── SkipNodesWithLocalStorage: *string +│ │ └── SkipNodesWithSystemPods: *string +│ ├── AutoUpgradeProfile: *Object (3 properties) +│ │ ├── NodeOSUpgradeChannel: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── UpgradeChannel: *string +│ ├── AzureMonitorProfile: *Object (2 properties) +│ │ ├── Metrics: *Object (3 properties) +│ │ │ ├── Enabled: *bool +│ │ │ ├── KubeStateMetrics: *Object (3 properties) +│ │ │ │ ├── MetricAnnotationsAllowList: *string +│ │ │ │ ├── MetricLabelsAllowlist: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── AzurePortalFQDN: *string +│ ├── Conditions: conditions.Condition[] +│ ├── CurrentKubernetesVersion: *string +│ ├── DisableLocalAccounts: *bool +│ ├── DiskEncryptionSetID: *string +│ ├── DnsPrefix: *string +│ ├── EnablePodSecurityPolicy: *bool +│ ├── EnableRBAC: *bool +│ ├── ExtendedLocation: *Object (3 properties) +│ │ ├── Name: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── Type: *string +│ ├── Fqdn: *string +│ ├── FqdnSubdomain: *string +│ ├── HttpProxyConfig: *Object (5 properties) +│ │ ├── HttpProxy: *string +│ │ ├── HttpsProxy: *string +│ │ ├── NoProxy: string[] +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── TrustedCa: *string +│ ├── Id: *string +│ ├── Identity: *Object (6 properties) +│ │ ├── DelegatedResources: map[string]Object (5 properties) +│ │ │ ├── Location: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ReferralResource: *string +│ │ │ ├── ResourceId: *string +│ │ │ └── TenantId: *string +│ │ ├── PrincipalId: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── TenantId: *string +│ │ ├── Type: *string +│ │ └── UserAssignedIdentities: map[string]Object (3 properties) +│ │ ├── ClientId: *string +│ │ ├── PrincipalId: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── IdentityProfile: map[string]Object (4 properties) +│ │ ├── ClientId: *string +│ │ ├── ObjectId: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── ResourceId: *string +│ ├── KubernetesVersion: *string +│ ├── LinuxProfile: *Object (3 properties) +│ │ ├── AdminUsername: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── Ssh: *Object (2 properties) +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── PublicKeys: Object (2 properties)[] +│ │ ├── KeyData: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── Location: *string +│ ├── MaxAgentPools: *int +│ ├── Name: *string +│ ├── NetworkProfile: *Object (16 properties) +│ │ ├── DnsServiceIP: *string +│ │ ├── IpFamilies: string[] +│ │ ├── LoadBalancerProfile: *Object (9 properties) +│ │ │ ├── AllocatedOutboundPorts: *int +│ │ │ ├── BackendPoolType: *string +│ │ │ ├── EffectiveOutboundIPs: Object (2 properties)[] +│ │ │ │ ├── Id: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ ├── ManagedOutboundIPs: *Object (3 properties) +│ │ │ │ ├── Count: *int +│ │ │ │ ├── CountIPv6: *int +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── OutboundIPPrefixes: *Object (2 properties) +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PublicIPPrefixes: Object (2 properties)[] +│ │ │ │ ├── Id: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── OutboundIPs: *Object (2 properties) +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PublicIPs: Object (2 properties)[] +│ │ │ │ ├── Id: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── LoadBalancerSku: *string +│ │ ├── NatGatewayProfile: *Object (4 properties) +│ │ │ ├── EffectiveOutboundIPs: Object (2 properties)[] +│ │ │ │ ├── Id: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ ├── ManagedOutboundIPProfile: *Object (2 properties) +│ │ │ │ ├── Count: *int +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── NetworkDataplane: *string +│ │ ├── NetworkMode: *string +│ │ ├── NetworkPlugin: *string +│ │ ├── NetworkPluginMode: *string +│ │ ├── NetworkPolicy: *string +│ │ ├── OutboundType: *string +│ │ ├── PodCidr: *string +│ │ ├── PodCidrs: string[] +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── ServiceCidr: *string +│ │ └── ServiceCidrs: string[] +│ ├── NodeResourceGroup: *string +│ ├── OidcIssuerProfile: *Object (3 properties) +│ │ ├── Enabled: *bool +│ │ ├── IssuerURL: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PodIdentityProfile: *Object (5 properties) +│ │ ├── AllowNetworkPluginKubenet: *bool +│ │ ├── Enabled: *bool +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── UserAssignedIdentities: Object (7 properties)[] +│ │ │ ├── BindingSelector: *string +│ │ │ ├── Identity: *Object (4 properties) +│ │ │ │ ├── ClientId: *string +│ │ │ │ ├── ObjectId: *string +│ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── ResourceId: *string +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ ├── ProvisioningInfo: *Object (2 properties) +│ │ │ │ ├── Error: *Object (2 properties) +│ │ │ │ │ ├── Error: *Object (5 properties) +│ │ │ │ │ │ ├── Code: *string +│ │ │ │ │ │ ├── Details: Object (4 properties)[] +│ │ │ │ │ │ │ ├── Code: *string +│ │ │ │ │ │ │ ├── Message: *string +│ │ │ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ │ │ └── Target: *string +│ │ │ │ │ │ ├── Message: *string +│ │ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ │ └── Target: *string +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ └── ProvisioningState: *string +│ │ └── UserAssignedIdentityExceptions: Object (4 properties)[] +│ │ ├── Name: *string +│ │ ├── Namespace: *string +│ │ ├── PodLabels: map[string]string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PowerState: *Object (2 properties) +│ │ ├── Code: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PrivateFQDN: *string +│ ├── PrivateLinkResources: Object (7 properties)[] +│ │ ├── GroupId: *string +│ │ ├── Id: *string +│ │ ├── Name: *string +│ │ ├── PrivateLinkServiceID: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ ├── RequiredMembers: string[] +│ │ └── Type: *string +│ ├── PropertyBag: genruntime.PropertyBag +│ ├── ProvisioningState: *string +│ ├── PublicNetworkAccess: *string +│ ├── ResourceUID: *string +│ ├── SecurityProfile: *Object (5 properties) +│ │ ├── AzureKeyVaultKms: *Object (5 properties) +│ │ │ ├── Enabled: *bool +│ │ │ ├── KeyId: *string +│ │ │ ├── KeyVaultNetworkAccess: *string +│ │ │ ├── KeyVaultResourceId: *string +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── Defender: *Object (3 properties) +│ │ │ ├── LogAnalyticsWorkspaceResourceId: *string +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── SecurityMonitoring: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── ImageCleaner: *Object (3 properties) +│ │ │ ├── Enabled: *bool +│ │ │ ├── IntervalHours: *int +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── WorkloadIdentity: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── ServiceMeshProfile: *Object (3 properties) +│ │ ├── Istio: *Object (4 properties) +│ │ │ ├── CertificateAuthority: *Object (2 properties) +│ │ │ │ ├── Plugin: *Object (6 properties) +│ │ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ │ ├── CertObjectName: *string +│ │ │ │ │ ├── KeyObjectName: *string +│ │ │ │ │ ├── KeyVaultId: *string +│ │ │ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ │ │ └── RootCertObjectName: *string +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── Components: *Object (3 properties) +│ │ │ │ ├── EgressGateways: Object (3 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ ├── NodeSelector: map[string]string +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ ├── IngressGateways: Object (3 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ ├── Mode: *string +│ │ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Revisions: string[] +│ │ ├── Mode: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── ServicePrincipalProfile: *Object (2 properties) +│ │ ├── ClientId: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── Sku: *Object (3 properties) +│ │ ├── Name: *string +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── Tier: *string +│ ├── StorageProfile: *Object (5 properties) +│ │ ├── BlobCSIDriver: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── DiskCSIDriver: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── FileCSIDriver: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── PropertyBag: genruntime.PropertyBag +│ │ ├── PropertyBag: genruntime.PropertyBag +│ │ └── SnapshotController: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── SupportPlan: *string +│ ├── SystemData: *Object (7 properties) +│ │ ├── CreatedAt: *string +│ │ ├── CreatedBy: *string +│ │ ├── CreatedByType: *string +│ │ ├── LastModifiedAt: *string +│ │ ├── LastModifiedBy: *string +│ │ ├── LastModifiedByType: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── Tags: map[string]string +│ ├── Type: *string +│ ├── UpgradeSettings: *Object (2 properties) +│ │ ├── OverrideSettings: *Object (3 properties) +│ │ │ ├── ForceUpgrade: *bool +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── Until: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── WindowsProfile: *Object (6 properties) +│ │ ├── AdminPassword: *string +│ │ ├── AdminUsername: *string +│ │ ├── EnableCSIProxy: *bool +│ │ ├── GmsaProfile: *Object (4 properties) +│ │ │ ├── DnsServer: *string +│ │ │ ├── Enabled: *bool +│ │ │ ├── PropertyBag: genruntime.PropertyBag +│ │ │ └── RootDomainName: *string +│ │ ├── LicenseType: *string +│ │ └── PropertyBag: genruntime.PropertyBag +│ └── WorkloadAutoScalerProfile: *Object (3 properties) +│ ├── Keda: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── PropertyBag: genruntime.PropertyBag +│ ├── PropertyBag: genruntime.PropertyBag +│ └── VerticalPodAutoscaler: *Object (2 properties) +│ ├── Enabled: *bool +│ └── PropertyBag: genruntime.PropertyBag +└── ManagedClustersAgentPool: Resource + ├── Owner: github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001.ManagedCluster + ├── Spec: Object (44 properties) + │ ├── AvailabilityZones: string[] + │ ├── AzureName: string + │ ├── CapacityReservationGroupReference: *genruntime.ResourceReference + │ ├── Count: *int + │ ├── CreationData: *Object (2 properties) + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── SourceResourceReference: *genruntime.ResourceReference + │ ├── EnableAutoScaling: *bool + │ ├── EnableEncryptionAtHost: *bool + │ ├── EnableFIPS: *bool + │ ├── EnableNodePublicIP: *bool + │ ├── EnableUltraSSD: *bool + │ ├── GpuInstanceProfile: *string + │ ├── HostGroupReference: *genruntime.ResourceReference + │ ├── KubeletConfig: *Object (12 properties) + │ │ ├── AllowedUnsafeSysctls: string[] + │ │ ├── ContainerLogMaxFiles: *int + │ │ ├── ContainerLogMaxSizeMB: *int + │ │ ├── CpuCfsQuota: *bool + │ │ ├── CpuCfsQuotaPeriod: *string + │ │ ├── CpuManagerPolicy: *string + │ │ ├── FailSwapOn: *bool + │ │ ├── ImageGcHighThreshold: *int + │ │ ├── ImageGcLowThreshold: *int + │ │ ├── PodMaxPids: *int + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── TopologyManagerPolicy: *string + │ ├── KubeletDiskType: *string + │ ├── LinuxOSConfig: *Object (5 properties) + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── SwapFileSizeMB: *int + │ │ ├── Sysctls: *Object (29 properties) + │ │ │ ├── FsAioMaxNr: *int + │ │ │ ├── FsFileMax: *int + │ │ │ ├── FsInotifyMaxUserWatches: *int + │ │ │ ├── FsNrOpen: *int + │ │ │ ├── KernelThreadsMax: *int + │ │ │ ├── NetCoreNetdevMaxBacklog: *int + │ │ │ ├── NetCoreOptmemMax: *int + │ │ │ ├── NetCoreRmemDefault: *int + │ │ │ ├── NetCoreRmemMax: *int + │ │ │ ├── NetCoreSomaxconn: *int + │ │ │ ├── NetCoreWmemDefault: *int + │ │ │ ├── NetCoreWmemMax: *int + │ │ │ ├── NetIpv4IpLocalPortRange: *string + │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int + │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int + │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int + │ │ │ ├── NetIpv4TcpFinTimeout: *int + │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int + │ │ │ ├── NetIpv4TcpKeepaliveTime: *int + │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int + │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int + │ │ │ ├── NetIpv4TcpTwReuse: *bool + │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int + │ │ │ ├── NetNetfilterNfConntrackBuckets: *int + │ │ │ ├── NetNetfilterNfConntrackMax: *int + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ ├── VmMaxMapCount: *int + │ │ │ ├── VmSwappiness: *int + │ │ │ └── VmVfsCachePressure: *int + │ │ ├── TransparentHugePageDefrag: *string + │ │ └── TransparentHugePageEnabled: *string + │ ├── MaxCount: *int + │ ├── MaxPods: *int + │ ├── MinCount: *int + │ ├── Mode: *string + │ ├── NetworkProfile: *Object (4 properties) + │ │ ├── AllowedHostPorts: Object (4 properties)[] + │ │ │ ├── PortEnd: *int + │ │ │ ├── PortStart: *int + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ └── Protocol: *string + │ │ ├── ApplicationSecurityGroupsReferences: genruntime.ResourceReference[] + │ │ ├── NodePublicIPTags: Object (3 properties)[] + │ │ │ ├── IpTagType: *string + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ └── Tag: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── NodeLabels: map[string]string + │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference + │ ├── NodeTaints: string[] + │ ├── OrchestratorVersion: *string + │ ├── OriginalVersion: string + │ ├── OsDiskSizeGB: *int + │ ├── OsDiskType: *string + │ ├── OsSKU: *string + │ ├── OsType: *string + │ ├── Owner: *genruntime.KnownResourceReference + │ ├── PodSubnetReference: *genruntime.ResourceReference + │ ├── PowerState: *Object (2 properties) + │ │ ├── Code: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference + │ ├── ScaleDownMode: *string + │ ├── ScaleSetEvictionPolicy: *string + │ ├── ScaleSetPriority: *string + │ ├── SpotMaxPrice: *float64 + │ ├── Tags: map[string]string + │ ├── Type: *string + │ ├── UpgradeSettings: *Object (3 properties) + │ │ ├── DrainTimeoutInMinutes: *int + │ │ ├── MaxSurge: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── VmSize: *string + │ ├── VnetSubnetReference: *genruntime.ResourceReference + │ └── WorkloadRuntime: *string + └── Status: Object (48 properties) + ├── AvailabilityZones: string[] + ├── CapacityReservationGroupID: *string + ├── Conditions: conditions.Condition[] + ├── Count: *int + ├── CreationData: *Object (2 properties) + │ ├── PropertyBag: genruntime.PropertyBag + │ └── SourceResourceId: *string + ├── CurrentOrchestratorVersion: *string + ├── EnableAutoScaling: *bool + ├── EnableEncryptionAtHost: *bool + ├── EnableFIPS: *bool + ├── EnableNodePublicIP: *bool + ├── EnableUltraSSD: *bool + ├── GpuInstanceProfile: *string + ├── HostGroupID: *string + ├── Id: *string + ├── KubeletConfig: *Object (12 properties) + │ ├── AllowedUnsafeSysctls: string[] + │ ├── ContainerLogMaxFiles: *int + │ ├── ContainerLogMaxSizeMB: *int + │ ├── CpuCfsQuota: *bool + │ ├── CpuCfsQuotaPeriod: *string + │ ├── CpuManagerPolicy: *string + │ ├── FailSwapOn: *bool + │ ├── ImageGcHighThreshold: *int + │ ├── ImageGcLowThreshold: *int + │ ├── PodMaxPids: *int + │ ├── PropertyBag: genruntime.PropertyBag + │ └── TopologyManagerPolicy: *string + ├── KubeletDiskType: *string + ├── LinuxOSConfig: *Object (5 properties) + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── SwapFileSizeMB: *int + │ ├── Sysctls: *Object (29 properties) + │ │ ├── FsAioMaxNr: *int + │ │ ├── FsFileMax: *int + │ │ ├── FsInotifyMaxUserWatches: *int + │ │ ├── FsNrOpen: *int + │ │ ├── KernelThreadsMax: *int + │ │ ├── NetCoreNetdevMaxBacklog: *int + │ │ ├── NetCoreOptmemMax: *int + │ │ ├── NetCoreRmemDefault: *int + │ │ ├── NetCoreRmemMax: *int + │ │ ├── NetCoreSomaxconn: *int + │ │ ├── NetCoreWmemDefault: *int + │ │ ├── NetCoreWmemMax: *int + │ │ ├── NetIpv4IpLocalPortRange: *string + │ │ ├── NetIpv4NeighDefaultGcThresh1: *int + │ │ ├── NetIpv4NeighDefaultGcThresh2: *int + │ │ ├── NetIpv4NeighDefaultGcThresh3: *int + │ │ ├── NetIpv4TcpFinTimeout: *int + │ │ ├── NetIpv4TcpKeepaliveProbes: *int + │ │ ├── NetIpv4TcpKeepaliveTime: *int + │ │ ├── NetIpv4TcpMaxSynBacklog: *int + │ │ ├── NetIpv4TcpMaxTwBuckets: *int + │ │ ├── NetIpv4TcpTwReuse: *bool + │ │ ├── NetIpv4TcpkeepaliveIntvl: *int + │ │ ├── NetNetfilterNfConntrackBuckets: *int + │ │ ├── NetNetfilterNfConntrackMax: *int + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── VmMaxMapCount: *int + │ │ ├── VmSwappiness: *int + │ │ └── VmVfsCachePressure: *int + │ ├── TransparentHugePageDefrag: *string + │ └── TransparentHugePageEnabled: *string + ├── MaxCount: *int + ├── MaxPods: *int + ├── MinCount: *int + ├── Mode: *string + ├── Name: *string + ├── NetworkProfile: *Object (4 properties) + │ ├── AllowedHostPorts: Object (4 properties)[] + │ │ ├── PortEnd: *int + │ │ ├── PortStart: *int + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── Protocol: *string + │ ├── ApplicationSecurityGroups: string[] + │ ├── NodePublicIPTags: Object (3 properties)[] + │ │ ├── IpTagType: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── Tag: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── NodeImageVersion: *string + ├── NodeLabels: map[string]string + ├── NodePublicIPPrefixID: *string + ├── NodeTaints: string[] + ├── OrchestratorVersion: *string + ├── OsDiskSizeGB: *int + ├── OsDiskType: *string + ├── OsSKU: *string + ├── OsType: *string + ├── PodSubnetID: *string + ├── PowerState: *Object (2 properties) + │ ├── Code: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── PropertiesType: *string + ├── PropertyBag: genruntime.PropertyBag + ├── ProvisioningState: *string + ├── ProximityPlacementGroupID: *string + ├── ScaleDownMode: *string + ├── ScaleSetEvictionPolicy: *string + ├── ScaleSetPriority: *string + ├── SpotMaxPrice: *float64 + ├── Tags: map[string]string + ├── Type: *string + ├── UpgradeSettings: *Object (3 properties) + │ ├── DrainTimeoutInMinutes: *int + │ ├── MaxSurge: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── VmSize: *string + ├── VnetSubnetID: *string + └── WorkloadRuntime: *string diff --git a/v2/api/containerservice/v1api20231001/storage/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20231001/storage/zz_generated.deepcopy.go new file mode 100644 index 00000000000..783d23fd3ac --- /dev/null +++ b/v2/api/containerservice/v1api20231001/storage/zz_generated.deepcopy.go @@ -0,0 +1,7093 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + 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 *AgentPoolNetworkProfile) DeepCopyInto(out *AgentPoolNetworkProfile) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroupsReferences != nil { + in, out := &in.ApplicationSecurityGroupsReferences, &out.ApplicationSecurityGroupsReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile. +func (in *AgentPoolNetworkProfile) DeepCopy() *AgentPoolNetworkProfile { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolNetworkProfile_STATUS) DeepCopyInto(out *AgentPoolNetworkProfile_STATUS) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroups != nil { + in, out := &in.ApplicationSecurityGroups, &out.ApplicationSecurityGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile_STATUS. +func (in *AgentPoolNetworkProfile_STATUS) DeepCopy() *AgentPoolNetworkProfile_STATUS { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings) DeepCopyInto(out *AgentPoolUpgradeSettings) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings. +func (in *AgentPoolUpgradeSettings) DeepCopy() *AgentPoolUpgradeSettings { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings_STATUS) DeepCopyInto(out *AgentPoolUpgradeSettings_STATUS) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings_STATUS. +func (in *AgentPoolUpgradeSettings_STATUS) DeepCopy() *AgentPoolUpgradeSettings_STATUS { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms) DeepCopyInto(out *AzureKeyVaultKms) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(string) + **out = **in + } + if in.KeyVaultResourceReference != nil { + in, out := &in.KeyVaultResourceReference, &out.KeyVaultResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms. +func (in *AzureKeyVaultKms) DeepCopy() *AzureKeyVaultKms { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms_STATUS) DeepCopyInto(out *AzureKeyVaultKms_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(string) + **out = **in + } + if in.KeyVaultResourceId != nil { + in, out := &in.KeyVaultResourceId, &out.KeyVaultResourceId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms_STATUS. +func (in *AzureKeyVaultKms_STATUS) DeepCopy() *AzureKeyVaultKms_STATUS { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings) DeepCopyInto(out *ClusterUpgradeSettings) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings. +func (in *ClusterUpgradeSettings) DeepCopy() *ClusterUpgradeSettings { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings_STATUS) DeepCopyInto(out *ClusterUpgradeSettings_STATUS) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings_STATUS. +func (in *ClusterUpgradeSettings_STATUS) DeepCopy() *ClusterUpgradeSettings_STATUS { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile) DeepCopyInto(out *ContainerServiceLinuxProfile) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile. +func (in *ContainerServiceLinuxProfile) DeepCopy() *ContainerServiceLinuxProfile { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile_STATUS) DeepCopyInto(out *ContainerServiceLinuxProfile_STATUS) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile_STATUS. +func (in *ContainerServiceLinuxProfile_STATUS) DeepCopy() *ContainerServiceLinuxProfile_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile) DeepCopyInto(out *ContainerServiceNetworkProfile) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(string) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(string) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(string) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(string) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(string) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(string) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(string) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile. +func (in *ContainerServiceNetworkProfile) DeepCopy() *ContainerServiceNetworkProfile { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile_STATUS) DeepCopyInto(out *ContainerServiceNetworkProfile_STATUS) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(string) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(string) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(string) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(string) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(string) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(string) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(string) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile_STATUS. +func (in *ContainerServiceNetworkProfile_STATUS) DeepCopy() *ContainerServiceNetworkProfile_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration) DeepCopyInto(out *ContainerServiceSshConfiguration) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration. +func (in *ContainerServiceSshConfiguration) DeepCopy() *ContainerServiceSshConfiguration { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration_STATUS) DeepCopyInto(out *ContainerServiceSshConfiguration_STATUS) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration_STATUS. +func (in *ContainerServiceSshConfiguration_STATUS) DeepCopy() *ContainerServiceSshConfiguration_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey) DeepCopyInto(out *ContainerServiceSshPublicKey) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey. +func (in *ContainerServiceSshPublicKey) DeepCopy() *ContainerServiceSshPublicKey { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey_STATUS) DeepCopyInto(out *ContainerServiceSshPublicKey_STATUS) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey_STATUS. +func (in *ContainerServiceSshPublicKey_STATUS) DeepCopy() *ContainerServiceSshPublicKey_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData) DeepCopyInto(out *CreationData) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SourceResourceReference != nil { + in, out := &in.SourceResourceReference, &out.SourceResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData. +func (in *CreationData) DeepCopy() *CreationData { + if in == nil { + return nil + } + out := new(CreationData) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData_STATUS) DeepCopyInto(out *CreationData_STATUS) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SourceResourceId != nil { + in, out := &in.SourceResourceId, &out.SourceResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData_STATUS. +func (in *CreationData_STATUS) DeepCopy() *CreationData_STATUS { + if in == nil { + return nil + } + out := new(CreationData_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource) DeepCopyInto(out *DelegatedResource) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceReference != nil { + in, out := &in.ResourceReference, &out.ResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource. +func (in *DelegatedResource) DeepCopy() *DelegatedResource { + if in == nil { + return nil + } + out := new(DelegatedResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource_STATUS) DeepCopyInto(out *DelegatedResource_STATUS) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource_STATUS. +func (in *DelegatedResource_STATUS) DeepCopy() *DelegatedResource_STATUS { + if in == nil { + return nil + } + out := new(DelegatedResource_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation) DeepCopyInto(out *ExtendedLocation) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation. +func (in *ExtendedLocation) DeepCopy() *ExtendedLocation { + if in == nil { + return nil + } + out := new(ExtendedLocation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation_STATUS) DeepCopyInto(out *ExtendedLocation_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation_STATUS. +func (in *ExtendedLocation_STATUS) DeepCopy() *ExtendedLocation_STATUS { + if in == nil { + return nil + } + out := new(ExtendedLocation_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag) DeepCopyInto(out *IPTag) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag. +func (in *IPTag) DeepCopy() *IPTag { + if in == nil { + return nil + } + out := new(IPTag) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag_STATUS) DeepCopyInto(out *IPTag_STATUS) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag_STATUS. +func (in *IPTag_STATUS) DeepCopy() *IPTag_STATUS { + if in == nil { + return nil + } + out := new(IPTag_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority) DeepCopyInto(out *IstioCertificateAuthority) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority. +func (in *IstioCertificateAuthority) DeepCopy() *IstioCertificateAuthority { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority_STATUS) DeepCopyInto(out *IstioCertificateAuthority_STATUS) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority_STATUS. +func (in *IstioCertificateAuthority_STATUS) DeepCopy() *IstioCertificateAuthority_STATUS { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents) DeepCopyInto(out *IstioComponents) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents. +func (in *IstioComponents) DeepCopy() *IstioComponents { + if in == nil { + return nil + } + out := new(IstioComponents) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents_STATUS) DeepCopyInto(out *IstioComponents_STATUS) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents_STATUS. +func (in *IstioComponents_STATUS) DeepCopy() *IstioComponents_STATUS { + if in == nil { + return nil + } + out := new(IstioComponents_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway) DeepCopyInto(out *IstioEgressGateway) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway. +func (in *IstioEgressGateway) DeepCopy() *IstioEgressGateway { + if in == nil { + return nil + } + out := new(IstioEgressGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway_STATUS) DeepCopyInto(out *IstioEgressGateway_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway_STATUS. +func (in *IstioEgressGateway_STATUS) DeepCopy() *IstioEgressGateway_STATUS { + if in == nil { + return nil + } + out := new(IstioEgressGateway_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway) DeepCopyInto(out *IstioIngressGateway) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway. +func (in *IstioIngressGateway) DeepCopy() *IstioIngressGateway { + if in == nil { + return nil + } + out := new(IstioIngressGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway_STATUS) DeepCopyInto(out *IstioIngressGateway_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway_STATUS. +func (in *IstioIngressGateway_STATUS) DeepCopy() *IstioIngressGateway_STATUS { + if in == nil { + return nil + } + out := new(IstioIngressGateway_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority) DeepCopyInto(out *IstioPluginCertificateAuthority) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultReference != nil { + in, out := &in.KeyVaultReference, &out.KeyVaultReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority. +func (in *IstioPluginCertificateAuthority) DeepCopy() *IstioPluginCertificateAuthority { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority_STATUS) DeepCopyInto(out *IstioPluginCertificateAuthority_STATUS) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority_STATUS. +func (in *IstioPluginCertificateAuthority_STATUS) DeepCopy() *IstioPluginCertificateAuthority_STATUS { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh) DeepCopyInto(out *IstioServiceMesh) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh. +func (in *IstioServiceMesh) DeepCopy() *IstioServiceMesh { + if in == nil { + return nil + } + out := new(IstioServiceMesh) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh_STATUS) DeepCopyInto(out *IstioServiceMesh_STATUS) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh_STATUS. +func (in *IstioServiceMesh_STATUS) DeepCopy() *IstioServiceMesh_STATUS { + if in == nil { + return nil + } + out := new(IstioServiceMesh_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig. +func (in *KubeletConfig) DeepCopy() *KubeletConfig { + if in == nil { + return nil + } + out := new(KubeletConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig_STATUS) DeepCopyInto(out *KubeletConfig_STATUS) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig_STATUS. +func (in *KubeletConfig_STATUS) DeepCopy() *KubeletConfig_STATUS { + if in == nil { + return nil + } + out := new(KubeletConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig) DeepCopyInto(out *LinuxOSConfig) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig. +func (in *LinuxOSConfig) DeepCopy() *LinuxOSConfig { + if in == nil { + return nil + } + out := new(LinuxOSConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig_STATUS) DeepCopyInto(out *LinuxOSConfig_STATUS) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig_STATUS. +func (in *LinuxOSConfig_STATUS) DeepCopy() *LinuxOSConfig_STATUS { + if in == nil { + return nil + } + out := new(LinuxOSConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster) DeepCopyInto(out *ManagedCluster) { + *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 ManagedCluster. +func (in *ManagedCluster) DeepCopy() *ManagedCluster { + if in == nil { + return nil + } + out := new(ManagedCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedCluster) 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 *ManagedClusterAADProfile) DeepCopyInto(out *ManagedClusterAADProfile) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile. +func (in *ManagedClusterAADProfile) DeepCopy() *ManagedClusterAADProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAADProfile_STATUS) DeepCopyInto(out *ManagedClusterAADProfile_STATUS) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile_STATUS. +func (in *ManagedClusterAADProfile_STATUS) DeepCopy() *ManagedClusterAADProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile. +func (in *ManagedClusterAPIServerAccessProfile) DeepCopy() *ManagedClusterAPIServerAccessProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile_STATUS) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile_STATUS) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile_STATUS. +func (in *ManagedClusterAPIServerAccessProfile_STATUS) DeepCopy() *ManagedClusterAPIServerAccessProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile) DeepCopyInto(out *ManagedClusterAddonProfile) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile. +func (in *ManagedClusterAddonProfile) DeepCopy() *ManagedClusterAddonProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile_STATUS) DeepCopyInto(out *ManagedClusterAddonProfile_STATUS) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile_STATUS. +func (in *ManagedClusterAddonProfile_STATUS) DeepCopy() *ManagedClusterAddonProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile) DeepCopyInto(out *ManagedClusterAgentPoolProfile) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupReference != nil { + in, out := &in.CapacityReservationGroupReference, &out.CapacityReservationGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(string) + **out = **in + } + if in.HostGroupReference != nil { + in, out := &in.HostGroupReference, &out.HostGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(string) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixReference != nil { + in, out := &in.NodePublicIPPrefixReference, &out.NodePublicIPPrefixReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(string) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(string) + **out = **in + } + if in.PodSubnetReference != nil { + in, out := &in.PodSubnetReference, &out.PodSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProximityPlacementGroupReference != nil { + in, out := &in.ProximityPlacementGroupReference, &out.ProximityPlacementGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(string) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(string) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(string) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetReference != nil { + in, out := &in.VnetSubnetReference, &out.VnetSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile. +func (in *ManagedClusterAgentPoolProfile) DeepCopy() *ManagedClusterAgentPoolProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile_STATUS) DeepCopyInto(out *ManagedClusterAgentPoolProfile_STATUS) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(string) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(string) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(string) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(string) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(string) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(string) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(string) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile_STATUS. +func (in *ManagedClusterAgentPoolProfile_STATUS) DeepCopy() *ManagedClusterAgentPoolProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile. +func (in *ManagedClusterAutoUpgradeProfile) DeepCopy() *ManagedClusterAutoUpgradeProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile_STATUS) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile_STATUS) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile_STATUS. +func (in *ManagedClusterAutoUpgradeProfile_STATUS) DeepCopy() *ManagedClusterAutoUpgradeProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile) DeepCopyInto(out *ManagedClusterAzureMonitorProfile) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile. +func (in *ManagedClusterAzureMonitorProfile) DeepCopy() *ManagedClusterAzureMonitorProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics. +func (in *ManagedClusterAzureMonitorProfileMetrics) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics_STATUS. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfile_STATUS) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile_STATUS. +func (in *ManagedClusterAzureMonitorProfile_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig) DeepCopyInto(out *ManagedClusterHTTPProxyConfig) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig. +func (in *ManagedClusterHTTPProxyConfig) DeepCopy() *ManagedClusterHTTPProxyConfig { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig_STATUS) DeepCopyInto(out *ManagedClusterHTTPProxyConfig_STATUS) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig_STATUS. +func (in *ManagedClusterHTTPProxyConfig_STATUS) DeepCopy() *ManagedClusterHTTPProxyConfig_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity) DeepCopyInto(out *ManagedClusterIdentity) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]UserAssignedIdentityDetails, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity. +func (in *ManagedClusterIdentity) DeepCopy() *ManagedClusterIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_STATUS) DeepCopyInto(out *ManagedClusterIdentity_STATUS) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_STATUS. +func (in *ManagedClusterIdentity_STATUS) DeepCopy() *ManagedClusterIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS) DeepCopyInto(out *ManagedClusterIdentity_UserAssignedIdentities_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_UserAssignedIdentities_STATUS. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS) DeepCopy() *ManagedClusterIdentity_UserAssignedIdentities_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_UserAssignedIdentities_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterList) DeepCopyInto(out *ManagedClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ManagedCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterList. +func (in *ManagedClusterList) DeepCopy() *ManagedClusterList { + if in == nil { + return nil + } + out := new(ManagedClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClusterList) 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 *ManagedClusterLoadBalancerProfile) DeepCopyInto(out *ManagedClusterLoadBalancerProfile) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(string) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile. +func (in *ManagedClusterLoadBalancerProfile) DeepCopy() *ManagedClusterLoadBalancerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_STATUS) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(string) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_STATUS. +func (in *ManagedClusterLoadBalancerProfile_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile. +func (in *ManagedClusterManagedOutboundIPProfile) DeepCopy() *ManagedClusterManagedOutboundIPProfile { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile_STATUS) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile_STATUS. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS) DeepCopy() *ManagedClusterManagedOutboundIPProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile) DeepCopyInto(out *ManagedClusterNATGatewayProfile) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile. +func (in *ManagedClusterNATGatewayProfile) DeepCopy() *ManagedClusterNATGatewayProfile { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile_STATUS) DeepCopyInto(out *ManagedClusterNATGatewayProfile_STATUS) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile_STATUS. +func (in *ManagedClusterNATGatewayProfile_STATUS) DeepCopy() *ManagedClusterNATGatewayProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile. +func (in *ManagedClusterOIDCIssuerProfile) DeepCopy() *ManagedClusterOIDCIssuerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IssuerURL != nil { + in, out := &in.IssuerURL, &out.IssuerURL + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile_STATUS. +func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopy() *ManagedClusterOIDCIssuerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) { + *out = *in + if in.OIDCIssuerProfile != nil { + in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile + *out = new(genruntime.ConfigMapDestination) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps. +func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorConfigMaps) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) { + *out = *in + if in.AdminCredentials != nil { + in, out := &in.AdminCredentials, &out.AdminCredentials + *out = new(genruntime.SecretDestination) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UserCredentials != nil { + in, out := &in.UserCredentials, &out.UserCredentials + *out = new(genruntime.SecretDestination) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorSecrets. +func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecrets { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorSecrets) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) { + *out = *in + if in.ConfigMaps != nil { + in, out := &in.ConfigMaps, &out.ConfigMaps + *out = new(ManagedClusterOperatorConfigMaps) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Secrets != nil { + in, out := &in.Secrets, &out.Secrets + *out = new(ManagedClusterOperatorSecrets) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorSpec. +func (in *ManagedClusterOperatorSpec) DeepCopy() *ManagedClusterOperatorSpec { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity) DeepCopyInto(out *ManagedClusterPodIdentity) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity. +func (in *ManagedClusterPodIdentity) DeepCopy() *ManagedClusterPodIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException) DeepCopyInto(out *ManagedClusterPodIdentityException) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException. +func (in *ManagedClusterPodIdentityException) DeepCopy() *ManagedClusterPodIdentityException { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityException_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException_STATUS. +func (in *ManagedClusterPodIdentityException_STATUS) DeepCopy() *ManagedClusterPodIdentityException_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile) DeepCopyInto(out *ManagedClusterPodIdentityProfile) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile. +func (in *ManagedClusterPodIdentityProfile) DeepCopy() *ManagedClusterPodIdentityProfile { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProfile_STATUS) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile_STATUS. +func (in *ManagedClusterPodIdentityProfile_STATUS) DeepCopy() *ManagedClusterPodIdentityProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningError_STATUS) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningError_STATUS. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS) DeepCopy() *ManagedClusterPodIdentityProvisioningError_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningError_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) DeepCopyInto(out *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningError_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_ProvisioningInfo_STATUS. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) DeepCopy() *ManagedClusterPodIdentity_ProvisioningInfo_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_STATUS) DeepCopyInto(out *ManagedClusterPodIdentity_STATUS) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProvisioningInfo != nil { + in, out := &in.ProvisioningInfo, &out.ProvisioningInfo + *out = new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_STATUS. +func (in *ManagedClusterPodIdentity_STATUS) DeepCopy() *ManagedClusterPodIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(string) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile. +func (in *ManagedClusterProperties_AutoScalerProfile) DeepCopy() *ManagedClusterProperties_AutoScalerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile_STATUS) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(string) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile_STATUS. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS) DeepCopy() *ManagedClusterProperties_AutoScalerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU) DeepCopyInto(out *ManagedClusterSKU) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU. +func (in *ManagedClusterSKU) DeepCopy() *ManagedClusterSKU { + if in == nil { + return nil + } + out := new(ManagedClusterSKU) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU_STATUS) DeepCopyInto(out *ManagedClusterSKU_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU_STATUS. +func (in *ManagedClusterSKU_STATUS) DeepCopy() *ManagedClusterSKU_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSKU_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile) DeepCopyInto(out *ManagedClusterSecurityProfile) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile. +func (in *ManagedClusterSecurityProfile) DeepCopy() *ManagedClusterSecurityProfile { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender) DeepCopyInto(out *ManagedClusterSecurityProfileDefender) { + *out = *in + if in.LogAnalyticsWorkspaceResourceReference != nil { + in, out := &in.LogAnalyticsWorkspaceResourceReference, &out.LogAnalyticsWorkspaceResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender. +func (in *ManagedClusterSecurityProfileDefender) DeepCopy() *ManagedClusterSecurityProfileDefender { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileDefender_STATUS) { + *out = *in + if in.LogAnalyticsWorkspaceResourceId != nil { + in, out := &in.LogAnalyticsWorkspaceResourceId, &out.LogAnalyticsWorkspaceResourceId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender_STATUS. +func (in *ManagedClusterSecurityProfileDefender_STATUS) DeepCopy() *ManagedClusterSecurityProfileDefender_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner. +func (in *ManagedClusterSecurityProfileImageCleaner) DeepCopy() *ManagedClusterSecurityProfileImageCleaner { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner_STATUS. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS) DeepCopy() *ManagedClusterSecurityProfileImageCleaner_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity. +func (in *ManagedClusterSecurityProfileWorkloadIdentity) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity_STATUS. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfile_STATUS) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile_STATUS. +func (in *ManagedClusterSecurityProfile_STATUS) DeepCopy() *ManagedClusterSecurityProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile) DeepCopyInto(out *ManagedClusterServicePrincipalProfile) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Secret != nil { + in, out := &in.Secret, &out.Secret + *out = new(genruntime.SecretReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile. +func (in *ManagedClusterServicePrincipalProfile) DeepCopy() *ManagedClusterServicePrincipalProfile { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile_STATUS) DeepCopyInto(out *ManagedClusterServicePrincipalProfile_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile_STATUS. +func (in *ManagedClusterServicePrincipalProfile_STATUS) DeepCopy() *ManagedClusterServicePrincipalProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile) DeepCopyInto(out *ManagedClusterStorageProfile) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile. +func (in *ManagedClusterStorageProfile) DeepCopy() *ManagedClusterStorageProfile { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver. +func (in *ManagedClusterStorageProfileBlobCSIDriver) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver. +func (in *ManagedClusterStorageProfileDiskCSIDriver) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver. +func (in *ManagedClusterStorageProfileFileCSIDriver) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController. +func (in *ManagedClusterStorageProfileSnapshotController) DeepCopy() *ManagedClusterStorageProfileSnapshotController { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController_STATUS. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS) DeepCopy() *ManagedClusterStorageProfileSnapshotController_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile_STATUS) DeepCopyInto(out *ManagedClusterStorageProfile_STATUS) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile_STATUS. +func (in *ManagedClusterStorageProfile_STATUS) DeepCopy() *ManagedClusterStorageProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile) DeepCopyInto(out *ManagedClusterWindowsProfile) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile. +func (in *ManagedClusterWindowsProfile) DeepCopy() *ManagedClusterWindowsProfile { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile_STATUS) DeepCopyInto(out *ManagedClusterWindowsProfile_STATUS) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile_STATUS. +func (in *ManagedClusterWindowsProfile_STATUS) DeepCopy() *ManagedClusterWindowsProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile. +func (in *ManagedClusterWorkloadAutoScalerProfile) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile_STATUS) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_STATUS) DeepCopyInto(out *ManagedCluster_STATUS) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AzurePortalFQDN != nil { + in, out := &in.AzurePortalFQDN, &out.AzurePortalFQDN + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CurrentKubernetesVersion != nil { + in, out := &in.CurrentKubernetesVersion, &out.CurrentKubernetesVersion + *out = new(string) + **out = **in + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetID != nil { + in, out := &in.DiskEncryptionSetID, &out.DiskEncryptionSetID + *out = new(string) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Fqdn != nil { + in, out := &in.Fqdn, &out.Fqdn + *out = new(string) + **out = **in + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.MaxAgentPools != nil { + in, out := &in.MaxAgentPools, &out.MaxAgentPools + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PrivateFQDN != nil { + in, out := &in.PrivateFQDN, &out.PrivateFQDN + *out = new(string) + **out = **in + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(string) + **out = **in + } + if in.ResourceUID != nil { + in, out := &in.ResourceUID, &out.ResourceUID + *out = new(string) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU_STATUS) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *out = new(string) + **out = **in + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_STATUS. +func (in *ManagedCluster_STATUS) DeepCopy() *ManagedCluster_STATUS { + if in == nil { + return nil + } + out := new(ManagedCluster_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_Spec) DeepCopyInto(out *ManagedCluster_Spec) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile) + (*in).DeepCopyInto(*out) + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetReference != nil { + in, out := &in.DiskEncryptionSetReference, &out.DiskEncryptionSetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation) + (*in).DeepCopyInto(*out) + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig) + (*in).DeepCopyInto(*out) + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile) + (*in).DeepCopyInto(*out) + } + if in.OperatorSpec != nil { + in, out := &in.OperatorSpec, &out.OperatorSpec + *out = new(ManagedClusterOperatorSpec) + (*in).DeepCopyInto(*out) + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(string) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *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 { + (*out)[key] = val + } + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_Spec. +func (in *ManagedCluster_Spec) DeepCopy() *ManagedCluster_Spec { + if in == nil { + return nil + } + out := new(ManagedCluster_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClustersAgentPool) DeepCopyInto(out *ManagedClustersAgentPool) { + *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 ManagedClustersAgentPool. +func (in *ManagedClustersAgentPool) DeepCopy() *ManagedClustersAgentPool { + if in == nil { + return nil + } + out := new(ManagedClustersAgentPool) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClustersAgentPool) 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 *ManagedClustersAgentPoolList) DeepCopyInto(out *ManagedClustersAgentPoolList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ManagedClustersAgentPool, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClustersAgentPoolList. +func (in *ManagedClustersAgentPoolList) DeepCopy() *ManagedClustersAgentPoolList { + if in == nil { + return nil + } + out := new(ManagedClustersAgentPoolList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClustersAgentPoolList) 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 *ManagedClusters_AgentPool_STATUS) DeepCopyInto(out *ManagedClusters_AgentPool_STATUS) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(string) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(string) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(string) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(string) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertiesType != nil { + in, out := &in.PropertiesType, &out.PropertiesType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(string) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(string) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(string) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_STATUS. +func (in *ManagedClusters_AgentPool_STATUS) DeepCopy() *ManagedClusters_AgentPool_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusters_AgentPool_Spec) DeepCopyInto(out *ManagedClusters_AgentPool_Spec) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupReference != nil { + in, out := &in.CapacityReservationGroupReference, &out.CapacityReservationGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(string) + **out = **in + } + if in.HostGroupReference != nil { + in, out := &in.HostGroupReference, &out.HostGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(string) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixReference != nil { + in, out := &in.NodePublicIPPrefixReference, &out.NodePublicIPPrefixReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(string) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PodSubnetReference != nil { + in, out := &in.PodSubnetReference, &out.PodSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState) + (*in).DeepCopyInto(*out) + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProximityPlacementGroupReference != nil { + in, out := &in.ProximityPlacementGroupReference, &out.ProximityPlacementGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(string) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(string) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(string) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetReference != nil { + in, out := &in.VnetSubnetReference, &out.VnetSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_Spec. +func (in *ManagedClusters_AgentPool_Spec) DeepCopy() *ManagedClusters_AgentPool_Spec { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange) DeepCopyInto(out *PortRange) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange. +func (in *PortRange) DeepCopy() *PortRange { + if in == nil { + return nil + } + out := new(PortRange) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange_STATUS) DeepCopyInto(out *PortRange_STATUS) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange_STATUS. +func (in *PortRange_STATUS) DeepCopy() *PortRange_STATUS { + if in == nil { + return nil + } + out := new(PortRange_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState) DeepCopyInto(out *PowerState) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState. +func (in *PowerState) DeepCopy() *PowerState { + if in == nil { + return nil + } + out := new(PowerState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState_STATUS) DeepCopyInto(out *PowerState_STATUS) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState_STATUS. +func (in *PowerState_STATUS) DeepCopy() *PowerState_STATUS { + if in == nil { + return nil + } + out := new(PowerState_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource) DeepCopyInto(out *PrivateLinkResource) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Reference != nil { + in, out := &in.Reference, &out.Reference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource. +func (in *PrivateLinkResource) DeepCopy() *PrivateLinkResource { + if in == nil { + return nil + } + out := new(PrivateLinkResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource_STATUS) DeepCopyInto(out *PrivateLinkResource_STATUS) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateLinkServiceID != nil { + in, out := &in.PrivateLinkServiceID, &out.PrivateLinkServiceID + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource_STATUS. +func (in *PrivateLinkResource_STATUS) DeepCopy() *PrivateLinkResource_STATUS { + if in == nil { + return nil + } + out := new(PrivateLinkResource_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference) DeepCopyInto(out *ResourceReference) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Reference != nil { + in, out := &in.Reference, &out.Reference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference. +func (in *ResourceReference) DeepCopy() *ResourceReference { + if in == nil { + return nil + } + out := new(ResourceReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference_STATUS) DeepCopyInto(out *ResourceReference_STATUS) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference_STATUS. +func (in *ResourceReference_STATUS) DeepCopy() *ResourceReference_STATUS { + if in == nil { + return nil + } + out := new(ResourceReference_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile) DeepCopyInto(out *ServiceMeshProfile) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile. +func (in *ServiceMeshProfile) DeepCopy() *ServiceMeshProfile { + if in == nil { + return nil + } + out := new(ServiceMeshProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile_STATUS) DeepCopyInto(out *ServiceMeshProfile_STATUS) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile_STATUS. +func (in *ServiceMeshProfile_STATUS) DeepCopy() *ServiceMeshProfile_STATUS { + if in == nil { + return nil + } + out := new(ServiceMeshProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig) DeepCopyInto(out *SysctlConfig) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig. +func (in *SysctlConfig) DeepCopy() *SysctlConfig { + if in == nil { + return nil + } + out := new(SysctlConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig_STATUS) DeepCopyInto(out *SysctlConfig_STATUS) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig_STATUS. +func (in *SysctlConfig_STATUS) DeepCopy() *SysctlConfig_STATUS { + if in == nil { + return nil + } + out := new(SysctlConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SystemData_STATUS) DeepCopyInto(out *SystemData_STATUS) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(string) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS. +func (in *SystemData_STATUS) DeepCopy() *SystemData_STATUS { + if in == nil { + return nil + } + out := new(SystemData_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings) DeepCopyInto(out *UpgradeOverrideSettings) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings. +func (in *UpgradeOverrideSettings) DeepCopy() *UpgradeOverrideSettings { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings_STATUS) DeepCopyInto(out *UpgradeOverrideSettings_STATUS) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings_STATUS. +func (in *UpgradeOverrideSettings_STATUS) DeepCopy() *UpgradeOverrideSettings_STATUS { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity) DeepCopyInto(out *UserAssignedIdentity) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ResourceReference != nil { + in, out := &in.ResourceReference, &out.ResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity. +func (in *UserAssignedIdentity) DeepCopy() *UserAssignedIdentity { + if in == nil { + return nil + } + out := new(UserAssignedIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentityDetails) DeepCopyInto(out *UserAssignedIdentityDetails) { + *out = *in + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + out.Reference = in.Reference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails. +func (in *UserAssignedIdentityDetails) DeepCopy() *UserAssignedIdentityDetails { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity_STATUS) DeepCopyInto(out *UserAssignedIdentity_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity_STATUS. +func (in *UserAssignedIdentity_STATUS) DeepCopy() *UserAssignedIdentity_STATUS { + if in == nil { + return nil + } + out := new(UserAssignedIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile) DeepCopyInto(out *WindowsGmsaProfile) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile. +func (in *WindowsGmsaProfile) DeepCopy() *WindowsGmsaProfile { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile_STATUS) DeepCopyInto(out *WindowsGmsaProfile_STATUS) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile_STATUS. +func (in *WindowsGmsaProfile_STATUS) DeepCopy() *WindowsGmsaProfile_STATUS { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile_STATUS) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/containerservice/v1api20231001/structure.txt b/v2/api/containerservice/v1api20231001/structure.txt new file mode 100644 index 00000000000..79d5eea9145 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/structure.txt @@ -0,0 +1,2282 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001 +├── APIVersion: Enum (1 value) +│ └── "2023-10-01" +├── ManagedCluster: Resource +│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/resources/v1apiv20191001.ResourceGroup +│ ├── Spec: Object (39 properties) +│ │ ├── AadProfile: *Object (7 properties) +│ │ │ ├── AdminGroupObjectIDs: string[] +│ │ │ ├── ClientAppID: *string +│ │ │ ├── EnableAzureRBAC: *bool +│ │ │ ├── Managed: *bool +│ │ │ ├── ServerAppID: *string +│ │ │ ├── ServerAppSecret: *string +│ │ │ └── TenantID: *string +│ │ ├── AddonProfiles: map[string]Object (2 properties) +│ │ │ ├── Config: map[string]string +│ │ │ └── Enabled: *bool +│ │ ├── AgentPoolProfiles: Object (41 properties)[] +│ │ │ ├── AvailabilityZones: string[] +│ │ │ ├── CapacityReservationGroupReference: *genruntime.ResourceReference +│ │ │ ├── Count: *int +│ │ │ ├── CreationData: *Object (1 property) +│ │ │ │ └── SourceResourceReference: *genruntime.ResourceReference +│ │ │ ├── EnableAutoScaling: *bool +│ │ │ ├── EnableEncryptionAtHost: *bool +│ │ │ ├── EnableFIPS: *bool +│ │ │ ├── EnableNodePublicIP: *bool +│ │ │ ├── EnableUltraSSD: *bool +│ │ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ │ ├── "MIG1g" +│ │ │ │ ├── "MIG2g" +│ │ │ │ ├── "MIG3g" +│ │ │ │ ├── "MIG4g" +│ │ │ │ └── "MIG7g" +│ │ │ ├── HostGroupReference: *genruntime.ResourceReference +│ │ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ │ ├── ContainerLogMaxFiles: Validated<*int> (1 rule) +│ │ │ │ │ └── Rule 0: Minimum: 2 +│ │ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ │ ├── CpuCfsQuota: *bool +│ │ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ │ ├── CpuManagerPolicy: *string +│ │ │ │ ├── FailSwapOn: *bool +│ │ │ │ ├── ImageGcHighThreshold: *int +│ │ │ │ ├── ImageGcLowThreshold: *int +│ │ │ │ ├── PodMaxPids: *int +│ │ │ │ └── TopologyManagerPolicy: *string +│ │ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ │ ├── "OS" +│ │ │ │ └── "Temporary" +│ │ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ │ ├── SwapFileSizeMB: *int +│ │ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ │ ├── FsFileMax: *int +│ │ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ │ ├── FsNrOpen: *int +│ │ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 90 +│ │ │ │ │ │ └── Rule 1: Minimum: 10 +│ │ │ │ │ ├── NetNetfilterNfConntrackBuckets: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 524288 +│ │ │ │ │ │ └── Rule 1: Minimum: 65536 +│ │ │ │ │ ├── NetNetfilterNfConntrackMax: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 2097152 +│ │ │ │ │ │ └── Rule 1: Minimum: 131072 +│ │ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ │ ├── VmSwappiness: *int +│ │ │ │ │ └── VmVfsCachePressure: *int +│ │ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ │ └── TransparentHugePageEnabled: *string +│ │ │ ├── MaxCount: *int +│ │ │ ├── MaxPods: *int +│ │ │ ├── MinCount: *int +│ │ │ ├── Mode: *Enum (2 values) +│ │ │ │ ├── "System" +│ │ │ │ └── "User" +│ │ │ ├── Name: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^[a-z][a-z0-9]{0,11}$" +│ │ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ │ ├── PortEnd: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 65535 +│ │ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ │ ├── PortStart: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 65535 +│ │ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ │ ├── "TCP" +│ │ │ │ │ └── "UDP" +│ │ │ │ ├── ApplicationSecurityGroupsReferences: genruntime.ResourceReference[] +│ │ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ │ ├── IpTagType: *string +│ │ │ │ └── Tag: *string +│ │ │ ├── NodeLabels: map[string]string +│ │ │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference +│ │ │ ├── NodeTaints: string[] +│ │ │ ├── OrchestratorVersion: *string +│ │ │ ├── OsDiskSizeGB: *Validated (2 rules) +│ │ │ │ ├── Rule 0: Maximum: 2048 +│ │ │ │ └── Rule 1: Minimum: 0 +│ │ │ ├── OsDiskType: *Enum (2 values) +│ │ │ │ ├── "Ephemeral" +│ │ │ │ └── "Managed" +│ │ │ ├── OsSKU: *Enum (5 values) +│ │ │ │ ├── "AzureLinux" +│ │ │ │ ├── "CBLMariner" +│ │ │ │ ├── "Ubuntu" +│ │ │ │ ├── "Windows2019" +│ │ │ │ └── "Windows2022" +│ │ │ ├── OsType: *Enum (2 values) +│ │ │ │ ├── "Linux" +│ │ │ │ └── "Windows" +│ │ │ ├── PodSubnetReference: *genruntime.ResourceReference +│ │ │ ├── PowerState: *Object (1 property) +│ │ │ │ └── Code: *Enum (2 values) +│ │ │ │ ├── "Running" +│ │ │ │ └── "Stopped" +│ │ │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference +│ │ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ │ ├── "Regular" +│ │ │ │ └── "Spot" +│ │ │ ├── SpotMaxPrice: *float64 +│ │ │ ├── Tags: map[string]string +│ │ │ ├── Type: *Enum (2 values) +│ │ │ │ ├── "AvailabilitySet" +│ │ │ │ └── "VirtualMachineScaleSets" +│ │ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ │ ├── DrainTimeoutInMinutes: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 1440 +│ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ └── MaxSurge: *string +│ │ │ ├── VmSize: *string +│ │ │ ├── VnetSubnetReference: *genruntime.ResourceReference +│ │ │ └── WorkloadRuntime: *Enum (2 values) +│ │ │ ├── "OCIContainer" +│ │ │ └── "WasmWasi" +│ │ ├── ApiServerAccessProfile: *Object (5 properties) +│ │ │ ├── AuthorizedIPRanges: string[] +│ │ │ ├── DisableRunCommand: *bool +│ │ │ ├── EnablePrivateCluster: *bool +│ │ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ │ └── PrivateDNSZone: *string +│ │ ├── AutoScalerProfile: *Object (17 properties) +│ │ │ ├── BalanceSimilarNodeGroups: *string +│ │ │ ├── Expander: *Enum (4 values) +│ │ │ │ ├── "least-waste" +│ │ │ │ ├── "most-pods" +│ │ │ │ ├── "priority" +│ │ │ │ └── "random" +│ │ │ ├── MaxEmptyBulkDelete: *string +│ │ │ ├── MaxGracefulTerminationSec: *string +│ │ │ ├── MaxNodeProvisionTime: *string +│ │ │ ├── MaxTotalUnreadyPercentage: *string +│ │ │ ├── NewPodScaleUpDelay: *string +│ │ │ ├── OkTotalUnreadyCount: *string +│ │ │ ├── ScaleDownDelayAfterAdd: *string +│ │ │ ├── ScaleDownDelayAfterDelete: *string +│ │ │ ├── ScaleDownDelayAfterFailure: *string +│ │ │ ├── ScaleDownUnneededTime: *string +│ │ │ ├── ScaleDownUnreadyTime: *string +│ │ │ ├── ScaleDownUtilizationThreshold: *string +│ │ │ ├── ScanInterval: *string +│ │ │ ├── SkipNodesWithLocalStorage: *string +│ │ │ └── SkipNodesWithSystemPods: *string +│ │ ├── AutoUpgradeProfile: *Object (2 properties) +│ │ │ ├── NodeOSUpgradeChannel: *Enum (3 values) +│ │ │ │ ├── "NodeImage" +│ │ │ │ ├── "None" +│ │ │ │ └── "Unmanaged" +│ │ │ └── UpgradeChannel: *Enum (5 values) +│ │ │ ├── "node-image" +│ │ │ ├── "none" +│ │ │ ├── "patch" +│ │ │ ├── "rapid" +│ │ │ └── "stable" +│ │ ├── AzureMonitorProfile: *Object (1 property) +│ │ │ └── Metrics: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── KubeStateMetrics: *Object (2 properties) +│ │ │ ├── MetricAnnotationsAllowList: *string +│ │ │ └── MetricLabelsAllowlist: *string +│ │ ├── AzureName: Validated (3 rules) +│ │ │ ├── Rule 0: MaxLength: 63 +│ │ │ ├── Rule 1: MinLength: 1 +│ │ │ └── Rule 2: Pattern: "^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$" +│ │ ├── DisableLocalAccounts: *bool +│ │ ├── DiskEncryptionSetReference: *genruntime.ResourceReference +│ │ ├── DnsPrefix: *string +│ │ ├── EnablePodSecurityPolicy: *bool +│ │ ├── EnableRBAC: *bool +│ │ ├── ExtendedLocation: *Object (2 properties) +│ │ │ ├── Name: *string +│ │ │ └── Type: *Enum (1 value) +│ │ │ └── "EdgeZone" +│ │ ├── FqdnSubdomain: *string +│ │ ├── HttpProxyConfig: *Object (4 properties) +│ │ │ ├── HttpProxy: *string +│ │ │ ├── HttpsProxy: *string +│ │ │ ├── NoProxy: string[] +│ │ │ └── TrustedCa: *string +│ │ ├── Identity: *Object (3 properties) +│ │ │ ├── DelegatedResources: map[string]Object (4 properties) +│ │ │ │ ├── Location: *string +│ │ │ │ ├── ReferralResource: *string +│ │ │ │ ├── ResourceReference: *genruntime.ResourceReference +│ │ │ │ └── TenantId: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}$" +│ │ │ ├── Type: *Enum (3 values) +│ │ │ │ ├── "None" +│ │ │ │ ├── "SystemAssigned" +│ │ │ │ └── "UserAssigned" +│ │ │ └── UserAssignedIdentities: Object (1 property)[] +│ │ │ └── Reference: genruntime.ResourceReference +│ │ ├── IdentityProfile: map[string]Object (3 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ └── ResourceReference: *genruntime.ResourceReference +│ │ ├── KubernetesVersion: *string +│ │ ├── LinuxProfile: *Object (2 properties) +│ │ │ ├── AdminUsername: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^[A-Za-z][-A-Za-z0-9_]*$" +│ │ │ └── Ssh: *Object (1 property) +│ │ │ └── PublicKeys: Object (1 property)[] +│ │ │ └── KeyData: *string +│ │ ├── Location: *string +│ │ ├── NetworkProfile: *Object (15 properties) +│ │ │ ├── DnsServiceIP: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" +│ │ │ ├── IpFamilies: Enum (2 values)[] +│ │ │ │ ├── "IPv4" +│ │ │ │ └── "IPv6" +│ │ │ ├── LoadBalancerProfile: *Object (8 properties) +│ │ │ │ ├── AllocatedOutboundPorts: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 64000 +│ │ │ │ │ └── Rule 1: Minimum: 0 +│ │ │ │ ├── BackendPoolType: *Enum (2 values) +│ │ │ │ │ ├── "NodeIP" +│ │ │ │ │ └── "NodeIPConfiguration" +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ │ ├── IdleTimeoutInMinutes: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 120 +│ │ │ │ │ └── Rule 1: Minimum: 4 +│ │ │ │ ├── ManagedOutboundIPs: *Object (2 properties) +│ │ │ │ │ ├── Count: Validated<*int> (2 rules) +│ │ │ │ │ │ ├── Rule 0: Maximum: 100 +│ │ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ │ └── CountIPv6: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 100 +│ │ │ │ │ └── Rule 1: Minimum: 0 +│ │ │ │ ├── OutboundIPPrefixes: *Object (1 property) +│ │ │ │ │ └── PublicIPPrefixes: Object (1 property)[] +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ └── OutboundIPs: *Object (1 property) +│ │ │ │ └── PublicIPs: Object (1 property)[] +│ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ ├── LoadBalancerSku: *Enum (2 values) +│ │ │ │ ├── "basic" +│ │ │ │ └── "standard" +│ │ │ ├── NatGatewayProfile: *Object (3 properties) +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Reference: *genruntime.ResourceReference +│ │ │ │ ├── IdleTimeoutInMinutes: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 120 +│ │ │ │ │ └── Rule 1: Minimum: 4 +│ │ │ │ └── ManagedOutboundIPProfile: *Object (1 property) +│ │ │ │ └── Count: Validated<*int> (2 rules) +│ │ │ │ ├── Rule 0: Maximum: 16 +│ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ ├── NetworkDataplane: *Enum (2 values) +│ │ │ │ ├── "azure" +│ │ │ │ └── "cilium" +│ │ │ ├── NetworkMode: *Enum (2 values) +│ │ │ │ ├── "bridge" +│ │ │ │ └── "transparent" +│ │ │ ├── NetworkPlugin: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "kubenet" +│ │ │ │ └── "none" +│ │ │ ├── NetworkPluginMode: *Enum (1 value) +│ │ │ │ └── "overlay" +│ │ │ ├── NetworkPolicy: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "calico" +│ │ │ │ └── "cilium" +│ │ │ ├── OutboundType: *Enum (4 values) +│ │ │ │ ├── "loadBalancer" +│ │ │ │ ├── "managedNATGateway" +│ │ │ │ ├── "userAssignedNATGateway" +│ │ │ │ └── "userDefinedRouting" +│ │ │ ├── PodCidr: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$" +│ │ │ ├── PodCidrs: string[] +│ │ │ ├── ServiceCidr: Validated<*string> (1 rule) +│ │ │ │ └── Rule 0: Pattern: "^([0-9]{1,3}\\.){3}[0-9]{1,3}(\\/([0-9]|[1-2][0-9]|3[0-2]))?$" +│ │ │ └── ServiceCidrs: string[] +│ │ ├── NodeResourceGroup: *string +│ │ ├── OidcIssuerProfile: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── OperatorSpec: *Object (2 properties) +│ │ │ ├── ConfigMaps: *Object (1 property) +│ │ │ │ └── OIDCIssuerProfile: *genruntime.ConfigMapDestination +│ │ │ └── Secrets: *Object (2 properties) +│ │ │ ├── AdminCredentials: *genruntime.SecretDestination +│ │ │ └── UserCredentials: *genruntime.SecretDestination +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── PodIdentityProfile: *Object (4 properties) +│ │ │ ├── AllowNetworkPluginKubenet: *bool +│ │ │ ├── Enabled: *bool +│ │ │ ├── UserAssignedIdentities: Object (4 properties)[] +│ │ │ │ ├── BindingSelector: *string +│ │ │ │ ├── Identity: *Object (3 properties) +│ │ │ │ │ ├── ClientId: *string +│ │ │ │ │ ├── ObjectId: *string +│ │ │ │ │ └── ResourceReference: *genruntime.ResourceReference +│ │ │ │ ├── Name: *string +│ │ │ │ └── Namespace: *string +│ │ │ └── UserAssignedIdentityExceptions: Object (3 properties)[] +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ └── PodLabels: map[string]string +│ │ ├── PrivateLinkResources: Object (5 properties)[] +│ │ │ ├── GroupId: *string +│ │ │ ├── Name: *string +│ │ │ ├── Reference: *genruntime.ResourceReference +│ │ │ ├── RequiredMembers: string[] +│ │ │ └── Type: *string +│ │ ├── PublicNetworkAccess: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── SecurityProfile: *Object (4 properties) +│ │ │ ├── AzureKeyVaultKms: *Object (4 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── KeyId: *string +│ │ │ │ ├── KeyVaultNetworkAccess: *Enum (2 values) +│ │ │ │ │ ├── "Private" +│ │ │ │ │ └── "Public" +│ │ │ │ └── KeyVaultResourceReference: *genruntime.ResourceReference +│ │ │ ├── Defender: *Object (2 properties) +│ │ │ │ ├── LogAnalyticsWorkspaceResourceReference: *genruntime.ResourceReference +│ │ │ │ └── SecurityMonitoring: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── ImageCleaner: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── IntervalHours: *int +│ │ │ └── WorkloadIdentity: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── ServiceMeshProfile: *Object (2 properties) +│ │ │ ├── Istio: *Object (3 properties) +│ │ │ │ ├── CertificateAuthority: *Object (1 property) +│ │ │ │ │ └── Plugin: *Object (5 properties) +│ │ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ │ ├── CertObjectName: *string +│ │ │ │ │ ├── KeyObjectName: *string +│ │ │ │ │ ├── KeyVaultReference: *genruntime.ResourceReference +│ │ │ │ │ └── RootCertObjectName: *string +│ │ │ │ ├── Components: *Object (2 properties) +│ │ │ │ │ ├── EgressGateways: Object (2 properties)[] +│ │ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ │ └── NodeSelector: map[string]string +│ │ │ │ │ └── IngressGateways: Object (2 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ └── Mode: *Enum (2 values) +│ │ │ │ │ ├── "External" +│ │ │ │ │ └── "Internal" +│ │ │ │ └── Revisions: Validated (1 rule) +│ │ │ │ └── Rule 0: MaxItems: 2 +│ │ │ └── Mode: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Istio" +│ │ ├── ServicePrincipalProfile: *Object (2 properties) +│ │ │ ├── ClientId: *string +│ │ │ └── Secret: *genruntime.SecretReference +│ │ ├── Sku: *Object (2 properties) +│ │ │ ├── Name: *Enum (1 value) +│ │ │ │ └── "Base" +│ │ │ └── Tier: *Enum (3 values) +│ │ │ ├── "Free" +│ │ │ ├── "Premium" +│ │ │ └── "Standard" +│ │ ├── StorageProfile: *Object (4 properties) +│ │ │ ├── BlobCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── DiskCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── FileCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ └── SnapshotController: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── SupportPlan: *Enum (2 values) +│ │ │ ├── "AKSLongTermSupport" +│ │ │ └── "KubernetesOfficial" +│ │ ├── Tags: map[string]string +│ │ ├── UpgradeSettings: *Object (1 property) +│ │ │ └── OverrideSettings: *Object (2 properties) +│ │ │ ├── ForceUpgrade: *bool +│ │ │ └── Until: *string +│ │ ├── WindowsProfile: *Object (5 properties) +│ │ │ ├── AdminPassword: *string +│ │ │ ├── AdminUsername: *string +│ │ │ ├── EnableCSIProxy: *bool +│ │ │ ├── GmsaProfile: *Object (3 properties) +│ │ │ │ ├── DnsServer: *string +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── RootDomainName: *string +│ │ │ └── LicenseType: *Enum (2 values) +│ │ │ ├── "None" +│ │ │ └── "Windows_Server" +│ │ └── WorkloadAutoScalerProfile: *Object (2 properties) +│ │ ├── Keda: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ └── VerticalPodAutoscaler: *Object (1 property) +│ │ └── Enabled: *bool +│ └── Status: Object (49 properties) +│ ├── AadProfile: *Object (7 properties) +│ │ ├── AdminGroupObjectIDs: string[] +│ │ ├── ClientAppID: *string +│ │ ├── EnableAzureRBAC: *bool +│ │ ├── Managed: *bool +│ │ ├── ServerAppID: *string +│ │ ├── ServerAppSecret: *string +│ │ └── TenantID: *string +│ ├── AddonProfiles: map[string]Object (3 properties) +│ │ ├── Config: map[string]string +│ │ ├── Enabled: *bool +│ │ └── Identity: *Object (3 properties) +│ │ ├── ClientId: *string +│ │ ├── ObjectId: *string +│ │ └── ResourceId: *string +│ ├── AgentPoolProfiles: Object (44 properties)[] +│ │ ├── AvailabilityZones: string[] +│ │ ├── CapacityReservationGroupID: *string +│ │ ├── Count: *int +│ │ ├── CreationData: *Object (1 property) +│ │ │ └── SourceResourceId: *string +│ │ ├── CurrentOrchestratorVersion: *string +│ │ ├── EnableAutoScaling: *bool +│ │ ├── EnableEncryptionAtHost: *bool +│ │ ├── EnableFIPS: *bool +│ │ ├── EnableNodePublicIP: *bool +│ │ ├── EnableUltraSSD: *bool +│ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ ├── "MIG1g" +│ │ │ ├── "MIG2g" +│ │ │ ├── "MIG3g" +│ │ │ ├── "MIG4g" +│ │ │ └── "MIG7g" +│ │ ├── HostGroupID: *string +│ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ ├── CpuCfsQuota: *bool +│ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ ├── CpuManagerPolicy: *string +│ │ │ ├── FailSwapOn: *bool +│ │ │ ├── ImageGcHighThreshold: *int +│ │ │ ├── ImageGcLowThreshold: *int +│ │ │ ├── PodMaxPids: *int +│ │ │ └── TopologyManagerPolicy: *string +│ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ ├── "OS" +│ │ │ └── "Temporary" +│ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ ├── SwapFileSizeMB: *int +│ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ ├── FsFileMax: *int +│ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ ├── FsNrOpen: *int +│ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ ├── VmSwappiness: *int +│ │ │ │ └── VmVfsCachePressure: *int +│ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ └── TransparentHugePageEnabled: *string +│ │ ├── MaxCount: *int +│ │ ├── MaxPods: *int +│ │ ├── MinCount: *int +│ │ ├── Mode: *Enum (2 values) +│ │ │ ├── "System" +│ │ │ └── "User" +│ │ ├── Name: *string +│ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ ├── PortEnd: *int +│ │ │ │ ├── PortStart: *int +│ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ ├── "TCP" +│ │ │ │ └── "UDP" +│ │ │ ├── ApplicationSecurityGroups: string[] +│ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ ├── IpTagType: *string +│ │ │ └── Tag: *string +│ │ ├── NodeImageVersion: *string +│ │ ├── NodeLabels: map[string]string +│ │ ├── NodePublicIPPrefixID: *string +│ │ ├── NodeTaints: string[] +│ │ ├── OrchestratorVersion: *string +│ │ ├── OsDiskSizeGB: *int +│ │ ├── OsDiskType: *Enum (2 values) +│ │ │ ├── "Ephemeral" +│ │ │ └── "Managed" +│ │ ├── OsSKU: *Enum (5 values) +│ │ │ ├── "AzureLinux" +│ │ │ ├── "CBLMariner" +│ │ │ ├── "Ubuntu" +│ │ │ ├── "Windows2019" +│ │ │ └── "Windows2022" +│ │ ├── OsType: *Enum (2 values) +│ │ │ ├── "Linux" +│ │ │ └── "Windows" +│ │ ├── PodSubnetID: *string +│ │ ├── PowerState: *Object (1 property) +│ │ │ └── Code: *Enum (2 values) +│ │ │ ├── "Running" +│ │ │ └── "Stopped" +│ │ ├── ProvisioningState: *string +│ │ ├── ProximityPlacementGroupID: *string +│ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ ├── "Regular" +│ │ │ └── "Spot" +│ │ ├── SpotMaxPrice: *float64 +│ │ ├── Tags: map[string]string +│ │ ├── Type: *Enum (2 values) +│ │ │ ├── "AvailabilitySet" +│ │ │ └── "VirtualMachineScaleSets" +│ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ └── MaxSurge: *string +│ │ ├── VmSize: *string +│ │ ├── VnetSubnetID: *string +│ │ └── WorkloadRuntime: *Enum (2 values) +│ │ ├── "OCIContainer" +│ │ └── "WasmWasi" +│ ├── ApiServerAccessProfile: *Object (5 properties) +│ │ ├── AuthorizedIPRanges: string[] +│ │ ├── DisableRunCommand: *bool +│ │ ├── EnablePrivateCluster: *bool +│ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ └── PrivateDNSZone: *string +│ ├── AutoScalerProfile: *Object (17 properties) +│ │ ├── BalanceSimilarNodeGroups: *string +│ │ ├── Expander: *Enum (4 values) +│ │ │ ├── "least-waste" +│ │ │ ├── "most-pods" +│ │ │ ├── "priority" +│ │ │ └── "random" +│ │ ├── MaxEmptyBulkDelete: *string +│ │ ├── MaxGracefulTerminationSec: *string +│ │ ├── MaxNodeProvisionTime: *string +│ │ ├── MaxTotalUnreadyPercentage: *string +│ │ ├── NewPodScaleUpDelay: *string +│ │ ├── OkTotalUnreadyCount: *string +│ │ ├── ScaleDownDelayAfterAdd: *string +│ │ ├── ScaleDownDelayAfterDelete: *string +│ │ ├── ScaleDownDelayAfterFailure: *string +│ │ ├── ScaleDownUnneededTime: *string +│ │ ├── ScaleDownUnreadyTime: *string +│ │ ├── ScaleDownUtilizationThreshold: *string +│ │ ├── ScanInterval: *string +│ │ ├── SkipNodesWithLocalStorage: *string +│ │ └── SkipNodesWithSystemPods: *string +│ ├── AutoUpgradeProfile: *Object (2 properties) +│ │ ├── NodeOSUpgradeChannel: *Enum (3 values) +│ │ │ ├── "NodeImage" +│ │ │ ├── "None" +│ │ │ └── "Unmanaged" +│ │ └── UpgradeChannel: *Enum (5 values) +│ │ ├── "node-image" +│ │ ├── "none" +│ │ ├── "patch" +│ │ ├── "rapid" +│ │ └── "stable" +│ ├── AzureMonitorProfile: *Object (1 property) +│ │ └── Metrics: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── KubeStateMetrics: *Object (2 properties) +│ │ ├── MetricAnnotationsAllowList: *string +│ │ └── MetricLabelsAllowlist: *string +│ ├── AzurePortalFQDN: *string +│ ├── Conditions: conditions.Condition[] +│ ├── CurrentKubernetesVersion: *string +│ ├── DisableLocalAccounts: *bool +│ ├── DiskEncryptionSetID: *string +│ ├── DnsPrefix: *string +│ ├── EnablePodSecurityPolicy: *bool +│ ├── EnableRBAC: *bool +│ ├── ExtendedLocation: *Object (2 properties) +│ │ ├── Name: *string +│ │ └── Type: *Enum (1 value) +│ │ └── "EdgeZone" +│ ├── Fqdn: *string +│ ├── FqdnSubdomain: *string +│ ├── HttpProxyConfig: *Object (4 properties) +│ │ ├── HttpProxy: *string +│ │ ├── HttpsProxy: *string +│ │ ├── NoProxy: string[] +│ │ └── TrustedCa: *string +│ ├── Id: *string +│ ├── Identity: *Object (5 properties) +│ │ ├── DelegatedResources: map[string]Object (4 properties) +│ │ │ ├── Location: *string +│ │ │ ├── ReferralResource: *string +│ │ │ ├── ResourceId: *string +│ │ │ └── TenantId: *string +│ │ ├── PrincipalId: *string +│ │ ├── TenantId: *string +│ │ ├── Type: *Enum (3 values) +│ │ │ ├── "None" +│ │ │ ├── "SystemAssigned" +│ │ │ └── "UserAssigned" +│ │ └── UserAssignedIdentities: map[string]Object (2 properties) +│ │ ├── ClientId: *string +│ │ └── PrincipalId: *string +│ ├── IdentityProfile: map[string]Object (3 properties) +│ │ ├── ClientId: *string +│ │ ├── ObjectId: *string +│ │ └── ResourceId: *string +│ ├── KubernetesVersion: *string +│ ├── LinuxProfile: *Object (2 properties) +│ │ ├── AdminUsername: *string +│ │ └── Ssh: *Object (1 property) +│ │ └── PublicKeys: Object (1 property)[] +│ │ └── KeyData: *string +│ ├── Location: *string +│ ├── MaxAgentPools: *int +│ ├── Name: *string +│ ├── NetworkProfile: *Object (15 properties) +│ │ ├── DnsServiceIP: *string +│ │ ├── IpFamilies: Enum (2 values)[] +│ │ │ ├── "IPv4" +│ │ │ └── "IPv6" +│ │ ├── LoadBalancerProfile: *Object (8 properties) +│ │ │ ├── AllocatedOutboundPorts: *int +│ │ │ ├── BackendPoolType: *Enum (2 values) +│ │ │ │ ├── "NodeIP" +│ │ │ │ └── "NodeIPConfiguration" +│ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ └── Id: *string +│ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ ├── ManagedOutboundIPs: *Object (2 properties) +│ │ │ │ ├── Count: *int +│ │ │ │ └── CountIPv6: *int +│ │ │ ├── OutboundIPPrefixes: *Object (1 property) +│ │ │ │ └── PublicIPPrefixes: Object (1 property)[] +│ │ │ │ └── Id: *string +│ │ │ └── OutboundIPs: *Object (1 property) +│ │ │ └── PublicIPs: Object (1 property)[] +│ │ │ └── Id: *string +│ │ ├── LoadBalancerSku: *Enum (2 values) +│ │ │ ├── "basic" +│ │ │ └── "standard" +│ │ ├── NatGatewayProfile: *Object (3 properties) +│ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ └── Id: *string +│ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ └── ManagedOutboundIPProfile: *Object (1 property) +│ │ │ └── Count: *int +│ │ ├── NetworkDataplane: *Enum (2 values) +│ │ │ ├── "azure" +│ │ │ └── "cilium" +│ │ ├── NetworkMode: *Enum (2 values) +│ │ │ ├── "bridge" +│ │ │ └── "transparent" +│ │ ├── NetworkPlugin: *Enum (3 values) +│ │ │ ├── "azure" +│ │ │ ├── "kubenet" +│ │ │ └── "none" +│ │ ├── NetworkPluginMode: *Enum (1 value) +│ │ │ └── "overlay" +│ │ ├── NetworkPolicy: *Enum (3 values) +│ │ │ ├── "azure" +│ │ │ ├── "calico" +│ │ │ └── "cilium" +│ │ ├── OutboundType: *Enum (4 values) +│ │ │ ├── "loadBalancer" +│ │ │ ├── "managedNATGateway" +│ │ │ ├── "userAssignedNATGateway" +│ │ │ └── "userDefinedRouting" +│ │ ├── PodCidr: *string +│ │ ├── PodCidrs: string[] +│ │ ├── ServiceCidr: *string +│ │ └── ServiceCidrs: string[] +│ ├── NodeResourceGroup: *string +│ ├── OidcIssuerProfile: *Object (2 properties) +│ │ ├── Enabled: *bool +│ │ └── IssuerURL: *string +│ ├── PodIdentityProfile: *Object (4 properties) +│ │ ├── AllowNetworkPluginKubenet: *bool +│ │ ├── Enabled: *bool +│ │ ├── UserAssignedIdentities: Object (6 properties)[] +│ │ │ ├── BindingSelector: *string +│ │ │ ├── Identity: *Object (3 properties) +│ │ │ │ ├── ClientId: *string +│ │ │ │ ├── ObjectId: *string +│ │ │ │ └── ResourceId: *string +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ ├── ProvisioningInfo: *Object (1 property) +│ │ │ │ └── Error: *Object (1 property) +│ │ │ │ └── Error: *Object (4 properties) +│ │ │ │ ├── Code: *string +│ │ │ │ ├── Details: Object (3 properties)[] +│ │ │ │ │ ├── Code: *string +│ │ │ │ │ ├── Message: *string +│ │ │ │ │ └── Target: *string +│ │ │ │ ├── Message: *string +│ │ │ │ └── Target: *string +│ │ │ └── ProvisioningState: *Enum (6 values) +│ │ │ ├── "Assigned" +│ │ │ ├── "Canceled" +│ │ │ ├── "Deleting" +│ │ │ ├── "Failed" +│ │ │ ├── "Succeeded" +│ │ │ └── "Updating" +│ │ └── UserAssignedIdentityExceptions: Object (3 properties)[] +│ │ ├── Name: *string +│ │ ├── Namespace: *string +│ │ └── PodLabels: map[string]string +│ ├── PowerState: *Object (1 property) +│ │ └── Code: *Enum (2 values) +│ │ ├── "Running" +│ │ └── "Stopped" +│ ├── PrivateFQDN: *string +│ ├── PrivateLinkResources: Object (6 properties)[] +│ │ ├── GroupId: *string +│ │ ├── Id: *string +│ │ ├── Name: *string +│ │ ├── PrivateLinkServiceID: *string +│ │ ├── RequiredMembers: string[] +│ │ └── Type: *string +│ ├── ProvisioningState: *string +│ ├── PublicNetworkAccess: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Enabled" +│ ├── ResourceUID: *string +│ ├── SecurityProfile: *Object (4 properties) +│ │ ├── AzureKeyVaultKms: *Object (4 properties) +│ │ │ ├── Enabled: *bool +│ │ │ ├── KeyId: *string +│ │ │ ├── KeyVaultNetworkAccess: *Enum (2 values) +│ │ │ │ ├── "Private" +│ │ │ │ └── "Public" +│ │ │ └── KeyVaultResourceId: *string +│ │ ├── Defender: *Object (2 properties) +│ │ │ ├── LogAnalyticsWorkspaceResourceId: *string +│ │ │ └── SecurityMonitoring: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── ImageCleaner: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── IntervalHours: *int +│ │ └── WorkloadIdentity: *Object (1 property) +│ │ └── Enabled: *bool +│ ├── ServiceMeshProfile: *Object (2 properties) +│ │ ├── Istio: *Object (3 properties) +│ │ │ ├── CertificateAuthority: *Object (1 property) +│ │ │ │ └── Plugin: *Object (5 properties) +│ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ ├── CertObjectName: *string +│ │ │ │ ├── KeyObjectName: *string +│ │ │ │ ├── KeyVaultId: *string +│ │ │ │ └── RootCertObjectName: *string +│ │ │ ├── Components: *Object (2 properties) +│ │ │ │ ├── EgressGateways: Object (2 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ └── NodeSelector: map[string]string +│ │ │ │ └── IngressGateways: Object (2 properties)[] +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── Mode: *Enum (2 values) +│ │ │ │ ├── "External" +│ │ │ │ └── "Internal" +│ │ │ └── Revisions: string[] +│ │ └── Mode: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Istio" +│ ├── ServicePrincipalProfile: *Object (1 property) +│ │ └── ClientId: *string +│ ├── Sku: *Object (2 properties) +│ │ ├── Name: *Enum (1 value) +│ │ │ └── "Base" +│ │ └── Tier: *Enum (3 values) +│ │ ├── "Free" +│ │ ├── "Premium" +│ │ └── "Standard" +│ ├── StorageProfile: *Object (4 properties) +│ │ ├── BlobCSIDriver: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── DiskCSIDriver: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── FileCSIDriver: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ └── SnapshotController: *Object (1 property) +│ │ └── Enabled: *bool +│ ├── SupportPlan: *Enum (2 values) +│ │ ├── "AKSLongTermSupport" +│ │ └── "KubernetesOfficial" +│ ├── SystemData: *Object (6 properties) +│ │ ├── CreatedAt: *string +│ │ ├── CreatedBy: *string +│ │ ├── CreatedByType: *Enum (4 values) +│ │ │ ├── "Application" +│ │ │ ├── "Key" +│ │ │ ├── "ManagedIdentity" +│ │ │ └── "User" +│ │ ├── LastModifiedAt: *string +│ │ ├── LastModifiedBy: *string +│ │ └── LastModifiedByType: *Enum (4 values) +│ │ ├── "Application" +│ │ ├── "Key" +│ │ ├── "ManagedIdentity" +│ │ └── "User" +│ ├── Tags: map[string]string +│ ├── Type: *string +│ ├── UpgradeSettings: *Object (1 property) +│ │ └── OverrideSettings: *Object (2 properties) +│ │ ├── ForceUpgrade: *bool +│ │ └── Until: *string +│ ├── WindowsProfile: *Object (5 properties) +│ │ ├── AdminPassword: *string +│ │ ├── AdminUsername: *string +│ │ ├── EnableCSIProxy: *bool +│ │ ├── GmsaProfile: *Object (3 properties) +│ │ │ ├── DnsServer: *string +│ │ │ ├── Enabled: *bool +│ │ │ └── RootDomainName: *string +│ │ └── LicenseType: *Enum (2 values) +│ │ ├── "None" +│ │ └── "Windows_Server" +│ └── WorkloadAutoScalerProfile: *Object (2 properties) +│ ├── Keda: *Object (1 property) +│ │ └── Enabled: *bool +│ └── VerticalPodAutoscaler: *Object (1 property) +│ └── Enabled: *bool +├── ManagedCluster_STATUS_ARM: Object (10 properties) +│ ├── ExtendedLocation: *Object (2 properties) +│ │ ├── Name: *string +│ │ └── Type: *Enum (1 value) +│ │ └── "EdgeZone" +│ ├── Id: *string +│ ├── Identity: *Object (5 properties) +│ │ ├── DelegatedResources: map[string]Object (4 properties) +│ │ │ ├── Location: *string +│ │ │ ├── ReferralResource: *string +│ │ │ ├── ResourceId: *string +│ │ │ └── TenantId: *string +│ │ ├── PrincipalId: *string +│ │ ├── TenantId: *string +│ │ ├── Type: *Enum (3 values) +│ │ │ ├── "None" +│ │ │ ├── "SystemAssigned" +│ │ │ └── "UserAssigned" +│ │ └── UserAssignedIdentities: map[string]Object (2 properties) +│ │ ├── ClientId: *string +│ │ └── PrincipalId: *string +│ ├── Location: *string +│ ├── Name: *string +│ ├── Properties: *Object (39 properties) +│ │ ├── AadProfile: *Object (7 properties) +│ │ │ ├── AdminGroupObjectIDs: string[] +│ │ │ ├── ClientAppID: *string +│ │ │ ├── EnableAzureRBAC: *bool +│ │ │ ├── Managed: *bool +│ │ │ ├── ServerAppID: *string +│ │ │ ├── ServerAppSecret: *string +│ │ │ └── TenantID: *string +│ │ ├── AddonProfiles: map[string]Object (3 properties) +│ │ │ ├── Config: map[string]string +│ │ │ ├── Enabled: *bool +│ │ │ └── Identity: *Object (3 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ └── ResourceId: *string +│ │ ├── AgentPoolProfiles: Object (44 properties)[] +│ │ │ ├── AvailabilityZones: string[] +│ │ │ ├── CapacityReservationGroupID: *string +│ │ │ ├── Count: *int +│ │ │ ├── CreationData: *Object (1 property) +│ │ │ │ └── SourceResourceId: *string +│ │ │ ├── CurrentOrchestratorVersion: *string +│ │ │ ├── EnableAutoScaling: *bool +│ │ │ ├── EnableEncryptionAtHost: *bool +│ │ │ ├── EnableFIPS: *bool +│ │ │ ├── EnableNodePublicIP: *bool +│ │ │ ├── EnableUltraSSD: *bool +│ │ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ │ ├── "MIG1g" +│ │ │ │ ├── "MIG2g" +│ │ │ │ ├── "MIG3g" +│ │ │ │ ├── "MIG4g" +│ │ │ │ └── "MIG7g" +│ │ │ ├── HostGroupID: *string +│ │ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ │ ├── CpuCfsQuota: *bool +│ │ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ │ ├── CpuManagerPolicy: *string +│ │ │ │ ├── FailSwapOn: *bool +│ │ │ │ ├── ImageGcHighThreshold: *int +│ │ │ │ ├── ImageGcLowThreshold: *int +│ │ │ │ ├── PodMaxPids: *int +│ │ │ │ └── TopologyManagerPolicy: *string +│ │ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ │ ├── "OS" +│ │ │ │ └── "Temporary" +│ │ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ │ ├── SwapFileSizeMB: *int +│ │ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ │ ├── FsFileMax: *int +│ │ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ │ ├── FsNrOpen: *int +│ │ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ │ ├── VmSwappiness: *int +│ │ │ │ │ └── VmVfsCachePressure: *int +│ │ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ │ └── TransparentHugePageEnabled: *string +│ │ │ ├── MaxCount: *int +│ │ │ ├── MaxPods: *int +│ │ │ ├── MinCount: *int +│ │ │ ├── Mode: *Enum (2 values) +│ │ │ │ ├── "System" +│ │ │ │ └── "User" +│ │ │ ├── Name: *string +│ │ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ │ ├── PortEnd: *int +│ │ │ │ │ ├── PortStart: *int +│ │ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ │ ├── "TCP" +│ │ │ │ │ └── "UDP" +│ │ │ │ ├── ApplicationSecurityGroups: string[] +│ │ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ │ ├── IpTagType: *string +│ │ │ │ └── Tag: *string +│ │ │ ├── NodeImageVersion: *string +│ │ │ ├── NodeLabels: map[string]string +│ │ │ ├── NodePublicIPPrefixID: *string +│ │ │ ├── NodeTaints: string[] +│ │ │ ├── OrchestratorVersion: *string +│ │ │ ├── OsDiskSizeGB: *int +│ │ │ ├── OsDiskType: *Enum (2 values) +│ │ │ │ ├── "Ephemeral" +│ │ │ │ └── "Managed" +│ │ │ ├── OsSKU: *Enum (5 values) +│ │ │ │ ├── "AzureLinux" +│ │ │ │ ├── "CBLMariner" +│ │ │ │ ├── "Ubuntu" +│ │ │ │ ├── "Windows2019" +│ │ │ │ └── "Windows2022" +│ │ │ ├── OsType: *Enum (2 values) +│ │ │ │ ├── "Linux" +│ │ │ │ └── "Windows" +│ │ │ ├── PodSubnetID: *string +│ │ │ ├── PowerState: *Object (1 property) +│ │ │ │ └── Code: *Enum (2 values) +│ │ │ │ ├── "Running" +│ │ │ │ └── "Stopped" +│ │ │ ├── ProvisioningState: *string +│ │ │ ├── ProximityPlacementGroupID: *string +│ │ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ │ ├── "Regular" +│ │ │ │ └── "Spot" +│ │ │ ├── SpotMaxPrice: *float64 +│ │ │ ├── Tags: map[string]string +│ │ │ ├── Type: *Enum (2 values) +│ │ │ │ ├── "AvailabilitySet" +│ │ │ │ └── "VirtualMachineScaleSets" +│ │ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ │ └── MaxSurge: *string +│ │ │ ├── VmSize: *string +│ │ │ ├── VnetSubnetID: *string +│ │ │ └── WorkloadRuntime: *Enum (2 values) +│ │ │ ├── "OCIContainer" +│ │ │ └── "WasmWasi" +│ │ ├── ApiServerAccessProfile: *Object (5 properties) +│ │ │ ├── AuthorizedIPRanges: string[] +│ │ │ ├── DisableRunCommand: *bool +│ │ │ ├── EnablePrivateCluster: *bool +│ │ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ │ └── PrivateDNSZone: *string +│ │ ├── AutoScalerProfile: *Object (17 properties) +│ │ │ ├── BalanceSimilarNodeGroups: *string +│ │ │ ├── Expander: *Enum (4 values) +│ │ │ │ ├── "least-waste" +│ │ │ │ ├── "most-pods" +│ │ │ │ ├── "priority" +│ │ │ │ └── "random" +│ │ │ ├── MaxEmptyBulkDelete: *string +│ │ │ ├── MaxGracefulTerminationSec: *string +│ │ │ ├── MaxNodeProvisionTime: *string +│ │ │ ├── MaxTotalUnreadyPercentage: *string +│ │ │ ├── NewPodScaleUpDelay: *string +│ │ │ ├── OkTotalUnreadyCount: *string +│ │ │ ├── ScaleDownDelayAfterAdd: *string +│ │ │ ├── ScaleDownDelayAfterDelete: *string +│ │ │ ├── ScaleDownDelayAfterFailure: *string +│ │ │ ├── ScaleDownUnneededTime: *string +│ │ │ ├── ScaleDownUnreadyTime: *string +│ │ │ ├── ScaleDownUtilizationThreshold: *string +│ │ │ ├── ScanInterval: *string +│ │ │ ├── SkipNodesWithLocalStorage: *string +│ │ │ └── SkipNodesWithSystemPods: *string +│ │ ├── AutoUpgradeProfile: *Object (2 properties) +│ │ │ ├── NodeOSUpgradeChannel: *Enum (3 values) +│ │ │ │ ├── "NodeImage" +│ │ │ │ ├── "None" +│ │ │ │ └── "Unmanaged" +│ │ │ └── UpgradeChannel: *Enum (5 values) +│ │ │ ├── "node-image" +│ │ │ ├── "none" +│ │ │ ├── "patch" +│ │ │ ├── "rapid" +│ │ │ └── "stable" +│ │ ├── AzureMonitorProfile: *Object (1 property) +│ │ │ └── Metrics: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── KubeStateMetrics: *Object (2 properties) +│ │ │ ├── MetricAnnotationsAllowList: *string +│ │ │ └── MetricLabelsAllowlist: *string +│ │ ├── AzurePortalFQDN: *string +│ │ ├── CurrentKubernetesVersion: *string +│ │ ├── DisableLocalAccounts: *bool +│ │ ├── DiskEncryptionSetID: *string +│ │ ├── DnsPrefix: *string +│ │ ├── EnablePodSecurityPolicy: *bool +│ │ ├── EnableRBAC: *bool +│ │ ├── Fqdn: *string +│ │ ├── FqdnSubdomain: *string +│ │ ├── HttpProxyConfig: *Object (4 properties) +│ │ │ ├── HttpProxy: *string +│ │ │ ├── HttpsProxy: *string +│ │ │ ├── NoProxy: string[] +│ │ │ └── TrustedCa: *string +│ │ ├── IdentityProfile: map[string]Object (3 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ └── ResourceId: *string +│ │ ├── KubernetesVersion: *string +│ │ ├── LinuxProfile: *Object (2 properties) +│ │ │ ├── AdminUsername: *string +│ │ │ └── Ssh: *Object (1 property) +│ │ │ └── PublicKeys: Object (1 property)[] +│ │ │ └── KeyData: *string +│ │ ├── MaxAgentPools: *int +│ │ ├── NetworkProfile: *Object (15 properties) +│ │ │ ├── DnsServiceIP: *string +│ │ │ ├── IpFamilies: Enum (2 values)[] +│ │ │ │ ├── "IPv4" +│ │ │ │ └── "IPv6" +│ │ │ ├── LoadBalancerProfile: *Object (8 properties) +│ │ │ │ ├── AllocatedOutboundPorts: *int +│ │ │ │ ├── BackendPoolType: *Enum (2 values) +│ │ │ │ │ ├── "NodeIP" +│ │ │ │ │ └── "NodeIPConfiguration" +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ ├── ManagedOutboundIPs: *Object (2 properties) +│ │ │ │ │ ├── Count: *int +│ │ │ │ │ └── CountIPv6: *int +│ │ │ │ ├── OutboundIPPrefixes: *Object (1 property) +│ │ │ │ │ └── PublicIPPrefixes: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ └── OutboundIPs: *Object (1 property) +│ │ │ │ └── PublicIPs: Object (1 property)[] +│ │ │ │ └── Id: *string +│ │ │ ├── LoadBalancerSku: *Enum (2 values) +│ │ │ │ ├── "basic" +│ │ │ │ └── "standard" +│ │ │ ├── NatGatewayProfile: *Object (3 properties) +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ └── ManagedOutboundIPProfile: *Object (1 property) +│ │ │ │ └── Count: *int +│ │ │ ├── NetworkDataplane: *Enum (2 values) +│ │ │ │ ├── "azure" +│ │ │ │ └── "cilium" +│ │ │ ├── NetworkMode: *Enum (2 values) +│ │ │ │ ├── "bridge" +│ │ │ │ └── "transparent" +│ │ │ ├── NetworkPlugin: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "kubenet" +│ │ │ │ └── "none" +│ │ │ ├── NetworkPluginMode: *Enum (1 value) +│ │ │ │ └── "overlay" +│ │ │ ├── NetworkPolicy: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "calico" +│ │ │ │ └── "cilium" +│ │ │ ├── OutboundType: *Enum (4 values) +│ │ │ │ ├── "loadBalancer" +│ │ │ │ ├── "managedNATGateway" +│ │ │ │ ├── "userAssignedNATGateway" +│ │ │ │ └── "userDefinedRouting" +│ │ │ ├── PodCidr: *string +│ │ │ ├── PodCidrs: string[] +│ │ │ ├── ServiceCidr: *string +│ │ │ └── ServiceCidrs: string[] +│ │ ├── NodeResourceGroup: *string +│ │ ├── OidcIssuerProfile: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── IssuerURL: *string +│ │ ├── PodIdentityProfile: *Object (4 properties) +│ │ │ ├── AllowNetworkPluginKubenet: *bool +│ │ │ ├── Enabled: *bool +│ │ │ ├── UserAssignedIdentities: Object (6 properties)[] +│ │ │ │ ├── BindingSelector: *string +│ │ │ │ ├── Identity: *Object (3 properties) +│ │ │ │ │ ├── ClientId: *string +│ │ │ │ │ ├── ObjectId: *string +│ │ │ │ │ └── ResourceId: *string +│ │ │ │ ├── Name: *string +│ │ │ │ ├── Namespace: *string +│ │ │ │ ├── ProvisioningInfo: *Object (1 property) +│ │ │ │ │ └── Error: *Object (1 property) +│ │ │ │ │ └── Error: *Object (4 properties) +│ │ │ │ │ ├── Code: *string +│ │ │ │ │ ├── Details: Object (3 properties)[] +│ │ │ │ │ │ ├── Code: *string +│ │ │ │ │ │ ├── Message: *string +│ │ │ │ │ │ └── Target: *string +│ │ │ │ │ ├── Message: *string +│ │ │ │ │ └── Target: *string +│ │ │ │ └── ProvisioningState: *Enum (6 values) +│ │ │ │ ├── "Assigned" +│ │ │ │ ├── "Canceled" +│ │ │ │ ├── "Deleting" +│ │ │ │ ├── "Failed" +│ │ │ │ ├── "Succeeded" +│ │ │ │ └── "Updating" +│ │ │ └── UserAssignedIdentityExceptions: Object (3 properties)[] +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ └── PodLabels: map[string]string +│ │ ├── PowerState: *Object (1 property) +│ │ │ └── Code: *Enum (2 values) +│ │ │ ├── "Running" +│ │ │ └── "Stopped" +│ │ ├── PrivateFQDN: *string +│ │ ├── PrivateLinkResources: Object (6 properties)[] +│ │ │ ├── GroupId: *string +│ │ │ ├── Id: *string +│ │ │ ├── Name: *string +│ │ │ ├── PrivateLinkServiceID: *string +│ │ │ ├── RequiredMembers: string[] +│ │ │ └── Type: *string +│ │ ├── ProvisioningState: *string +│ │ ├── PublicNetworkAccess: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── ResourceUID: *string +│ │ ├── SecurityProfile: *Object (4 properties) +│ │ │ ├── AzureKeyVaultKms: *Object (4 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── KeyId: *string +│ │ │ │ ├── KeyVaultNetworkAccess: *Enum (2 values) +│ │ │ │ │ ├── "Private" +│ │ │ │ │ └── "Public" +│ │ │ │ └── KeyVaultResourceId: *string +│ │ │ ├── Defender: *Object (2 properties) +│ │ │ │ ├── LogAnalyticsWorkspaceResourceId: *string +│ │ │ │ └── SecurityMonitoring: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── ImageCleaner: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── IntervalHours: *int +│ │ │ └── WorkloadIdentity: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── ServiceMeshProfile: *Object (2 properties) +│ │ │ ├── Istio: *Object (3 properties) +│ │ │ │ ├── CertificateAuthority: *Object (1 property) +│ │ │ │ │ └── Plugin: *Object (5 properties) +│ │ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ │ ├── CertObjectName: *string +│ │ │ │ │ ├── KeyObjectName: *string +│ │ │ │ │ ├── KeyVaultId: *string +│ │ │ │ │ └── RootCertObjectName: *string +│ │ │ │ ├── Components: *Object (2 properties) +│ │ │ │ │ ├── EgressGateways: Object (2 properties)[] +│ │ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ │ └── NodeSelector: map[string]string +│ │ │ │ │ └── IngressGateways: Object (2 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ └── Mode: *Enum (2 values) +│ │ │ │ │ ├── "External" +│ │ │ │ │ └── "Internal" +│ │ │ │ └── Revisions: string[] +│ │ │ └── Mode: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Istio" +│ │ ├── ServicePrincipalProfile: *Object (1 property) +│ │ │ └── ClientId: *string +│ │ ├── StorageProfile: *Object (4 properties) +│ │ │ ├── BlobCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── DiskCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── FileCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ └── SnapshotController: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── SupportPlan: *Enum (2 values) +│ │ │ ├── "AKSLongTermSupport" +│ │ │ └── "KubernetesOfficial" +│ │ ├── UpgradeSettings: *Object (1 property) +│ │ │ └── OverrideSettings: *Object (2 properties) +│ │ │ ├── ForceUpgrade: *bool +│ │ │ └── Until: *string +│ │ ├── WindowsProfile: *Object (5 properties) +│ │ │ ├── AdminPassword: *string +│ │ │ ├── AdminUsername: *string +│ │ │ ├── EnableCSIProxy: *bool +│ │ │ ├── GmsaProfile: *Object (3 properties) +│ │ │ │ ├── DnsServer: *string +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── RootDomainName: *string +│ │ │ └── LicenseType: *Enum (2 values) +│ │ │ ├── "None" +│ │ │ └── "Windows_Server" +│ │ └── WorkloadAutoScalerProfile: *Object (2 properties) +│ │ ├── Keda: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ └── VerticalPodAutoscaler: *Object (1 property) +│ │ └── Enabled: *bool +│ ├── Sku: *Object (2 properties) +│ │ ├── Name: *Enum (1 value) +│ │ │ └── "Base" +│ │ └── Tier: *Enum (3 values) +│ │ ├── "Free" +│ │ ├── "Premium" +│ │ └── "Standard" +│ ├── SystemData: *Object (6 properties) +│ │ ├── CreatedAt: *string +│ │ ├── CreatedBy: *string +│ │ ├── CreatedByType: *Enum (4 values) +│ │ │ ├── "Application" +│ │ │ ├── "Key" +│ │ │ ├── "ManagedIdentity" +│ │ │ └── "User" +│ │ ├── LastModifiedAt: *string +│ │ ├── LastModifiedBy: *string +│ │ └── LastModifiedByType: *Enum (4 values) +│ │ ├── "Application" +│ │ ├── "Key" +│ │ ├── "ManagedIdentity" +│ │ └── "User" +│ ├── Tags: map[string]string +│ └── Type: *string +├── ManagedCluster_Spec_ARM: Object (7 properties) +│ ├── ExtendedLocation: *Object (2 properties) +│ │ ├── Name: *string +│ │ └── Type: *Enum (1 value) +│ │ └── "EdgeZone" +│ ├── Identity: *Object (3 properties) +│ │ ├── DelegatedResources: map[string]Object (4 properties) +│ │ │ ├── Location: *string +│ │ │ ├── ReferralResource: *string +│ │ │ ├── ResourceId: *string +│ │ │ └── TenantId: *string +│ │ ├── Type: *Enum (3 values) +│ │ │ ├── "None" +│ │ │ ├── "SystemAssigned" +│ │ │ └── "UserAssigned" +│ │ └── UserAssignedIdentities: map[string]Object (0 properties) +│ ├── Location: *string +│ ├── Name: string +│ ├── Properties: *Object (31 properties) +│ │ ├── AadProfile: *Object (7 properties) +│ │ │ ├── AdminGroupObjectIDs: string[] +│ │ │ ├── ClientAppID: *string +│ │ │ ├── EnableAzureRBAC: *bool +│ │ │ ├── Managed: *bool +│ │ │ ├── ServerAppID: *string +│ │ │ ├── ServerAppSecret: *string +│ │ │ └── TenantID: *string +│ │ ├── AddonProfiles: map[string]Object (2 properties) +│ │ │ ├── Config: map[string]string +│ │ │ └── Enabled: *bool +│ │ ├── AgentPoolProfiles: Object (41 properties)[] +│ │ │ ├── AvailabilityZones: string[] +│ │ │ ├── CapacityReservationGroupID: *string +│ │ │ ├── Count: *int +│ │ │ ├── CreationData: *Object (1 property) +│ │ │ │ └── SourceResourceId: *string +│ │ │ ├── EnableAutoScaling: *bool +│ │ │ ├── EnableEncryptionAtHost: *bool +│ │ │ ├── EnableFIPS: *bool +│ │ │ ├── EnableNodePublicIP: *bool +│ │ │ ├── EnableUltraSSD: *bool +│ │ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ │ ├── "MIG1g" +│ │ │ │ ├── "MIG2g" +│ │ │ │ ├── "MIG3g" +│ │ │ │ ├── "MIG4g" +│ │ │ │ └── "MIG7g" +│ │ │ ├── HostGroupID: *string +│ │ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ │ ├── CpuCfsQuota: *bool +│ │ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ │ ├── CpuManagerPolicy: *string +│ │ │ │ ├── FailSwapOn: *bool +│ │ │ │ ├── ImageGcHighThreshold: *int +│ │ │ │ ├── ImageGcLowThreshold: *int +│ │ │ │ ├── PodMaxPids: *int +│ │ │ │ └── TopologyManagerPolicy: *string +│ │ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ │ ├── "OS" +│ │ │ │ └── "Temporary" +│ │ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ │ ├── SwapFileSizeMB: *int +│ │ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ │ ├── FsFileMax: *int +│ │ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ │ ├── FsNrOpen: *int +│ │ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ │ ├── VmSwappiness: *int +│ │ │ │ │ └── VmVfsCachePressure: *int +│ │ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ │ └── TransparentHugePageEnabled: *string +│ │ │ ├── MaxCount: *int +│ │ │ ├── MaxPods: *int +│ │ │ ├── MinCount: *int +│ │ │ ├── Mode: *Enum (2 values) +│ │ │ │ ├── "System" +│ │ │ │ └── "User" +│ │ │ ├── Name: *string +│ │ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ │ ├── PortEnd: *int +│ │ │ │ │ ├── PortStart: *int +│ │ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ │ ├── "TCP" +│ │ │ │ │ └── "UDP" +│ │ │ │ ├── ApplicationSecurityGroups: string[] +│ │ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ │ ├── IpTagType: *string +│ │ │ │ └── Tag: *string +│ │ │ ├── NodeLabels: map[string]string +│ │ │ ├── NodePublicIPPrefixID: *string +│ │ │ ├── NodeTaints: string[] +│ │ │ ├── OrchestratorVersion: *string +│ │ │ ├── OsDiskSizeGB: *Validated (2 rules) +│ │ │ │ ├── Rule 0: Maximum: 2048 +│ │ │ │ └── Rule 1: Minimum: 0 +│ │ │ ├── OsDiskType: *Enum (2 values) +│ │ │ │ ├── "Ephemeral" +│ │ │ │ └── "Managed" +│ │ │ ├── OsSKU: *Enum (5 values) +│ │ │ │ ├── "AzureLinux" +│ │ │ │ ├── "CBLMariner" +│ │ │ │ ├── "Ubuntu" +│ │ │ │ ├── "Windows2019" +│ │ │ │ └── "Windows2022" +│ │ │ ├── OsType: *Enum (2 values) +│ │ │ │ ├── "Linux" +│ │ │ │ └── "Windows" +│ │ │ ├── PodSubnetID: *string +│ │ │ ├── PowerState: *Object (1 property) +│ │ │ │ └── Code: *Enum (2 values) +│ │ │ │ ├── "Running" +│ │ │ │ └── "Stopped" +│ │ │ ├── ProximityPlacementGroupID: *string +│ │ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ │ ├── "Deallocate" +│ │ │ │ └── "Delete" +│ │ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ │ ├── "Regular" +│ │ │ │ └── "Spot" +│ │ │ ├── SpotMaxPrice: *float64 +│ │ │ ├── Tags: map[string]string +│ │ │ ├── Type: *Enum (2 values) +│ │ │ │ ├── "AvailabilitySet" +│ │ │ │ └── "VirtualMachineScaleSets" +│ │ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ │ └── MaxSurge: *string +│ │ │ ├── VmSize: *string +│ │ │ ├── VnetSubnetID: *string +│ │ │ └── WorkloadRuntime: *Enum (2 values) +│ │ │ ├── "OCIContainer" +│ │ │ └── "WasmWasi" +│ │ ├── ApiServerAccessProfile: *Object (5 properties) +│ │ │ ├── AuthorizedIPRanges: string[] +│ │ │ ├── DisableRunCommand: *bool +│ │ │ ├── EnablePrivateCluster: *bool +│ │ │ ├── EnablePrivateClusterPublicFQDN: *bool +│ │ │ └── PrivateDNSZone: *string +│ │ ├── AutoScalerProfile: *Object (17 properties) +│ │ │ ├── BalanceSimilarNodeGroups: *string +│ │ │ ├── Expander: *Enum (4 values) +│ │ │ │ ├── "least-waste" +│ │ │ │ ├── "most-pods" +│ │ │ │ ├── "priority" +│ │ │ │ └── "random" +│ │ │ ├── MaxEmptyBulkDelete: *string +│ │ │ ├── MaxGracefulTerminationSec: *string +│ │ │ ├── MaxNodeProvisionTime: *string +│ │ │ ├── MaxTotalUnreadyPercentage: *string +│ │ │ ├── NewPodScaleUpDelay: *string +│ │ │ ├── OkTotalUnreadyCount: *string +│ │ │ ├── ScaleDownDelayAfterAdd: *string +│ │ │ ├── ScaleDownDelayAfterDelete: *string +│ │ │ ├── ScaleDownDelayAfterFailure: *string +│ │ │ ├── ScaleDownUnneededTime: *string +│ │ │ ├── ScaleDownUnreadyTime: *string +│ │ │ ├── ScaleDownUtilizationThreshold: *string +│ │ │ ├── ScanInterval: *string +│ │ │ ├── SkipNodesWithLocalStorage: *string +│ │ │ └── SkipNodesWithSystemPods: *string +│ │ ├── AutoUpgradeProfile: *Object (2 properties) +│ │ │ ├── NodeOSUpgradeChannel: *Enum (3 values) +│ │ │ │ ├── "NodeImage" +│ │ │ │ ├── "None" +│ │ │ │ └── "Unmanaged" +│ │ │ └── UpgradeChannel: *Enum (5 values) +│ │ │ ├── "node-image" +│ │ │ ├── "none" +│ │ │ ├── "patch" +│ │ │ ├── "rapid" +│ │ │ └── "stable" +│ │ ├── AzureMonitorProfile: *Object (1 property) +│ │ │ └── Metrics: *Object (2 properties) +│ │ │ ├── Enabled: *bool +│ │ │ └── KubeStateMetrics: *Object (2 properties) +│ │ │ ├── MetricAnnotationsAllowList: *string +│ │ │ └── MetricLabelsAllowlist: *string +│ │ ├── DisableLocalAccounts: *bool +│ │ ├── DiskEncryptionSetID: *string +│ │ ├── DnsPrefix: *string +│ │ ├── EnablePodSecurityPolicy: *bool +│ │ ├── EnableRBAC: *bool +│ │ ├── FqdnSubdomain: *string +│ │ ├── HttpProxyConfig: *Object (4 properties) +│ │ │ ├── HttpProxy: *string +│ │ │ ├── HttpsProxy: *string +│ │ │ ├── NoProxy: string[] +│ │ │ └── TrustedCa: *string +│ │ ├── IdentityProfile: map[string]Object (3 properties) +│ │ │ ├── ClientId: *string +│ │ │ ├── ObjectId: *string +│ │ │ └── ResourceId: *string +│ │ ├── KubernetesVersion: *string +│ │ ├── LinuxProfile: *Object (2 properties) +│ │ │ ├── AdminUsername: *string +│ │ │ └── Ssh: *Object (1 property) +│ │ │ └── PublicKeys: Object (1 property)[] +│ │ │ └── KeyData: *string +│ │ ├── NetworkProfile: *Object (15 properties) +│ │ │ ├── DnsServiceIP: *string +│ │ │ ├── IpFamilies: Enum (2 values)[] +│ │ │ │ ├── "IPv4" +│ │ │ │ └── "IPv6" +│ │ │ ├── LoadBalancerProfile: *Object (8 properties) +│ │ │ │ ├── AllocatedOutboundPorts: *int +│ │ │ │ ├── BackendPoolType: *Enum (2 values) +│ │ │ │ │ ├── "NodeIP" +│ │ │ │ │ └── "NodeIPConfiguration" +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ ├── EnableMultipleStandardLoadBalancers: *bool +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ ├── ManagedOutboundIPs: *Object (2 properties) +│ │ │ │ │ ├── Count: *int +│ │ │ │ │ └── CountIPv6: *int +│ │ │ │ ├── OutboundIPPrefixes: *Object (1 property) +│ │ │ │ │ └── PublicIPPrefixes: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ └── OutboundIPs: *Object (1 property) +│ │ │ │ └── PublicIPs: Object (1 property)[] +│ │ │ │ └── Id: *string +│ │ │ ├── LoadBalancerSku: *Enum (2 values) +│ │ │ │ ├── "basic" +│ │ │ │ └── "standard" +│ │ │ ├── NatGatewayProfile: *Object (3 properties) +│ │ │ │ ├── EffectiveOutboundIPs: Object (1 property)[] +│ │ │ │ │ └── Id: *string +│ │ │ │ ├── IdleTimeoutInMinutes: *int +│ │ │ │ └── ManagedOutboundIPProfile: *Object (1 property) +│ │ │ │ └── Count: *int +│ │ │ ├── NetworkDataplane: *Enum (2 values) +│ │ │ │ ├── "azure" +│ │ │ │ └── "cilium" +│ │ │ ├── NetworkMode: *Enum (2 values) +│ │ │ │ ├── "bridge" +│ │ │ │ └── "transparent" +│ │ │ ├── NetworkPlugin: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "kubenet" +│ │ │ │ └── "none" +│ │ │ ├── NetworkPluginMode: *Enum (1 value) +│ │ │ │ └── "overlay" +│ │ │ ├── NetworkPolicy: *Enum (3 values) +│ │ │ │ ├── "azure" +│ │ │ │ ├── "calico" +│ │ │ │ └── "cilium" +│ │ │ ├── OutboundType: *Enum (4 values) +│ │ │ │ ├── "loadBalancer" +│ │ │ │ ├── "managedNATGateway" +│ │ │ │ ├── "userAssignedNATGateway" +│ │ │ │ └── "userDefinedRouting" +│ │ │ ├── PodCidr: *string +│ │ │ ├── PodCidrs: string[] +│ │ │ ├── ServiceCidr: *string +│ │ │ └── ServiceCidrs: string[] +│ │ ├── NodeResourceGroup: *string +│ │ ├── OidcIssuerProfile: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── PodIdentityProfile: *Object (4 properties) +│ │ │ ├── AllowNetworkPluginKubenet: *bool +│ │ │ ├── Enabled: *bool +│ │ │ ├── UserAssignedIdentities: Object (4 properties)[] +│ │ │ │ ├── BindingSelector: *string +│ │ │ │ ├── Identity: *Object (3 properties) +│ │ │ │ │ ├── ClientId: *string +│ │ │ │ │ ├── ObjectId: *string +│ │ │ │ │ └── ResourceId: *string +│ │ │ │ ├── Name: *string +│ │ │ │ └── Namespace: *string +│ │ │ └── UserAssignedIdentityExceptions: Object (3 properties)[] +│ │ │ ├── Name: *string +│ │ │ ├── Namespace: *string +│ │ │ └── PodLabels: map[string]string +│ │ ├── PrivateLinkResources: Object (5 properties)[] +│ │ │ ├── GroupId: *string +│ │ │ ├── Id: *string +│ │ │ ├── Name: *string +│ │ │ ├── RequiredMembers: string[] +│ │ │ └── Type: *string +│ │ ├── PublicNetworkAccess: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── SecurityProfile: *Object (4 properties) +│ │ │ ├── AzureKeyVaultKms: *Object (4 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ ├── KeyId: *string +│ │ │ │ ├── KeyVaultNetworkAccess: *Enum (2 values) +│ │ │ │ │ ├── "Private" +│ │ │ │ │ └── "Public" +│ │ │ │ └── KeyVaultResourceId: *string +│ │ │ ├── Defender: *Object (2 properties) +│ │ │ │ ├── LogAnalyticsWorkspaceResourceId: *string +│ │ │ │ └── SecurityMonitoring: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── ImageCleaner: *Object (2 properties) +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── IntervalHours: *int +│ │ │ └── WorkloadIdentity: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── ServiceMeshProfile: *Object (2 properties) +│ │ │ ├── Istio: *Object (3 properties) +│ │ │ │ ├── CertificateAuthority: *Object (1 property) +│ │ │ │ │ └── Plugin: *Object (5 properties) +│ │ │ │ │ ├── CertChainObjectName: *string +│ │ │ │ │ ├── CertObjectName: *string +│ │ │ │ │ ├── KeyObjectName: *string +│ │ │ │ │ ├── KeyVaultId: *string +│ │ │ │ │ └── RootCertObjectName: *string +│ │ │ │ ├── Components: *Object (2 properties) +│ │ │ │ │ ├── EgressGateways: Object (2 properties)[] +│ │ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ │ └── NodeSelector: map[string]string +│ │ │ │ │ └── IngressGateways: Object (2 properties)[] +│ │ │ │ │ ├── Enabled: *bool +│ │ │ │ │ └── Mode: *Enum (2 values) +│ │ │ │ │ ├── "External" +│ │ │ │ │ └── "Internal" +│ │ │ │ └── Revisions: string[] +│ │ │ └── Mode: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Istio" +│ │ ├── ServicePrincipalProfile: *Object (2 properties) +│ │ │ ├── ClientId: *string +│ │ │ └── Secret: *string +│ │ ├── StorageProfile: *Object (4 properties) +│ │ │ ├── BlobCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── DiskCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ ├── FileCSIDriver: *Object (1 property) +│ │ │ │ └── Enabled: *bool +│ │ │ └── SnapshotController: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ ├── SupportPlan: *Enum (2 values) +│ │ │ ├── "AKSLongTermSupport" +│ │ │ └── "KubernetesOfficial" +│ │ ├── UpgradeSettings: *Object (1 property) +│ │ │ └── OverrideSettings: *Object (2 properties) +│ │ │ ├── ForceUpgrade: *bool +│ │ │ └── Until: *string +│ │ ├── WindowsProfile: *Object (5 properties) +│ │ │ ├── AdminPassword: *string +│ │ │ ├── AdminUsername: *string +│ │ │ ├── EnableCSIProxy: *bool +│ │ │ ├── GmsaProfile: *Object (3 properties) +│ │ │ │ ├── DnsServer: *string +│ │ │ │ ├── Enabled: *bool +│ │ │ │ └── RootDomainName: *string +│ │ │ └── LicenseType: *Enum (2 values) +│ │ │ ├── "None" +│ │ │ └── "Windows_Server" +│ │ └── WorkloadAutoScalerProfile: *Object (2 properties) +│ │ ├── Keda: *Object (1 property) +│ │ │ └── Enabled: *bool +│ │ └── VerticalPodAutoscaler: *Object (1 property) +│ │ └── Enabled: *bool +│ ├── Sku: *Object (2 properties) +│ │ ├── Name: *Enum (1 value) +│ │ │ └── "Base" +│ │ └── Tier: *Enum (3 values) +│ │ ├── "Free" +│ │ ├── "Premium" +│ │ └── "Standard" +│ └── Tags: map[string]string +├── ManagedClustersAgentPool: Resource +│ ├── Owner: ManagedCluster +│ ├── Spec: Object (42 properties) +│ │ ├── AvailabilityZones: string[] +│ │ ├── AzureName: Validated (3 rules) +│ │ │ ├── Rule 0: MaxLength: 12 +│ │ │ ├── Rule 1: MinLength: 1 +│ │ │ └── Rule 2: Pattern: "^[a-z][a-z0-9]{0,11}$" +│ │ ├── CapacityReservationGroupReference: *genruntime.ResourceReference +│ │ ├── Count: *int +│ │ ├── CreationData: *Object (1 property) +│ │ │ └── SourceResourceReference: *genruntime.ResourceReference +│ │ ├── EnableAutoScaling: *bool +│ │ ├── EnableEncryptionAtHost: *bool +│ │ ├── EnableFIPS: *bool +│ │ ├── EnableNodePublicIP: *bool +│ │ ├── EnableUltraSSD: *bool +│ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ ├── "MIG1g" +│ │ │ ├── "MIG2g" +│ │ │ ├── "MIG3g" +│ │ │ ├── "MIG4g" +│ │ │ └── "MIG7g" +│ │ ├── HostGroupReference: *genruntime.ResourceReference +│ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ ├── ContainerLogMaxFiles: Validated<*int> (1 rule) +│ │ │ │ └── Rule 0: Minimum: 2 +│ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ ├── CpuCfsQuota: *bool +│ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ ├── CpuManagerPolicy: *string +│ │ │ ├── FailSwapOn: *bool +│ │ │ ├── ImageGcHighThreshold: *int +│ │ │ ├── ImageGcLowThreshold: *int +│ │ │ ├── PodMaxPids: *int +│ │ │ └── TopologyManagerPolicy: *string +│ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ ├── "OS" +│ │ │ └── "Temporary" +│ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ ├── SwapFileSizeMB: *int +│ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ ├── FsFileMax: *int +│ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ ├── FsNrOpen: *int +│ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 90 +│ │ │ │ │ └── Rule 1: Minimum: 10 +│ │ │ │ ├── NetNetfilterNfConntrackBuckets: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 524288 +│ │ │ │ │ └── Rule 1: Minimum: 65536 +│ │ │ │ ├── NetNetfilterNfConntrackMax: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 2097152 +│ │ │ │ │ └── Rule 1: Minimum: 131072 +│ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ ├── VmSwappiness: *int +│ │ │ │ └── VmVfsCachePressure: *int +│ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ └── TransparentHugePageEnabled: *string +│ │ ├── MaxCount: *int +│ │ ├── MaxPods: *int +│ │ ├── MinCount: *int +│ │ ├── Mode: *Enum (2 values) +│ │ │ ├── "System" +│ │ │ └── "User" +│ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ ├── PortEnd: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 65535 +│ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ ├── PortStart: Validated<*int> (2 rules) +│ │ │ │ │ ├── Rule 0: Maximum: 65535 +│ │ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ ├── "TCP" +│ │ │ │ └── "UDP" +│ │ │ ├── ApplicationSecurityGroupsReferences: genruntime.ResourceReference[] +│ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ ├── IpTagType: *string +│ │ │ └── Tag: *string +│ │ ├── NodeLabels: map[string]string +│ │ ├── NodePublicIPPrefixReference: *genruntime.ResourceReference +│ │ ├── NodeTaints: string[] +│ │ ├── OrchestratorVersion: *string +│ │ ├── OsDiskSizeGB: *Validated (2 rules) +│ │ │ ├── Rule 0: Maximum: 2048 +│ │ │ └── Rule 1: Minimum: 0 +│ │ ├── OsDiskType: *Enum (2 values) +│ │ │ ├── "Ephemeral" +│ │ │ └── "Managed" +│ │ ├── OsSKU: *Enum (5 values) +│ │ │ ├── "AzureLinux" +│ │ │ ├── "CBLMariner" +│ │ │ ├── "Ubuntu" +│ │ │ ├── "Windows2019" +│ │ │ └── "Windows2022" +│ │ ├── OsType: *Enum (2 values) +│ │ │ ├── "Linux" +│ │ │ └── "Windows" +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── PodSubnetReference: *genruntime.ResourceReference +│ │ ├── PowerState: *Object (1 property) +│ │ │ └── Code: *Enum (2 values) +│ │ │ ├── "Running" +│ │ │ └── "Stopped" +│ │ ├── ProximityPlacementGroupReference: *genruntime.ResourceReference +│ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ ├── "Regular" +│ │ │ └── "Spot" +│ │ ├── SpotMaxPrice: *float64 +│ │ ├── Tags: map[string]string +│ │ ├── Type: *Enum (2 values) +│ │ │ ├── "AvailabilitySet" +│ │ │ └── "VirtualMachineScaleSets" +│ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ ├── DrainTimeoutInMinutes: Validated<*int> (2 rules) +│ │ │ │ ├── Rule 0: Maximum: 1440 +│ │ │ │ └── Rule 1: Minimum: 1 +│ │ │ └── MaxSurge: *string +│ │ ├── VmSize: *string +│ │ ├── VnetSubnetReference: *genruntime.ResourceReference +│ │ └── WorkloadRuntime: *Enum (2 values) +│ │ ├── "OCIContainer" +│ │ └── "WasmWasi" +│ └── Status: Object (47 properties) +│ ├── AvailabilityZones: string[] +│ ├── CapacityReservationGroupID: *string +│ ├── Conditions: conditions.Condition[] +│ ├── Count: *int +│ ├── CreationData: *Object (1 property) +│ │ └── SourceResourceId: *string +│ ├── CurrentOrchestratorVersion: *string +│ ├── EnableAutoScaling: *bool +│ ├── EnableEncryptionAtHost: *bool +│ ├── EnableFIPS: *bool +│ ├── EnableNodePublicIP: *bool +│ ├── EnableUltraSSD: *bool +│ ├── GpuInstanceProfile: *Enum (5 values) +│ │ ├── "MIG1g" +│ │ ├── "MIG2g" +│ │ ├── "MIG3g" +│ │ ├── "MIG4g" +│ │ └── "MIG7g" +│ ├── HostGroupID: *string +│ ├── Id: *string +│ ├── KubeletConfig: *Object (11 properties) +│ │ ├── AllowedUnsafeSysctls: string[] +│ │ ├── ContainerLogMaxFiles: *int +│ │ ├── ContainerLogMaxSizeMB: *int +│ │ ├── CpuCfsQuota: *bool +│ │ ├── CpuCfsQuotaPeriod: *string +│ │ ├── CpuManagerPolicy: *string +│ │ ├── FailSwapOn: *bool +│ │ ├── ImageGcHighThreshold: *int +│ │ ├── ImageGcLowThreshold: *int +│ │ ├── PodMaxPids: *int +│ │ └── TopologyManagerPolicy: *string +│ ├── KubeletDiskType: *Enum (2 values) +│ │ ├── "OS" +│ │ └── "Temporary" +│ ├── LinuxOSConfig: *Object (4 properties) +│ │ ├── SwapFileSizeMB: *int +│ │ ├── Sysctls: *Object (28 properties) +│ │ │ ├── FsAioMaxNr: *int +│ │ │ ├── FsFileMax: *int +│ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ ├── FsNrOpen: *int +│ │ │ ├── KernelThreadsMax: *int +│ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ ├── NetCoreOptmemMax: *int +│ │ │ ├── NetCoreRmemDefault: *int +│ │ │ ├── NetCoreRmemMax: *int +│ │ │ ├── NetCoreSomaxconn: *int +│ │ │ ├── NetCoreWmemDefault: *int +│ │ │ ├── NetCoreWmemMax: *int +│ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ ├── VmMaxMapCount: *int +│ │ │ ├── VmSwappiness: *int +│ │ │ └── VmVfsCachePressure: *int +│ │ ├── TransparentHugePageDefrag: *string +│ │ └── TransparentHugePageEnabled: *string +│ ├── MaxCount: *int +│ ├── MaxPods: *int +│ ├── MinCount: *int +│ ├── Mode: *Enum (2 values) +│ │ ├── "System" +│ │ └── "User" +│ ├── Name: *string +│ ├── NetworkProfile: *Object (3 properties) +│ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ ├── PortEnd: *int +│ │ │ ├── PortStart: *int +│ │ │ └── Protocol: *Enum (2 values) +│ │ │ ├── "TCP" +│ │ │ └── "UDP" +│ │ ├── ApplicationSecurityGroups: string[] +│ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ ├── IpTagType: *string +│ │ └── Tag: *string +│ ├── NodeImageVersion: *string +│ ├── NodeLabels: map[string]string +│ ├── NodePublicIPPrefixID: *string +│ ├── NodeTaints: string[] +│ ├── OrchestratorVersion: *string +│ ├── OsDiskSizeGB: *int +│ ├── OsDiskType: *Enum (2 values) +│ │ ├── "Ephemeral" +│ │ └── "Managed" +│ ├── OsSKU: *Enum (5 values) +│ │ ├── "AzureLinux" +│ │ ├── "CBLMariner" +│ │ ├── "Ubuntu" +│ │ ├── "Windows2019" +│ │ └── "Windows2022" +│ ├── OsType: *Enum (2 values) +│ │ ├── "Linux" +│ │ └── "Windows" +│ ├── PodSubnetID: *string +│ ├── PowerState: *Object (1 property) +│ │ └── Code: *Enum (2 values) +│ │ ├── "Running" +│ │ └── "Stopped" +│ ├── PropertiesType: *Enum (2 values) +│ │ ├── "AvailabilitySet" +│ │ └── "VirtualMachineScaleSets" +│ ├── ProvisioningState: *string +│ ├── ProximityPlacementGroupID: *string +│ ├── ScaleDownMode: *Enum (2 values) +│ │ ├── "Deallocate" +│ │ └── "Delete" +│ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ ├── "Deallocate" +│ │ └── "Delete" +│ ├── ScaleSetPriority: *Enum (2 values) +│ │ ├── "Regular" +│ │ └── "Spot" +│ ├── SpotMaxPrice: *float64 +│ ├── Tags: map[string]string +│ ├── Type: *string +│ ├── UpgradeSettings: *Object (2 properties) +│ │ ├── DrainTimeoutInMinutes: *int +│ │ └── MaxSurge: *string +│ ├── VmSize: *string +│ ├── VnetSubnetID: *string +│ └── WorkloadRuntime: *Enum (2 values) +│ ├── "OCIContainer" +│ └── "WasmWasi" +├── ManagedClusters_AgentPool_STATUS_ARM: Object (4 properties) +│ ├── Id: *string +│ ├── Name: *string +│ ├── Properties: *Object (43 properties) +│ │ ├── AvailabilityZones: string[] +│ │ ├── CapacityReservationGroupID: *string +│ │ ├── Count: *int +│ │ ├── CreationData: *Object (1 property) +│ │ │ └── SourceResourceId: *string +│ │ ├── CurrentOrchestratorVersion: *string +│ │ ├── EnableAutoScaling: *bool +│ │ ├── EnableEncryptionAtHost: *bool +│ │ ├── EnableFIPS: *bool +│ │ ├── EnableNodePublicIP: *bool +│ │ ├── EnableUltraSSD: *bool +│ │ ├── GpuInstanceProfile: *Enum (5 values) +│ │ │ ├── "MIG1g" +│ │ │ ├── "MIG2g" +│ │ │ ├── "MIG3g" +│ │ │ ├── "MIG4g" +│ │ │ └── "MIG7g" +│ │ ├── HostGroupID: *string +│ │ ├── KubeletConfig: *Object (11 properties) +│ │ │ ├── AllowedUnsafeSysctls: string[] +│ │ │ ├── ContainerLogMaxFiles: *int +│ │ │ ├── ContainerLogMaxSizeMB: *int +│ │ │ ├── CpuCfsQuota: *bool +│ │ │ ├── CpuCfsQuotaPeriod: *string +│ │ │ ├── CpuManagerPolicy: *string +│ │ │ ├── FailSwapOn: *bool +│ │ │ ├── ImageGcHighThreshold: *int +│ │ │ ├── ImageGcLowThreshold: *int +│ │ │ ├── PodMaxPids: *int +│ │ │ └── TopologyManagerPolicy: *string +│ │ ├── KubeletDiskType: *Enum (2 values) +│ │ │ ├── "OS" +│ │ │ └── "Temporary" +│ │ ├── LinuxOSConfig: *Object (4 properties) +│ │ │ ├── SwapFileSizeMB: *int +│ │ │ ├── Sysctls: *Object (28 properties) +│ │ │ │ ├── FsAioMaxNr: *int +│ │ │ │ ├── FsFileMax: *int +│ │ │ │ ├── FsInotifyMaxUserWatches: *int +│ │ │ │ ├── FsNrOpen: *int +│ │ │ │ ├── KernelThreadsMax: *int +│ │ │ │ ├── NetCoreNetdevMaxBacklog: *int +│ │ │ │ ├── NetCoreOptmemMax: *int +│ │ │ │ ├── NetCoreRmemDefault: *int +│ │ │ │ ├── NetCoreRmemMax: *int +│ │ │ │ ├── NetCoreSomaxconn: *int +│ │ │ │ ├── NetCoreWmemDefault: *int +│ │ │ │ ├── NetCoreWmemMax: *int +│ │ │ │ ├── NetIpv4IpLocalPortRange: *string +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh1: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh2: *int +│ │ │ │ ├── NetIpv4NeighDefaultGcThresh3: *int +│ │ │ │ ├── NetIpv4TcpFinTimeout: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveProbes: *int +│ │ │ │ ├── NetIpv4TcpKeepaliveTime: *int +│ │ │ │ ├── NetIpv4TcpMaxSynBacklog: *int +│ │ │ │ ├── NetIpv4TcpMaxTwBuckets: *int +│ │ │ │ ├── NetIpv4TcpTwReuse: *bool +│ │ │ │ ├── NetIpv4TcpkeepaliveIntvl: *int +│ │ │ │ ├── NetNetfilterNfConntrackBuckets: *int +│ │ │ │ ├── NetNetfilterNfConntrackMax: *int +│ │ │ │ ├── VmMaxMapCount: *int +│ │ │ │ ├── VmSwappiness: *int +│ │ │ │ └── VmVfsCachePressure: *int +│ │ │ ├── TransparentHugePageDefrag: *string +│ │ │ └── TransparentHugePageEnabled: *string +│ │ ├── MaxCount: *int +│ │ ├── MaxPods: *int +│ │ ├── MinCount: *int +│ │ ├── Mode: *Enum (2 values) +│ │ │ ├── "System" +│ │ │ └── "User" +│ │ ├── NetworkProfile: *Object (3 properties) +│ │ │ ├── AllowedHostPorts: Object (3 properties)[] +│ │ │ │ ├── PortEnd: *int +│ │ │ │ ├── PortStart: *int +│ │ │ │ └── Protocol: *Enum (2 values) +│ │ │ │ ├── "TCP" +│ │ │ │ └── "UDP" +│ │ │ ├── ApplicationSecurityGroups: string[] +│ │ │ └── NodePublicIPTags: Object (2 properties)[] +│ │ │ ├── IpTagType: *string +│ │ │ └── Tag: *string +│ │ ├── NodeImageVersion: *string +│ │ ├── NodeLabels: map[string]string +│ │ ├── NodePublicIPPrefixID: *string +│ │ ├── NodeTaints: string[] +│ │ ├── OrchestratorVersion: *string +│ │ ├── OsDiskSizeGB: *int +│ │ ├── OsDiskType: *Enum (2 values) +│ │ │ ├── "Ephemeral" +│ │ │ └── "Managed" +│ │ ├── OsSKU: *Enum (5 values) +│ │ │ ├── "AzureLinux" +│ │ │ ├── "CBLMariner" +│ │ │ ├── "Ubuntu" +│ │ │ ├── "Windows2019" +│ │ │ └── "Windows2022" +│ │ ├── OsType: *Enum (2 values) +│ │ │ ├── "Linux" +│ │ │ └── "Windows" +│ │ ├── PodSubnetID: *string +│ │ ├── PowerState: *Object (1 property) +│ │ │ └── Code: *Enum (2 values) +│ │ │ ├── "Running" +│ │ │ └── "Stopped" +│ │ ├── ProvisioningState: *string +│ │ ├── ProximityPlacementGroupID: *string +│ │ ├── ScaleDownMode: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetEvictionPolicy: *Enum (2 values) +│ │ │ ├── "Deallocate" +│ │ │ └── "Delete" +│ │ ├── ScaleSetPriority: *Enum (2 values) +│ │ │ ├── "Regular" +│ │ │ └── "Spot" +│ │ ├── SpotMaxPrice: *float64 +│ │ ├── Tags: map[string]string +│ │ ├── Type: *Enum (2 values) +│ │ │ ├── "AvailabilitySet" +│ │ │ └── "VirtualMachineScaleSets" +│ │ ├── UpgradeSettings: *Object (2 properties) +│ │ │ ├── DrainTimeoutInMinutes: *int +│ │ │ └── MaxSurge: *string +│ │ ├── VmSize: *string +│ │ ├── VnetSubnetID: *string +│ │ └── WorkloadRuntime: *Enum (2 values) +│ │ ├── "OCIContainer" +│ │ └── "WasmWasi" +│ └── Type: *string +└── ManagedClusters_AgentPool_Spec_ARM: Object (2 properties) + ├── Name: string + └── Properties: *Object (40 properties) + ├── AvailabilityZones: string[] + ├── CapacityReservationGroupID: *string + ├── Count: *int + ├── CreationData: *Object (1 property) + │ └── SourceResourceId: *string + ├── EnableAutoScaling: *bool + ├── EnableEncryptionAtHost: *bool + ├── EnableFIPS: *bool + ├── EnableNodePublicIP: *bool + ├── EnableUltraSSD: *bool + ├── GpuInstanceProfile: *Enum (5 values) + │ ├── "MIG1g" + │ ├── "MIG2g" + │ ├── "MIG3g" + │ ├── "MIG4g" + │ └── "MIG7g" + ├── HostGroupID: *string + ├── KubeletConfig: *Object (11 properties) + │ ├── AllowedUnsafeSysctls: string[] + │ ├── ContainerLogMaxFiles: *int + │ ├── ContainerLogMaxSizeMB: *int + │ ├── CpuCfsQuota: *bool + │ ├── CpuCfsQuotaPeriod: *string + │ ├── CpuManagerPolicy: *string + │ ├── FailSwapOn: *bool + │ ├── ImageGcHighThreshold: *int + │ ├── ImageGcLowThreshold: *int + │ ├── PodMaxPids: *int + │ └── TopologyManagerPolicy: *string + ├── KubeletDiskType: *Enum (2 values) + │ ├── "OS" + │ └── "Temporary" + ├── LinuxOSConfig: *Object (4 properties) + │ ├── SwapFileSizeMB: *int + │ ├── Sysctls: *Object (28 properties) + │ │ ├── FsAioMaxNr: *int + │ │ ├── FsFileMax: *int + │ │ ├── FsInotifyMaxUserWatches: *int + │ │ ├── FsNrOpen: *int + │ │ ├── KernelThreadsMax: *int + │ │ ├── NetCoreNetdevMaxBacklog: *int + │ │ ├── NetCoreOptmemMax: *int + │ │ ├── NetCoreRmemDefault: *int + │ │ ├── NetCoreRmemMax: *int + │ │ ├── NetCoreSomaxconn: *int + │ │ ├── NetCoreWmemDefault: *int + │ │ ├── NetCoreWmemMax: *int + │ │ ├── NetIpv4IpLocalPortRange: *string + │ │ ├── NetIpv4NeighDefaultGcThresh1: *int + │ │ ├── NetIpv4NeighDefaultGcThresh2: *int + │ │ ├── NetIpv4NeighDefaultGcThresh3: *int + │ │ ├── NetIpv4TcpFinTimeout: *int + │ │ ├── NetIpv4TcpKeepaliveProbes: *int + │ │ ├── NetIpv4TcpKeepaliveTime: *int + │ │ ├── NetIpv4TcpMaxSynBacklog: *int + │ │ ├── NetIpv4TcpMaxTwBuckets: *int + │ │ ├── NetIpv4TcpTwReuse: *bool + │ │ ├── NetIpv4TcpkeepaliveIntvl: *int + │ │ ├── NetNetfilterNfConntrackBuckets: *int + │ │ ├── NetNetfilterNfConntrackMax: *int + │ │ ├── VmMaxMapCount: *int + │ │ ├── VmSwappiness: *int + │ │ └── VmVfsCachePressure: *int + │ ├── TransparentHugePageDefrag: *string + │ └── TransparentHugePageEnabled: *string + ├── MaxCount: *int + ├── MaxPods: *int + ├── MinCount: *int + ├── Mode: *Enum (2 values) + │ ├── "System" + │ └── "User" + ├── NetworkProfile: *Object (3 properties) + │ ├── AllowedHostPorts: Object (3 properties)[] + │ │ ├── PortEnd: *int + │ │ ├── PortStart: *int + │ │ └── Protocol: *Enum (2 values) + │ │ ├── "TCP" + │ │ └── "UDP" + │ ├── ApplicationSecurityGroups: string[] + │ └── NodePublicIPTags: Object (2 properties)[] + │ ├── IpTagType: *string + │ └── Tag: *string + ├── NodeLabels: map[string]string + ├── NodePublicIPPrefixID: *string + ├── NodeTaints: string[] + ├── OrchestratorVersion: *string + ├── OsDiskSizeGB: *Validated (2 rules) + │ ├── Rule 0: Maximum: 2048 + │ └── Rule 1: Minimum: 0 + ├── OsDiskType: *Enum (2 values) + │ ├── "Ephemeral" + │ └── "Managed" + ├── OsSKU: *Enum (5 values) + │ ├── "AzureLinux" + │ ├── "CBLMariner" + │ ├── "Ubuntu" + │ ├── "Windows2019" + │ └── "Windows2022" + ├── OsType: *Enum (2 values) + │ ├── "Linux" + │ └── "Windows" + ├── PodSubnetID: *string + ├── PowerState: *Object (1 property) + │ └── Code: *Enum (2 values) + │ ├── "Running" + │ └── "Stopped" + ├── ProximityPlacementGroupID: *string + ├── ScaleDownMode: *Enum (2 values) + │ ├── "Deallocate" + │ └── "Delete" + ├── ScaleSetEvictionPolicy: *Enum (2 values) + │ ├── "Deallocate" + │ └── "Delete" + ├── ScaleSetPriority: *Enum (2 values) + │ ├── "Regular" + │ └── "Spot" + ├── SpotMaxPrice: *float64 + ├── Tags: map[string]string + ├── Type: *Enum (2 values) + │ ├── "AvailabilitySet" + │ └── "VirtualMachineScaleSets" + ├── UpgradeSettings: *Object (2 properties) + │ ├── DrainTimeoutInMinutes: *int + │ └── MaxSurge: *string + ├── VmSize: *string + ├── VnetSubnetID: *string + └── WorkloadRuntime: *Enum (2 values) + ├── "OCIContainer" + └── "WasmWasi" diff --git a/v2/api/containerservice/v1api20231001/zz_generated.deepcopy.go b/v2/api/containerservice/v1api20231001/zz_generated.deepcopy.go new file mode 100644 index 00000000000..a01bb766683 --- /dev/null +++ b/v2/api/containerservice/v1api20231001/zz_generated.deepcopy.go @@ -0,0 +1,11986 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1api20231001 + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolNetworkProfile) DeepCopyInto(out *AgentPoolNetworkProfile) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroupsReferences != nil { + in, out := &in.ApplicationSecurityGroupsReferences, &out.ApplicationSecurityGroupsReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile. +func (in *AgentPoolNetworkProfile) DeepCopy() *AgentPoolNetworkProfile { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolNetworkProfile_ARM) DeepCopyInto(out *AgentPoolNetworkProfile_ARM) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroups != nil { + in, out := &in.ApplicationSecurityGroups, &out.ApplicationSecurityGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile_ARM. +func (in *AgentPoolNetworkProfile_ARM) DeepCopy() *AgentPoolNetworkProfile_ARM { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolNetworkProfile_STATUS) DeepCopyInto(out *AgentPoolNetworkProfile_STATUS) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroups != nil { + in, out := &in.ApplicationSecurityGroups, &out.ApplicationSecurityGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile_STATUS. +func (in *AgentPoolNetworkProfile_STATUS) DeepCopy() *AgentPoolNetworkProfile_STATUS { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolNetworkProfile_STATUS_ARM) DeepCopyInto(out *AgentPoolNetworkProfile_STATUS_ARM) { + *out = *in + if in.AllowedHostPorts != nil { + in, out := &in.AllowedHostPorts, &out.AllowedHostPorts + *out = make([]PortRange_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApplicationSecurityGroups != nil { + in, out := &in.ApplicationSecurityGroups, &out.ApplicationSecurityGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NodePublicIPTags != nil { + in, out := &in.NodePublicIPTags, &out.NodePublicIPTags + *out = make([]IPTag_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolNetworkProfile_STATUS_ARM. +func (in *AgentPoolNetworkProfile_STATUS_ARM) DeepCopy() *AgentPoolNetworkProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(AgentPoolNetworkProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings) DeepCopyInto(out *AgentPoolUpgradeSettings) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings. +func (in *AgentPoolUpgradeSettings) DeepCopy() *AgentPoolUpgradeSettings { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings_ARM) DeepCopyInto(out *AgentPoolUpgradeSettings_ARM) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings_ARM. +func (in *AgentPoolUpgradeSettings_ARM) DeepCopy() *AgentPoolUpgradeSettings_ARM { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings_STATUS) DeepCopyInto(out *AgentPoolUpgradeSettings_STATUS) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings_STATUS. +func (in *AgentPoolUpgradeSettings_STATUS) DeepCopy() *AgentPoolUpgradeSettings_STATUS { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentPoolUpgradeSettings_STATUS_ARM) DeepCopyInto(out *AgentPoolUpgradeSettings_STATUS_ARM) { + *out = *in + if in.DrainTimeoutInMinutes != nil { + in, out := &in.DrainTimeoutInMinutes, &out.DrainTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentPoolUpgradeSettings_STATUS_ARM. +func (in *AgentPoolUpgradeSettings_STATUS_ARM) DeepCopy() *AgentPoolUpgradeSettings_STATUS_ARM { + if in == nil { + return nil + } + out := new(AgentPoolUpgradeSettings_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms) DeepCopyInto(out *AzureKeyVaultKms) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(AzureKeyVaultKms_KeyVaultNetworkAccess) + **out = **in + } + if in.KeyVaultResourceReference != nil { + in, out := &in.KeyVaultResourceReference, &out.KeyVaultResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms. +func (in *AzureKeyVaultKms) DeepCopy() *AzureKeyVaultKms { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms_ARM) DeepCopyInto(out *AzureKeyVaultKms_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(AzureKeyVaultKms_KeyVaultNetworkAccess) + **out = **in + } + if in.KeyVaultResourceId != nil { + in, out := &in.KeyVaultResourceId, &out.KeyVaultResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms_ARM. +func (in *AzureKeyVaultKms_ARM) DeepCopy() *AzureKeyVaultKms_ARM { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms_STATUS) DeepCopyInto(out *AzureKeyVaultKms_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS) + **out = **in + } + if in.KeyVaultResourceId != nil { + in, out := &in.KeyVaultResourceId, &out.KeyVaultResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms_STATUS. +func (in *AzureKeyVaultKms_STATUS) DeepCopy() *AzureKeyVaultKms_STATUS { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureKeyVaultKms_STATUS_ARM) DeepCopyInto(out *AzureKeyVaultKms_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KeyId != nil { + in, out := &in.KeyId, &out.KeyId + *out = new(string) + **out = **in + } + if in.KeyVaultNetworkAccess != nil { + in, out := &in.KeyVaultNetworkAccess, &out.KeyVaultNetworkAccess + *out = new(AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS) + **out = **in + } + if in.KeyVaultResourceId != nil { + in, out := &in.KeyVaultResourceId, &out.KeyVaultResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureKeyVaultKms_STATUS_ARM. +func (in *AzureKeyVaultKms_STATUS_ARM) DeepCopy() *AzureKeyVaultKms_STATUS_ARM { + if in == nil { + return nil + } + out := new(AzureKeyVaultKms_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings) DeepCopyInto(out *ClusterUpgradeSettings) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings. +func (in *ClusterUpgradeSettings) DeepCopy() *ClusterUpgradeSettings { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings_ARM) DeepCopyInto(out *ClusterUpgradeSettings_ARM) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings_ARM. +func (in *ClusterUpgradeSettings_ARM) DeepCopy() *ClusterUpgradeSettings_ARM { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings_STATUS) DeepCopyInto(out *ClusterUpgradeSettings_STATUS) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings_STATUS. +func (in *ClusterUpgradeSettings_STATUS) DeepCopy() *ClusterUpgradeSettings_STATUS { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterUpgradeSettings_STATUS_ARM) DeepCopyInto(out *ClusterUpgradeSettings_STATUS_ARM) { + *out = *in + if in.OverrideSettings != nil { + in, out := &in.OverrideSettings, &out.OverrideSettings + *out = new(UpgradeOverrideSettings_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterUpgradeSettings_STATUS_ARM. +func (in *ClusterUpgradeSettings_STATUS_ARM) DeepCopy() *ClusterUpgradeSettings_STATUS_ARM { + if in == nil { + return nil + } + out := new(ClusterUpgradeSettings_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile) DeepCopyInto(out *ContainerServiceLinuxProfile) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile. +func (in *ContainerServiceLinuxProfile) DeepCopy() *ContainerServiceLinuxProfile { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile_ARM) DeepCopyInto(out *ContainerServiceLinuxProfile_ARM) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile_ARM. +func (in *ContainerServiceLinuxProfile_ARM) DeepCopy() *ContainerServiceLinuxProfile_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile_STATUS) DeepCopyInto(out *ContainerServiceLinuxProfile_STATUS) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile_STATUS. +func (in *ContainerServiceLinuxProfile_STATUS) DeepCopy() *ContainerServiceLinuxProfile_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceLinuxProfile_STATUS_ARM) DeepCopyInto(out *ContainerServiceLinuxProfile_STATUS_ARM) { + *out = *in + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.Ssh != nil { + in, out := &in.Ssh, &out.Ssh + *out = new(ContainerServiceSshConfiguration_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceLinuxProfile_STATUS_ARM. +func (in *ContainerServiceLinuxProfile_STATUS_ARM) DeepCopy() *ContainerServiceLinuxProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceLinuxProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile) DeepCopyInto(out *ContainerServiceNetworkProfile) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]ContainerServiceNetworkProfile_IpFamilies, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(ContainerServiceNetworkProfile_LoadBalancerSku) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(ContainerServiceNetworkProfile_NetworkDataplane) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(ContainerServiceNetworkProfile_NetworkMode) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(NetworkPlugin) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(ContainerServiceNetworkProfile_NetworkPluginMode) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(ContainerServiceNetworkProfile_NetworkPolicy) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(ContainerServiceNetworkProfile_OutboundType) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile. +func (in *ContainerServiceNetworkProfile) DeepCopy() *ContainerServiceNetworkProfile { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile_ARM) DeepCopyInto(out *ContainerServiceNetworkProfile_ARM) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]ContainerServiceNetworkProfile_IpFamilies, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(ContainerServiceNetworkProfile_LoadBalancerSku) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(ContainerServiceNetworkProfile_NetworkDataplane) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(ContainerServiceNetworkProfile_NetworkMode) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(NetworkPlugin) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(ContainerServiceNetworkProfile_NetworkPluginMode) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(ContainerServiceNetworkProfile_NetworkPolicy) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(ContainerServiceNetworkProfile_OutboundType) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile_ARM. +func (in *ContainerServiceNetworkProfile_ARM) DeepCopy() *ContainerServiceNetworkProfile_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile_STATUS) DeepCopyInto(out *ContainerServiceNetworkProfile_STATUS) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]ContainerServiceNetworkProfile_IpFamilies_STATUS, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(ContainerServiceNetworkProfile_LoadBalancerSku_STATUS) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(ContainerServiceNetworkProfile_NetworkDataplane_STATUS) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(ContainerServiceNetworkProfile_NetworkMode_STATUS) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(ContainerServiceNetworkProfile_NetworkPlugin_STATUS) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(ContainerServiceNetworkProfile_NetworkPluginMode_STATUS) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(ContainerServiceNetworkProfile_NetworkPolicy_STATUS) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(ContainerServiceNetworkProfile_OutboundType_STATUS) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile_STATUS. +func (in *ContainerServiceNetworkProfile_STATUS) DeepCopy() *ContainerServiceNetworkProfile_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceNetworkProfile_STATUS_ARM) DeepCopyInto(out *ContainerServiceNetworkProfile_STATUS_ARM) { + *out = *in + if in.DnsServiceIP != nil { + in, out := &in.DnsServiceIP, &out.DnsServiceIP + *out = new(string) + **out = **in + } + if in.IpFamilies != nil { + in, out := &in.IpFamilies, &out.IpFamilies + *out = make([]ContainerServiceNetworkProfile_IpFamilies_STATUS, len(*in)) + copy(*out, *in) + } + if in.LoadBalancerProfile != nil { + in, out := &in.LoadBalancerProfile, &out.LoadBalancerProfile + *out = new(ManagedClusterLoadBalancerProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.LoadBalancerSku != nil { + in, out := &in.LoadBalancerSku, &out.LoadBalancerSku + *out = new(ContainerServiceNetworkProfile_LoadBalancerSku_STATUS) + **out = **in + } + if in.NatGatewayProfile != nil { + in, out := &in.NatGatewayProfile, &out.NatGatewayProfile + *out = new(ManagedClusterNATGatewayProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.NetworkDataplane != nil { + in, out := &in.NetworkDataplane, &out.NetworkDataplane + *out = new(ContainerServiceNetworkProfile_NetworkDataplane_STATUS) + **out = **in + } + if in.NetworkMode != nil { + in, out := &in.NetworkMode, &out.NetworkMode + *out = new(ContainerServiceNetworkProfile_NetworkMode_STATUS) + **out = **in + } + if in.NetworkPlugin != nil { + in, out := &in.NetworkPlugin, &out.NetworkPlugin + *out = new(ContainerServiceNetworkProfile_NetworkPlugin_STATUS) + **out = **in + } + if in.NetworkPluginMode != nil { + in, out := &in.NetworkPluginMode, &out.NetworkPluginMode + *out = new(ContainerServiceNetworkProfile_NetworkPluginMode_STATUS) + **out = **in + } + if in.NetworkPolicy != nil { + in, out := &in.NetworkPolicy, &out.NetworkPolicy + *out = new(ContainerServiceNetworkProfile_NetworkPolicy_STATUS) + **out = **in + } + if in.OutboundType != nil { + in, out := &in.OutboundType, &out.OutboundType + *out = new(ContainerServiceNetworkProfile_OutboundType_STATUS) + **out = **in + } + if in.PodCidr != nil { + in, out := &in.PodCidr, &out.PodCidr + *out = new(string) + **out = **in + } + if in.PodCidrs != nil { + in, out := &in.PodCidrs, &out.PodCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ServiceCidr != nil { + in, out := &in.ServiceCidr, &out.ServiceCidr + *out = new(string) + **out = **in + } + if in.ServiceCidrs != nil { + in, out := &in.ServiceCidrs, &out.ServiceCidrs + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceNetworkProfile_STATUS_ARM. +func (in *ContainerServiceNetworkProfile_STATUS_ARM) DeepCopy() *ContainerServiceNetworkProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceNetworkProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration) DeepCopyInto(out *ContainerServiceSshConfiguration) { + *out = *in + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration. +func (in *ContainerServiceSshConfiguration) DeepCopy() *ContainerServiceSshConfiguration { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration_ARM) DeepCopyInto(out *ContainerServiceSshConfiguration_ARM) { + *out = *in + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration_ARM. +func (in *ContainerServiceSshConfiguration_ARM) DeepCopy() *ContainerServiceSshConfiguration_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration_STATUS) DeepCopyInto(out *ContainerServiceSshConfiguration_STATUS) { + *out = *in + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration_STATUS. +func (in *ContainerServiceSshConfiguration_STATUS) DeepCopy() *ContainerServiceSshConfiguration_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshConfiguration_STATUS_ARM) DeepCopyInto(out *ContainerServiceSshConfiguration_STATUS_ARM) { + *out = *in + if in.PublicKeys != nil { + in, out := &in.PublicKeys, &out.PublicKeys + *out = make([]ContainerServiceSshPublicKey_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshConfiguration_STATUS_ARM. +func (in *ContainerServiceSshConfiguration_STATUS_ARM) DeepCopy() *ContainerServiceSshConfiguration_STATUS_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceSshConfiguration_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey) DeepCopyInto(out *ContainerServiceSshPublicKey) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey. +func (in *ContainerServiceSshPublicKey) DeepCopy() *ContainerServiceSshPublicKey { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey_ARM) DeepCopyInto(out *ContainerServiceSshPublicKey_ARM) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey_ARM. +func (in *ContainerServiceSshPublicKey_ARM) DeepCopy() *ContainerServiceSshPublicKey_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey_STATUS) DeepCopyInto(out *ContainerServiceSshPublicKey_STATUS) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey_STATUS. +func (in *ContainerServiceSshPublicKey_STATUS) DeepCopy() *ContainerServiceSshPublicKey_STATUS { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ContainerServiceSshPublicKey_STATUS_ARM) DeepCopyInto(out *ContainerServiceSshPublicKey_STATUS_ARM) { + *out = *in + if in.KeyData != nil { + in, out := &in.KeyData, &out.KeyData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerServiceSshPublicKey_STATUS_ARM. +func (in *ContainerServiceSshPublicKey_STATUS_ARM) DeepCopy() *ContainerServiceSshPublicKey_STATUS_ARM { + if in == nil { + return nil + } + out := new(ContainerServiceSshPublicKey_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData) DeepCopyInto(out *CreationData) { + *out = *in + if in.SourceResourceReference != nil { + in, out := &in.SourceResourceReference, &out.SourceResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData. +func (in *CreationData) DeepCopy() *CreationData { + if in == nil { + return nil + } + out := new(CreationData) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData_ARM) DeepCopyInto(out *CreationData_ARM) { + *out = *in + if in.SourceResourceId != nil { + in, out := &in.SourceResourceId, &out.SourceResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData_ARM. +func (in *CreationData_ARM) DeepCopy() *CreationData_ARM { + if in == nil { + return nil + } + out := new(CreationData_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData_STATUS) DeepCopyInto(out *CreationData_STATUS) { + *out = *in + if in.SourceResourceId != nil { + in, out := &in.SourceResourceId, &out.SourceResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData_STATUS. +func (in *CreationData_STATUS) DeepCopy() *CreationData_STATUS { + if in == nil { + return nil + } + out := new(CreationData_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CreationData_STATUS_ARM) DeepCopyInto(out *CreationData_STATUS_ARM) { + *out = *in + if in.SourceResourceId != nil { + in, out := &in.SourceResourceId, &out.SourceResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreationData_STATUS_ARM. +func (in *CreationData_STATUS_ARM) DeepCopy() *CreationData_STATUS_ARM { + if in == nil { + return nil + } + out := new(CreationData_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource) DeepCopyInto(out *DelegatedResource) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceReference != nil { + in, out := &in.ResourceReference, &out.ResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource. +func (in *DelegatedResource) DeepCopy() *DelegatedResource { + if in == nil { + return nil + } + out := new(DelegatedResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource_ARM) DeepCopyInto(out *DelegatedResource_ARM) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource_ARM. +func (in *DelegatedResource_ARM) DeepCopy() *DelegatedResource_ARM { + if in == nil { + return nil + } + out := new(DelegatedResource_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource_STATUS) DeepCopyInto(out *DelegatedResource_STATUS) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource_STATUS. +func (in *DelegatedResource_STATUS) DeepCopy() *DelegatedResource_STATUS { + if in == nil { + return nil + } + out := new(DelegatedResource_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DelegatedResource_STATUS_ARM) DeepCopyInto(out *DelegatedResource_STATUS_ARM) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ReferralResource != nil { + in, out := &in.ReferralResource, &out.ReferralResource + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DelegatedResource_STATUS_ARM. +func (in *DelegatedResource_STATUS_ARM) DeepCopy() *DelegatedResource_STATUS_ARM { + if in == nil { + return nil + } + out := new(DelegatedResource_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation) DeepCopyInto(out *ExtendedLocation) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ExtendedLocationType) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation. +func (in *ExtendedLocation) DeepCopy() *ExtendedLocation { + if in == nil { + return nil + } + out := new(ExtendedLocation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation_ARM) DeepCopyInto(out *ExtendedLocation_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ExtendedLocationType) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation_ARM. +func (in *ExtendedLocation_ARM) DeepCopy() *ExtendedLocation_ARM { + if in == nil { + return nil + } + out := new(ExtendedLocation_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation_STATUS) DeepCopyInto(out *ExtendedLocation_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ExtendedLocationType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation_STATUS. +func (in *ExtendedLocation_STATUS) DeepCopy() *ExtendedLocation_STATUS { + if in == nil { + return nil + } + out := new(ExtendedLocation_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtendedLocation_STATUS_ARM) DeepCopyInto(out *ExtendedLocation_STATUS_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ExtendedLocationType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedLocation_STATUS_ARM. +func (in *ExtendedLocation_STATUS_ARM) DeepCopy() *ExtendedLocation_STATUS_ARM { + if in == nil { + return nil + } + out := new(ExtendedLocation_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag) DeepCopyInto(out *IPTag) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag. +func (in *IPTag) DeepCopy() *IPTag { + if in == nil { + return nil + } + out := new(IPTag) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag_ARM) DeepCopyInto(out *IPTag_ARM) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag_ARM. +func (in *IPTag_ARM) DeepCopy() *IPTag_ARM { + if in == nil { + return nil + } + out := new(IPTag_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag_STATUS) DeepCopyInto(out *IPTag_STATUS) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag_STATUS. +func (in *IPTag_STATUS) DeepCopy() *IPTag_STATUS { + if in == nil { + return nil + } + out := new(IPTag_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPTag_STATUS_ARM) DeepCopyInto(out *IPTag_STATUS_ARM) { + *out = *in + if in.IpTagType != nil { + in, out := &in.IpTagType, &out.IpTagType + *out = new(string) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPTag_STATUS_ARM. +func (in *IPTag_STATUS_ARM) DeepCopy() *IPTag_STATUS_ARM { + if in == nil { + return nil + } + out := new(IPTag_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority) DeepCopyInto(out *IstioCertificateAuthority) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority. +func (in *IstioCertificateAuthority) DeepCopy() *IstioCertificateAuthority { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority_ARM) DeepCopyInto(out *IstioCertificateAuthority_ARM) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority_ARM. +func (in *IstioCertificateAuthority_ARM) DeepCopy() *IstioCertificateAuthority_ARM { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority_STATUS) DeepCopyInto(out *IstioCertificateAuthority_STATUS) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority_STATUS. +func (in *IstioCertificateAuthority_STATUS) DeepCopy() *IstioCertificateAuthority_STATUS { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioCertificateAuthority_STATUS_ARM) DeepCopyInto(out *IstioCertificateAuthority_STATUS_ARM) { + *out = *in + if in.Plugin != nil { + in, out := &in.Plugin, &out.Plugin + *out = new(IstioPluginCertificateAuthority_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioCertificateAuthority_STATUS_ARM. +func (in *IstioCertificateAuthority_STATUS_ARM) DeepCopy() *IstioCertificateAuthority_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioCertificateAuthority_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents) DeepCopyInto(out *IstioComponents) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents. +func (in *IstioComponents) DeepCopy() *IstioComponents { + if in == nil { + return nil + } + out := new(IstioComponents) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents_ARM) DeepCopyInto(out *IstioComponents_ARM) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents_ARM. +func (in *IstioComponents_ARM) DeepCopy() *IstioComponents_ARM { + if in == nil { + return nil + } + out := new(IstioComponents_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents_STATUS) DeepCopyInto(out *IstioComponents_STATUS) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents_STATUS. +func (in *IstioComponents_STATUS) DeepCopy() *IstioComponents_STATUS { + if in == nil { + return nil + } + out := new(IstioComponents_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioComponents_STATUS_ARM) DeepCopyInto(out *IstioComponents_STATUS_ARM) { + *out = *in + if in.EgressGateways != nil { + in, out := &in.EgressGateways, &out.EgressGateways + *out = make([]IstioEgressGateway_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IngressGateways != nil { + in, out := &in.IngressGateways, &out.IngressGateways + *out = make([]IstioIngressGateway_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioComponents_STATUS_ARM. +func (in *IstioComponents_STATUS_ARM) DeepCopy() *IstioComponents_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioComponents_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway) DeepCopyInto(out *IstioEgressGateway) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway. +func (in *IstioEgressGateway) DeepCopy() *IstioEgressGateway { + if in == nil { + return nil + } + out := new(IstioEgressGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway_ARM) DeepCopyInto(out *IstioEgressGateway_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway_ARM. +func (in *IstioEgressGateway_ARM) DeepCopy() *IstioEgressGateway_ARM { + if in == nil { + return nil + } + out := new(IstioEgressGateway_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway_STATUS) DeepCopyInto(out *IstioEgressGateway_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway_STATUS. +func (in *IstioEgressGateway_STATUS) DeepCopy() *IstioEgressGateway_STATUS { + if in == nil { + return nil + } + out := new(IstioEgressGateway_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioEgressGateway_STATUS_ARM) DeepCopyInto(out *IstioEgressGateway_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NodeSelector != nil { + in, out := &in.NodeSelector, &out.NodeSelector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioEgressGateway_STATUS_ARM. +func (in *IstioEgressGateway_STATUS_ARM) DeepCopy() *IstioEgressGateway_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioEgressGateway_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway) DeepCopyInto(out *IstioIngressGateway) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(IstioIngressGateway_Mode) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway. +func (in *IstioIngressGateway) DeepCopy() *IstioIngressGateway { + if in == nil { + return nil + } + out := new(IstioIngressGateway) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway_ARM) DeepCopyInto(out *IstioIngressGateway_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(IstioIngressGateway_Mode) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway_ARM. +func (in *IstioIngressGateway_ARM) DeepCopy() *IstioIngressGateway_ARM { + if in == nil { + return nil + } + out := new(IstioIngressGateway_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway_STATUS) DeepCopyInto(out *IstioIngressGateway_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(IstioIngressGateway_Mode_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway_STATUS. +func (in *IstioIngressGateway_STATUS) DeepCopy() *IstioIngressGateway_STATUS { + if in == nil { + return nil + } + out := new(IstioIngressGateway_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioIngressGateway_STATUS_ARM) DeepCopyInto(out *IstioIngressGateway_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(IstioIngressGateway_Mode_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioIngressGateway_STATUS_ARM. +func (in *IstioIngressGateway_STATUS_ARM) DeepCopy() *IstioIngressGateway_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioIngressGateway_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority) DeepCopyInto(out *IstioPluginCertificateAuthority) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultReference != nil { + in, out := &in.KeyVaultReference, &out.KeyVaultReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority. +func (in *IstioPluginCertificateAuthority) DeepCopy() *IstioPluginCertificateAuthority { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority_ARM) DeepCopyInto(out *IstioPluginCertificateAuthority_ARM) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority_ARM. +func (in *IstioPluginCertificateAuthority_ARM) DeepCopy() *IstioPluginCertificateAuthority_ARM { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority_STATUS) DeepCopyInto(out *IstioPluginCertificateAuthority_STATUS) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority_STATUS. +func (in *IstioPluginCertificateAuthority_STATUS) DeepCopy() *IstioPluginCertificateAuthority_STATUS { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioPluginCertificateAuthority_STATUS_ARM) DeepCopyInto(out *IstioPluginCertificateAuthority_STATUS_ARM) { + *out = *in + if in.CertChainObjectName != nil { + in, out := &in.CertChainObjectName, &out.CertChainObjectName + *out = new(string) + **out = **in + } + if in.CertObjectName != nil { + in, out := &in.CertObjectName, &out.CertObjectName + *out = new(string) + **out = **in + } + if in.KeyObjectName != nil { + in, out := &in.KeyObjectName, &out.KeyObjectName + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.RootCertObjectName != nil { + in, out := &in.RootCertObjectName, &out.RootCertObjectName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioPluginCertificateAuthority_STATUS_ARM. +func (in *IstioPluginCertificateAuthority_STATUS_ARM) DeepCopy() *IstioPluginCertificateAuthority_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioPluginCertificateAuthority_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh) DeepCopyInto(out *IstioServiceMesh) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents) + (*in).DeepCopyInto(*out) + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh. +func (in *IstioServiceMesh) DeepCopy() *IstioServiceMesh { + if in == nil { + return nil + } + out := new(IstioServiceMesh) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh_ARM) DeepCopyInto(out *IstioServiceMesh_ARM) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority_ARM) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents_ARM) + (*in).DeepCopyInto(*out) + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh_ARM. +func (in *IstioServiceMesh_ARM) DeepCopy() *IstioServiceMesh_ARM { + if in == nil { + return nil + } + out := new(IstioServiceMesh_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh_STATUS) DeepCopyInto(out *IstioServiceMesh_STATUS) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh_STATUS. +func (in *IstioServiceMesh_STATUS) DeepCopy() *IstioServiceMesh_STATUS { + if in == nil { + return nil + } + out := new(IstioServiceMesh_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IstioServiceMesh_STATUS_ARM) DeepCopyInto(out *IstioServiceMesh_STATUS_ARM) { + *out = *in + if in.CertificateAuthority != nil { + in, out := &in.CertificateAuthority, &out.CertificateAuthority + *out = new(IstioCertificateAuthority_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Components != nil { + in, out := &in.Components, &out.Components + *out = new(IstioComponents_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Revisions != nil { + in, out := &in.Revisions, &out.Revisions + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IstioServiceMesh_STATUS_ARM. +func (in *IstioServiceMesh_STATUS_ARM) DeepCopy() *IstioServiceMesh_STATUS_ARM { + if in == nil { + return nil + } + out := new(IstioServiceMesh_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig. +func (in *KubeletConfig) DeepCopy() *KubeletConfig { + if in == nil { + return nil + } + out := new(KubeletConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig_ARM) DeepCopyInto(out *KubeletConfig_ARM) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig_ARM. +func (in *KubeletConfig_ARM) DeepCopy() *KubeletConfig_ARM { + if in == nil { + return nil + } + out := new(KubeletConfig_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig_STATUS) DeepCopyInto(out *KubeletConfig_STATUS) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig_STATUS. +func (in *KubeletConfig_STATUS) DeepCopy() *KubeletConfig_STATUS { + if in == nil { + return nil + } + out := new(KubeletConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig_STATUS_ARM) DeepCopyInto(out *KubeletConfig_STATUS_ARM) { + *out = *in + if in.AllowedUnsafeSysctls != nil { + in, out := &in.AllowedUnsafeSysctls, &out.AllowedUnsafeSysctls + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ContainerLogMaxFiles != nil { + in, out := &in.ContainerLogMaxFiles, &out.ContainerLogMaxFiles + *out = new(int) + **out = **in + } + if in.ContainerLogMaxSizeMB != nil { + in, out := &in.ContainerLogMaxSizeMB, &out.ContainerLogMaxSizeMB + *out = new(int) + **out = **in + } + if in.CpuCfsQuota != nil { + in, out := &in.CpuCfsQuota, &out.CpuCfsQuota + *out = new(bool) + **out = **in + } + if in.CpuCfsQuotaPeriod != nil { + in, out := &in.CpuCfsQuotaPeriod, &out.CpuCfsQuotaPeriod + *out = new(string) + **out = **in + } + if in.CpuManagerPolicy != nil { + in, out := &in.CpuManagerPolicy, &out.CpuManagerPolicy + *out = new(string) + **out = **in + } + if in.FailSwapOn != nil { + in, out := &in.FailSwapOn, &out.FailSwapOn + *out = new(bool) + **out = **in + } + if in.ImageGcHighThreshold != nil { + in, out := &in.ImageGcHighThreshold, &out.ImageGcHighThreshold + *out = new(int) + **out = **in + } + if in.ImageGcLowThreshold != nil { + in, out := &in.ImageGcLowThreshold, &out.ImageGcLowThreshold + *out = new(int) + **out = **in + } + if in.PodMaxPids != nil { + in, out := &in.PodMaxPids, &out.PodMaxPids + *out = new(int) + **out = **in + } + if in.TopologyManagerPolicy != nil { + in, out := &in.TopologyManagerPolicy, &out.TopologyManagerPolicy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig_STATUS_ARM. +func (in *KubeletConfig_STATUS_ARM) DeepCopy() *KubeletConfig_STATUS_ARM { + if in == nil { + return nil + } + out := new(KubeletConfig_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig) DeepCopyInto(out *LinuxOSConfig) { + *out = *in + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig. +func (in *LinuxOSConfig) DeepCopy() *LinuxOSConfig { + if in == nil { + return nil + } + out := new(LinuxOSConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig_ARM) DeepCopyInto(out *LinuxOSConfig_ARM) { + *out = *in + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig_ARM. +func (in *LinuxOSConfig_ARM) DeepCopy() *LinuxOSConfig_ARM { + if in == nil { + return nil + } + out := new(LinuxOSConfig_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig_STATUS) DeepCopyInto(out *LinuxOSConfig_STATUS) { + *out = *in + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig_STATUS. +func (in *LinuxOSConfig_STATUS) DeepCopy() *LinuxOSConfig_STATUS { + if in == nil { + return nil + } + out := new(LinuxOSConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinuxOSConfig_STATUS_ARM) DeepCopyInto(out *LinuxOSConfig_STATUS_ARM) { + *out = *in + if in.SwapFileSizeMB != nil { + in, out := &in.SwapFileSizeMB, &out.SwapFileSizeMB + *out = new(int) + **out = **in + } + if in.Sysctls != nil { + in, out := &in.Sysctls, &out.Sysctls + *out = new(SysctlConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.TransparentHugePageDefrag != nil { + in, out := &in.TransparentHugePageDefrag, &out.TransparentHugePageDefrag + *out = new(string) + **out = **in + } + if in.TransparentHugePageEnabled != nil { + in, out := &in.TransparentHugePageEnabled, &out.TransparentHugePageEnabled + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxOSConfig_STATUS_ARM. +func (in *LinuxOSConfig_STATUS_ARM) DeepCopy() *LinuxOSConfig_STATUS_ARM { + if in == nil { + return nil + } + out := new(LinuxOSConfig_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster) DeepCopyInto(out *ManagedCluster) { + *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 ManagedCluster. +func (in *ManagedCluster) DeepCopy() *ManagedCluster { + if in == nil { + return nil + } + out := new(ManagedCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedCluster) 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 *ManagedClusterAADProfile) DeepCopyInto(out *ManagedClusterAADProfile) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile. +func (in *ManagedClusterAADProfile) DeepCopy() *ManagedClusterAADProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAADProfile_ARM) DeepCopyInto(out *ManagedClusterAADProfile_ARM) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile_ARM. +func (in *ManagedClusterAADProfile_ARM) DeepCopy() *ManagedClusterAADProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAADProfile_STATUS) DeepCopyInto(out *ManagedClusterAADProfile_STATUS) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile_STATUS. +func (in *ManagedClusterAADProfile_STATUS) DeepCopy() *ManagedClusterAADProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAADProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAADProfile_STATUS_ARM) { + *out = *in + if in.AdminGroupObjectIDs != nil { + in, out := &in.AdminGroupObjectIDs, &out.AdminGroupObjectIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ClientAppID != nil { + in, out := &in.ClientAppID, &out.ClientAppID + *out = new(string) + **out = **in + } + if in.EnableAzureRBAC != nil { + in, out := &in.EnableAzureRBAC, &out.EnableAzureRBAC + *out = new(bool) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } + if in.ServerAppID != nil { + in, out := &in.ServerAppID, &out.ServerAppID + *out = new(string) + **out = **in + } + if in.ServerAppSecret != nil { + in, out := &in.ServerAppSecret, &out.ServerAppSecret + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAADProfile_STATUS_ARM. +func (in *ManagedClusterAADProfile_STATUS_ARM) DeepCopy() *ManagedClusterAADProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAADProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile. +func (in *ManagedClusterAPIServerAccessProfile) DeepCopy() *ManagedClusterAPIServerAccessProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile_ARM) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile_ARM) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile_ARM. +func (in *ManagedClusterAPIServerAccessProfile_ARM) DeepCopy() *ManagedClusterAPIServerAccessProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile_STATUS) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile_STATUS) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile_STATUS. +func (in *ManagedClusterAPIServerAccessProfile_STATUS) DeepCopy() *ManagedClusterAPIServerAccessProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAPIServerAccessProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAPIServerAccessProfile_STATUS_ARM) { + *out = *in + if in.AuthorizedIPRanges != nil { + in, out := &in.AuthorizedIPRanges, &out.AuthorizedIPRanges + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.DisableRunCommand != nil { + in, out := &in.DisableRunCommand, &out.DisableRunCommand + *out = new(bool) + **out = **in + } + if in.EnablePrivateCluster != nil { + in, out := &in.EnablePrivateCluster, &out.EnablePrivateCluster + *out = new(bool) + **out = **in + } + if in.EnablePrivateClusterPublicFQDN != nil { + in, out := &in.EnablePrivateClusterPublicFQDN, &out.EnablePrivateClusterPublicFQDN + *out = new(bool) + **out = **in + } + if in.PrivateDNSZone != nil { + in, out := &in.PrivateDNSZone, &out.PrivateDNSZone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAPIServerAccessProfile_STATUS_ARM. +func (in *ManagedClusterAPIServerAccessProfile_STATUS_ARM) DeepCopy() *ManagedClusterAPIServerAccessProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAPIServerAccessProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile) DeepCopyInto(out *ManagedClusterAddonProfile) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile. +func (in *ManagedClusterAddonProfile) DeepCopy() *ManagedClusterAddonProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile_ARM) DeepCopyInto(out *ManagedClusterAddonProfile_ARM) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile_ARM. +func (in *ManagedClusterAddonProfile_ARM) DeepCopy() *ManagedClusterAddonProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile_STATUS) DeepCopyInto(out *ManagedClusterAddonProfile_STATUS) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile_STATUS. +func (in *ManagedClusterAddonProfile_STATUS) DeepCopy() *ManagedClusterAddonProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAddonProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAddonProfile_STATUS_ARM) { + *out = *in + if in.Config != nil { + in, out := &in.Config, &out.Config + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAddonProfile_STATUS_ARM. +func (in *ManagedClusterAddonProfile_STATUS_ARM) DeepCopy() *ManagedClusterAddonProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAddonProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile) DeepCopyInto(out *ManagedClusterAgentPoolProfile) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupReference != nil { + in, out := &in.CapacityReservationGroupReference, &out.CapacityReservationGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile) + **out = **in + } + if in.HostGroupReference != nil { + in, out := &in.HostGroupReference, &out.HostGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixReference != nil { + in, out := &in.NodePublicIPPrefixReference, &out.NodePublicIPPrefixReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(ContainerServiceOSDisk) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType) + **out = **in + } + if in.PodSubnetReference != nil { + in, out := &in.PodSubnetReference, &out.PodSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState) + (*in).DeepCopyInto(*out) + } + if in.ProximityPlacementGroupReference != nil { + in, out := &in.ProximityPlacementGroupReference, &out.ProximityPlacementGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetReference != nil { + in, out := &in.VnetSubnetReference, &out.VnetSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile. +func (in *ManagedClusterAgentPoolProfile) DeepCopy() *ManagedClusterAgentPoolProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfileProperties_ARM) DeepCopyInto(out *ManagedClusterAgentPoolProfileProperties_ARM) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_ARM) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(ContainerServiceOSDisk) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_ARM) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfileProperties_ARM. +func (in *ManagedClusterAgentPoolProfileProperties_ARM) DeepCopy() *ManagedClusterAgentPoolProfileProperties_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfileProperties_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfileProperties_STATUS_ARM) DeepCopyInto(out *ManagedClusterAgentPoolProfileProperties_STATUS_ARM) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile_STATUS) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType_STATUS) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode_STATUS) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType_STATUS) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU_STATUS) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType_STATUS) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode_STATUS) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy_STATUS) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority_STATUS) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType_STATUS) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfileProperties_STATUS_ARM. +func (in *ManagedClusterAgentPoolProfileProperties_STATUS_ARM) DeepCopy() *ManagedClusterAgentPoolProfileProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfileProperties_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile_ARM) DeepCopyInto(out *ManagedClusterAgentPoolProfile_ARM) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_ARM) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(ContainerServiceOSDisk) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_ARM) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile_ARM. +func (in *ManagedClusterAgentPoolProfile_ARM) DeepCopy() *ManagedClusterAgentPoolProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile_STATUS) DeepCopyInto(out *ManagedClusterAgentPoolProfile_STATUS) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile_STATUS) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType_STATUS) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode_STATUS) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType_STATUS) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU_STATUS) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType_STATUS) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode_STATUS) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy_STATUS) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority_STATUS) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType_STATUS) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile_STATUS. +func (in *ManagedClusterAgentPoolProfile_STATUS) DeepCopy() *ManagedClusterAgentPoolProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAgentPoolProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAgentPoolProfile_STATUS_ARM) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile_STATUS) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType_STATUS) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode_STATUS) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType_STATUS) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU_STATUS) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType_STATUS) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode_STATUS) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy_STATUS) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority_STATUS) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType_STATUS) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAgentPoolProfile_STATUS_ARM. +func (in *ManagedClusterAgentPoolProfile_STATUS_ARM) DeepCopy() *ManagedClusterAgentPoolProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAgentPoolProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel) + **out = **in + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_UpgradeChannel) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile. +func (in *ManagedClusterAutoUpgradeProfile) DeepCopy() *ManagedClusterAutoUpgradeProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile_ARM) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile_ARM) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel) + **out = **in + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_UpgradeChannel) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile_ARM. +func (in *ManagedClusterAutoUpgradeProfile_ARM) DeepCopy() *ManagedClusterAutoUpgradeProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile_STATUS) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile_STATUS) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS) + **out = **in + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile_STATUS. +func (in *ManagedClusterAutoUpgradeProfile_STATUS) DeepCopy() *ManagedClusterAutoUpgradeProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAutoUpgradeProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAutoUpgradeProfile_STATUS_ARM) { + *out = *in + if in.NodeOSUpgradeChannel != nil { + in, out := &in.NodeOSUpgradeChannel, &out.NodeOSUpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS) + **out = **in + } + if in.UpgradeChannel != nil { + in, out := &in.UpgradeChannel, &out.UpgradeChannel + *out = new(ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAutoUpgradeProfile_STATUS_ARM. +func (in *ManagedClusterAutoUpgradeProfile_STATUS_ARM) DeepCopy() *ManagedClusterAutoUpgradeProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAutoUpgradeProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile) DeepCopyInto(out *ManagedClusterAzureMonitorProfile) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile. +func (in *ManagedClusterAzureMonitorProfile) DeepCopy() *ManagedClusterAzureMonitorProfile { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) { + *out = *in + if in.MetricAnnotationsAllowList != nil { + in, out := &in.MetricAnnotationsAllowList, &out.MetricAnnotationsAllowList + *out = new(string) + **out = **in + } + if in.MetricLabelsAllowlist != nil { + in, out := &in.MetricLabelsAllowlist, &out.MetricLabelsAllowlist + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM. +func (in *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) DeepCopy() *ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics. +func (in *ManagedClusterAzureMonitorProfileMetrics) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics_ARM. +func (in *ManagedClusterAzureMonitorProfileMetrics_ARM) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics_STATUS. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.KubeStateMetrics != nil { + in, out := &in.KubeStateMetrics, &out.KubeStateMetrics + *out = new(ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM. +func (in *ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) DeepCopy() *ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfile_ARM) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile_ARM. +func (in *ManagedClusterAzureMonitorProfile_ARM) DeepCopy() *ManagedClusterAzureMonitorProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile_STATUS) DeepCopyInto(out *ManagedClusterAzureMonitorProfile_STATUS) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile_STATUS. +func (in *ManagedClusterAzureMonitorProfile_STATUS) DeepCopy() *ManagedClusterAzureMonitorProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterAzureMonitorProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterAzureMonitorProfile_STATUS_ARM) { + *out = *in + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(ManagedClusterAzureMonitorProfileMetrics_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterAzureMonitorProfile_STATUS_ARM. +func (in *ManagedClusterAzureMonitorProfile_STATUS_ARM) DeepCopy() *ManagedClusterAzureMonitorProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterAzureMonitorProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig) DeepCopyInto(out *ManagedClusterHTTPProxyConfig) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig. +func (in *ManagedClusterHTTPProxyConfig) DeepCopy() *ManagedClusterHTTPProxyConfig { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig_ARM) DeepCopyInto(out *ManagedClusterHTTPProxyConfig_ARM) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig_ARM. +func (in *ManagedClusterHTTPProxyConfig_ARM) DeepCopy() *ManagedClusterHTTPProxyConfig_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig_STATUS) DeepCopyInto(out *ManagedClusterHTTPProxyConfig_STATUS) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig_STATUS. +func (in *ManagedClusterHTTPProxyConfig_STATUS) DeepCopy() *ManagedClusterHTTPProxyConfig_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterHTTPProxyConfig_STATUS_ARM) DeepCopyInto(out *ManagedClusterHTTPProxyConfig_STATUS_ARM) { + *out = *in + if in.HttpProxy != nil { + in, out := &in.HttpProxy, &out.HttpProxy + *out = new(string) + **out = **in + } + if in.HttpsProxy != nil { + in, out := &in.HttpsProxy, &out.HttpsProxy + *out = new(string) + **out = **in + } + if in.NoProxy != nil { + in, out := &in.NoProxy, &out.NoProxy + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.TrustedCa != nil { + in, out := &in.TrustedCa, &out.TrustedCa + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterHTTPProxyConfig_STATUS_ARM. +func (in *ManagedClusterHTTPProxyConfig_STATUS_ARM) DeepCopy() *ManagedClusterHTTPProxyConfig_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterHTTPProxyConfig_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity) DeepCopyInto(out *ManagedClusterIdentity) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ManagedClusterIdentity_Type) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]UserAssignedIdentityDetails, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity. +func (in *ManagedClusterIdentity) DeepCopy() *ManagedClusterIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_ARM) DeepCopyInto(out *ManagedClusterIdentity_ARM) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ManagedClusterIdentity_Type) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]UserAssignedIdentityDetails_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_ARM. +func (in *ManagedClusterIdentity_ARM) DeepCopy() *ManagedClusterIdentity_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_STATUS) DeepCopyInto(out *ManagedClusterIdentity_STATUS) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ManagedClusterIdentity_Type_STATUS) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_STATUS. +func (in *ManagedClusterIdentity_STATUS) DeepCopy() *ManagedClusterIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_STATUS_ARM) DeepCopyInto(out *ManagedClusterIdentity_STATUS_ARM) { + *out = *in + if in.DelegatedResources != nil { + in, out := &in.DelegatedResources, &out.DelegatedResources + *out = make(map[string]DelegatedResource_STATUS_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ManagedClusterIdentity_Type_STATUS) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_STATUS_ARM. +func (in *ManagedClusterIdentity_STATUS_ARM) DeepCopy() *ManagedClusterIdentity_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS) DeepCopyInto(out *ManagedClusterIdentity_UserAssignedIdentities_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_UserAssignedIdentities_STATUS. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS) DeepCopy() *ManagedClusterIdentity_UserAssignedIdentities_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_UserAssignedIdentities_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) DeepCopyInto(out *ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM. +func (in *ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) DeepCopy() *ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterIdentity_UserAssignedIdentities_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterList) DeepCopyInto(out *ManagedClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ManagedCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterList. +func (in *ManagedClusterList) DeepCopy() *ManagedClusterList { + if in == nil { + return nil + } + out := new(ManagedClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClusterList) 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 *ManagedClusterLoadBalancerProfile) DeepCopyInto(out *ManagedClusterLoadBalancerProfile) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(ManagedClusterLoadBalancerProfile_BackendPoolType) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile. +func (in *ManagedClusterLoadBalancerProfile) DeepCopy() *ManagedClusterLoadBalancerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ARM) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(ManagedClusterLoadBalancerProfile_BackendPoolType) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ARM. +func (in *ManagedClusterLoadBalancerProfile_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CountIPv6 != nil { + in, out := &in.CountIPv6, &out.CountIPv6 + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM. +func (in *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) { + *out = *in + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) { + *out = *in + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) { + *out = *in + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) { + *out = *in + if in.PublicIPPrefixes != nil { + in, out := &in.PublicIPPrefixes, &out.PublicIPPrefixes + *out = make([]ResourceReference_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs) { + *out = *in + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) { + *out = *in + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs_ARM. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) { + *out = *in + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) { + *out = *in + if in.PublicIPs != nil { + in, out := &in.PublicIPs, &out.PublicIPs + *out = make([]ResourceReference_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM. +func (in *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_STATUS) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_STATUS) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_STATUS. +func (in *ManagedClusterLoadBalancerProfile_STATUS) DeepCopy() *ManagedClusterLoadBalancerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterLoadBalancerProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterLoadBalancerProfile_STATUS_ARM) { + *out = *in + if in.AllocatedOutboundPorts != nil { + in, out := &in.AllocatedOutboundPorts, &out.AllocatedOutboundPorts + *out = new(int) + **out = **in + } + if in.BackendPoolType != nil { + in, out := &in.BackendPoolType, &out.BackendPoolType + *out = new(ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS) + **out = **in + } + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EnableMultipleStandardLoadBalancers != nil { + in, out := &in.EnableMultipleStandardLoadBalancers, &out.EnableMultipleStandardLoadBalancers + *out = new(bool) + **out = **in + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPs != nil { + in, out := &in.ManagedOutboundIPs, &out.ManagedOutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPPrefixes != nil { + in, out := &in.OutboundIPPrefixes, &out.OutboundIPPrefixes + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.OutboundIPs != nil { + in, out := &in.OutboundIPs, &out.OutboundIPs + *out = new(ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterLoadBalancerProfile_STATUS_ARM. +func (in *ManagedClusterLoadBalancerProfile_STATUS_ARM) DeepCopy() *ManagedClusterLoadBalancerProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterLoadBalancerProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile. +func (in *ManagedClusterManagedOutboundIPProfile) DeepCopy() *ManagedClusterManagedOutboundIPProfile { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile_ARM) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile_ARM) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile_ARM. +func (in *ManagedClusterManagedOutboundIPProfile_ARM) DeepCopy() *ManagedClusterManagedOutboundIPProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile_STATUS) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile_STATUS. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS) DeepCopy() *ManagedClusterManagedOutboundIPProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterManagedOutboundIPProfile_STATUS_ARM) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterManagedOutboundIPProfile_STATUS_ARM. +func (in *ManagedClusterManagedOutboundIPProfile_STATUS_ARM) DeepCopy() *ManagedClusterManagedOutboundIPProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterManagedOutboundIPProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile) DeepCopyInto(out *ManagedClusterNATGatewayProfile) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile. +func (in *ManagedClusterNATGatewayProfile) DeepCopy() *ManagedClusterNATGatewayProfile { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile_ARM) DeepCopyInto(out *ManagedClusterNATGatewayProfile_ARM) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile_ARM. +func (in *ManagedClusterNATGatewayProfile_ARM) DeepCopy() *ManagedClusterNATGatewayProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile_STATUS) DeepCopyInto(out *ManagedClusterNATGatewayProfile_STATUS) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile_STATUS. +func (in *ManagedClusterNATGatewayProfile_STATUS) DeepCopy() *ManagedClusterNATGatewayProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterNATGatewayProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterNATGatewayProfile_STATUS_ARM) { + *out = *in + if in.EffectiveOutboundIPs != nil { + in, out := &in.EffectiveOutboundIPs, &out.EffectiveOutboundIPs + *out = make([]ResourceReference_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IdleTimeoutInMinutes != nil { + in, out := &in.IdleTimeoutInMinutes, &out.IdleTimeoutInMinutes + *out = new(int) + **out = **in + } + if in.ManagedOutboundIPProfile != nil { + in, out := &in.ManagedOutboundIPProfile, &out.ManagedOutboundIPProfile + *out = new(ManagedClusterManagedOutboundIPProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterNATGatewayProfile_STATUS_ARM. +func (in *ManagedClusterNATGatewayProfile_STATUS_ARM) DeepCopy() *ManagedClusterNATGatewayProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterNATGatewayProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile. +func (in *ManagedClusterOIDCIssuerProfile) DeepCopy() *ManagedClusterOIDCIssuerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile_ARM) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile_ARM. +func (in *ManagedClusterOIDCIssuerProfile_ARM) DeepCopy() *ManagedClusterOIDCIssuerProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IssuerURL != nil { + in, out := &in.IssuerURL, &out.IssuerURL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile_STATUS. +func (in *ManagedClusterOIDCIssuerProfile_STATUS) DeepCopy() *ManagedClusterOIDCIssuerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOIDCIssuerProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterOIDCIssuerProfile_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IssuerURL != nil { + in, out := &in.IssuerURL, &out.IssuerURL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOIDCIssuerProfile_STATUS_ARM. +func (in *ManagedClusterOIDCIssuerProfile_STATUS_ARM) DeepCopy() *ManagedClusterOIDCIssuerProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterOIDCIssuerProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorConfigMaps) DeepCopyInto(out *ManagedClusterOperatorConfigMaps) { + *out = *in + if in.OIDCIssuerProfile != nil { + in, out := &in.OIDCIssuerProfile, &out.OIDCIssuerProfile + *out = new(genruntime.ConfigMapDestination) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorConfigMaps. +func (in *ManagedClusterOperatorConfigMaps) DeepCopy() *ManagedClusterOperatorConfigMaps { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorConfigMaps) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorSecrets) DeepCopyInto(out *ManagedClusterOperatorSecrets) { + *out = *in + if in.AdminCredentials != nil { + in, out := &in.AdminCredentials, &out.AdminCredentials + *out = new(genruntime.SecretDestination) + **out = **in + } + if in.UserCredentials != nil { + in, out := &in.UserCredentials, &out.UserCredentials + *out = new(genruntime.SecretDestination) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorSecrets. +func (in *ManagedClusterOperatorSecrets) DeepCopy() *ManagedClusterOperatorSecrets { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorSecrets) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterOperatorSpec) DeepCopyInto(out *ManagedClusterOperatorSpec) { + *out = *in + if in.ConfigMaps != nil { + in, out := &in.ConfigMaps, &out.ConfigMaps + *out = new(ManagedClusterOperatorConfigMaps) + (*in).DeepCopyInto(*out) + } + if in.Secrets != nil { + in, out := &in.Secrets, &out.Secrets + *out = new(ManagedClusterOperatorSecrets) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterOperatorSpec. +func (in *ManagedClusterOperatorSpec) DeepCopy() *ManagedClusterOperatorSpec { + if in == nil { + return nil + } + out := new(ManagedClusterOperatorSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity) DeepCopyInto(out *ManagedClusterPodIdentity) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity. +func (in *ManagedClusterPodIdentity) DeepCopy() *ManagedClusterPodIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException) DeepCopyInto(out *ManagedClusterPodIdentityException) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException. +func (in *ManagedClusterPodIdentityException) DeepCopy() *ManagedClusterPodIdentityException { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException_ARM) DeepCopyInto(out *ManagedClusterPodIdentityException_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException_ARM. +func (in *ManagedClusterPodIdentityException_ARM) DeepCopy() *ManagedClusterPodIdentityException_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityException_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException_STATUS. +func (in *ManagedClusterPodIdentityException_STATUS) DeepCopy() *ManagedClusterPodIdentityException_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityException_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentityException_STATUS_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.PodLabels != nil { + in, out := &in.PodLabels, &out.PodLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityException_STATUS_ARM. +func (in *ManagedClusterPodIdentityException_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentityException_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityException_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile) DeepCopyInto(out *ManagedClusterPodIdentityProfile) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile. +func (in *ManagedClusterPodIdentityProfile) DeepCopy() *ManagedClusterPodIdentityProfile { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile_ARM) DeepCopyInto(out *ManagedClusterPodIdentityProfile_ARM) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile_ARM. +func (in *ManagedClusterPodIdentityProfile_ARM) DeepCopy() *ManagedClusterPodIdentityProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProfile_STATUS) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile_STATUS. +func (in *ManagedClusterPodIdentityProfile_STATUS) DeepCopy() *ManagedClusterPodIdentityProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentityProfile_STATUS_ARM) { + *out = *in + if in.AllowNetworkPluginKubenet != nil { + in, out := &in.AllowNetworkPluginKubenet, &out.AllowNetworkPluginKubenet + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]ManagedClusterPodIdentity_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserAssignedIdentityExceptions != nil { + in, out := &in.UserAssignedIdentityExceptions, &out.UserAssignedIdentityExceptions + *out = make([]ManagedClusterPodIdentityException_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProfile_STATUS_ARM. +func (in *ManagedClusterPodIdentityProfile_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentityProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Details != nil { + in, out := &in.Details, &out.Details + *out = make([]ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(string) + **out = **in + } + if in.Message != nil { + in, out := &in.Message, &out.Message + *out = new(string) + **out = **in + } + if in.Target != nil { + in, out := &in.Target, &out.Target + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM. +func (in *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) DeepCopy() *ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningError_STATUS) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningError_STATUS. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS) DeepCopy() *ManagedClusterPodIdentityProvisioningError_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningError_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentityProvisioningError_STATUS_ARM) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningErrorBody_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentityProvisioningError_STATUS_ARM. +func (in *ManagedClusterPodIdentityProvisioningError_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentityProvisioningError_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentityProvisioningError_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_ARM) DeepCopyInto(out *ManagedClusterPodIdentity_ARM) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_ARM) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_ARM. +func (in *ManagedClusterPodIdentity_ARM) DeepCopy() *ManagedClusterPodIdentity_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) DeepCopyInto(out *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningError_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_ProvisioningInfo_STATUS. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS) DeepCopy() *ManagedClusterPodIdentity_ProvisioningInfo_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) { + *out = *in + if in.Error != nil { + in, out := &in.Error, &out.Error + *out = new(ManagedClusterPodIdentityProvisioningError_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM. +func (in *ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_STATUS) DeepCopyInto(out *ManagedClusterPodIdentity_STATUS) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.ProvisioningInfo != nil { + in, out := &in.ProvisioningInfo, &out.ProvisioningInfo + *out = new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(ManagedClusterPodIdentity_ProvisioningState_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_STATUS. +func (in *ManagedClusterPodIdentity_STATUS) DeepCopy() *ManagedClusterPodIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterPodIdentity_STATUS_ARM) DeepCopyInto(out *ManagedClusterPodIdentity_STATUS_ARM) { + *out = *in + if in.BindingSelector != nil { + in, out := &in.BindingSelector, &out.BindingSelector + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(UserAssignedIdentity_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Namespace != nil { + in, out := &in.Namespace, &out.Namespace + *out = new(string) + **out = **in + } + if in.ProvisioningInfo != nil { + in, out := &in.ProvisioningInfo, &out.ProvisioningInfo + *out = new(ManagedClusterPodIdentity_ProvisioningInfo_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(ManagedClusterPodIdentity_ProvisioningState_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterPodIdentity_STATUS_ARM. +func (in *ManagedClusterPodIdentity_STATUS_ARM) DeepCopy() *ManagedClusterPodIdentity_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterPodIdentity_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_ARM) DeepCopyInto(out *ManagedClusterProperties_ARM) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetID != nil { + in, out := &in.DiskEncryptionSetID, &out.DiskEncryptionSetID + *out = new(string) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig_ARM) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ManagedClusterProperties_PublicNetworkAccess) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *out = new(KubernetesSupportPlan) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings_ARM) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_ARM. +func (in *ManagedClusterProperties_ARM) DeepCopy() *ManagedClusterProperties_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(ManagedClusterProperties_AutoScalerProfile_Expander) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile. +func (in *ManagedClusterProperties_AutoScalerProfile) DeepCopy() *ManagedClusterProperties_AutoScalerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile_ARM) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile_ARM) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(ManagedClusterProperties_AutoScalerProfile_Expander) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile_ARM. +func (in *ManagedClusterProperties_AutoScalerProfile_ARM) DeepCopy() *ManagedClusterProperties_AutoScalerProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile_STATUS) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(ManagedClusterProperties_AutoScalerProfile_Expander_STATUS) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile_STATUS. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS) DeepCopy() *ManagedClusterProperties_AutoScalerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) { + *out = *in + if in.BalanceSimilarNodeGroups != nil { + in, out := &in.BalanceSimilarNodeGroups, &out.BalanceSimilarNodeGroups + *out = new(string) + **out = **in + } + if in.Expander != nil { + in, out := &in.Expander, &out.Expander + *out = new(ManagedClusterProperties_AutoScalerProfile_Expander_STATUS) + **out = **in + } + if in.MaxEmptyBulkDelete != nil { + in, out := &in.MaxEmptyBulkDelete, &out.MaxEmptyBulkDelete + *out = new(string) + **out = **in + } + if in.MaxGracefulTerminationSec != nil { + in, out := &in.MaxGracefulTerminationSec, &out.MaxGracefulTerminationSec + *out = new(string) + **out = **in + } + if in.MaxNodeProvisionTime != nil { + in, out := &in.MaxNodeProvisionTime, &out.MaxNodeProvisionTime + *out = new(string) + **out = **in + } + if in.MaxTotalUnreadyPercentage != nil { + in, out := &in.MaxTotalUnreadyPercentage, &out.MaxTotalUnreadyPercentage + *out = new(string) + **out = **in + } + if in.NewPodScaleUpDelay != nil { + in, out := &in.NewPodScaleUpDelay, &out.NewPodScaleUpDelay + *out = new(string) + **out = **in + } + if in.OkTotalUnreadyCount != nil { + in, out := &in.OkTotalUnreadyCount, &out.OkTotalUnreadyCount + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterAdd != nil { + in, out := &in.ScaleDownDelayAfterAdd, &out.ScaleDownDelayAfterAdd + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterDelete != nil { + in, out := &in.ScaleDownDelayAfterDelete, &out.ScaleDownDelayAfterDelete + *out = new(string) + **out = **in + } + if in.ScaleDownDelayAfterFailure != nil { + in, out := &in.ScaleDownDelayAfterFailure, &out.ScaleDownDelayAfterFailure + *out = new(string) + **out = **in + } + if in.ScaleDownUnneededTime != nil { + in, out := &in.ScaleDownUnneededTime, &out.ScaleDownUnneededTime + *out = new(string) + **out = **in + } + if in.ScaleDownUnreadyTime != nil { + in, out := &in.ScaleDownUnreadyTime, &out.ScaleDownUnreadyTime + *out = new(string) + **out = **in + } + if in.ScaleDownUtilizationThreshold != nil { + in, out := &in.ScaleDownUtilizationThreshold, &out.ScaleDownUtilizationThreshold + *out = new(string) + **out = **in + } + if in.ScanInterval != nil { + in, out := &in.ScanInterval, &out.ScanInterval + *out = new(string) + **out = **in + } + if in.SkipNodesWithLocalStorage != nil { + in, out := &in.SkipNodesWithLocalStorage, &out.SkipNodesWithLocalStorage + *out = new(string) + **out = **in + } + if in.SkipNodesWithSystemPods != nil { + in, out := &in.SkipNodesWithSystemPods, &out.SkipNodesWithSystemPods + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_AutoScalerProfile_STATUS_ARM. +func (in *ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) DeepCopy() *ManagedClusterProperties_AutoScalerProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterProperties_STATUS_ARM) DeepCopyInto(out *ManagedClusterProperties_STATUS_ARM) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile_STATUS_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.AzurePortalFQDN != nil { + in, out := &in.AzurePortalFQDN, &out.AzurePortalFQDN + *out = new(string) + **out = **in + } + if in.CurrentKubernetesVersion != nil { + in, out := &in.CurrentKubernetesVersion, &out.CurrentKubernetesVersion + *out = new(string) + **out = **in + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetID != nil { + in, out := &in.DiskEncryptionSetID, &out.DiskEncryptionSetID + *out = new(string) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.Fqdn != nil { + in, out := &in.Fqdn, &out.Fqdn + *out = new(string) + **out = **in + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity_STATUS_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.MaxAgentPools != nil { + in, out := &in.MaxAgentPools, &out.MaxAgentPools + *out = new(int) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.PrivateFQDN != nil { + in, out := &in.PrivateFQDN, &out.PrivateFQDN + *out = new(string) + **out = **in + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ManagedClusterProperties_PublicNetworkAccess_STATUS) + **out = **in + } + if in.ResourceUID != nil { + in, out := &in.ResourceUID, &out.ResourceUID + *out = new(string) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *out = new(KubernetesSupportPlan_STATUS) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterProperties_STATUS_ARM. +func (in *ManagedClusterProperties_STATUS_ARM) DeepCopy() *ManagedClusterProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterProperties_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU) DeepCopyInto(out *ManagedClusterSKU) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ManagedClusterSKU_Name) + **out = **in + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(ManagedClusterSKU_Tier) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU. +func (in *ManagedClusterSKU) DeepCopy() *ManagedClusterSKU { + if in == nil { + return nil + } + out := new(ManagedClusterSKU) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU_ARM) DeepCopyInto(out *ManagedClusterSKU_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ManagedClusterSKU_Name) + **out = **in + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(ManagedClusterSKU_Tier) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU_ARM. +func (in *ManagedClusterSKU_ARM) DeepCopy() *ManagedClusterSKU_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSKU_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU_STATUS) DeepCopyInto(out *ManagedClusterSKU_STATUS) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ManagedClusterSKU_Name_STATUS) + **out = **in + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(ManagedClusterSKU_Tier_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU_STATUS. +func (in *ManagedClusterSKU_STATUS) DeepCopy() *ManagedClusterSKU_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSKU_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSKU_STATUS_ARM) DeepCopyInto(out *ManagedClusterSKU_STATUS_ARM) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ManagedClusterSKU_Name_STATUS) + **out = **in + } + if in.Tier != nil { + in, out := &in.Tier, &out.Tier + *out = new(ManagedClusterSKU_Tier_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSKU_STATUS_ARM. +func (in *ManagedClusterSKU_STATUS_ARM) DeepCopy() *ManagedClusterSKU_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSKU_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile) DeepCopyInto(out *ManagedClusterSecurityProfile) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner) + (*in).DeepCopyInto(*out) + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile. +func (in *ManagedClusterSecurityProfile) DeepCopy() *ManagedClusterSecurityProfile { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender) DeepCopyInto(out *ManagedClusterSecurityProfileDefender) { + *out = *in + if in.LogAnalyticsWorkspaceResourceReference != nil { + in, out := &in.LogAnalyticsWorkspaceResourceReference, &out.LogAnalyticsWorkspaceResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender. +func (in *ManagedClusterSecurityProfileDefender) DeepCopy() *ManagedClusterSecurityProfileDefender { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM. +func (in *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) DeepCopy() *ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileDefender_ARM) { + *out = *in + if in.LogAnalyticsWorkspaceResourceId != nil { + in, out := &in.LogAnalyticsWorkspaceResourceId, &out.LogAnalyticsWorkspaceResourceId + *out = new(string) + **out = **in + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender_ARM. +func (in *ManagedClusterSecurityProfileDefender_ARM) DeepCopy() *ManagedClusterSecurityProfileDefender_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileDefender_STATUS) { + *out = *in + if in.LogAnalyticsWorkspaceResourceId != nil { + in, out := &in.LogAnalyticsWorkspaceResourceId, &out.LogAnalyticsWorkspaceResourceId + *out = new(string) + **out = **in + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender_STATUS. +func (in *ManagedClusterSecurityProfileDefender_STATUS) DeepCopy() *ManagedClusterSecurityProfileDefender_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileDefender_STATUS_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileDefender_STATUS_ARM) { + *out = *in + if in.LogAnalyticsWorkspaceResourceId != nil { + in, out := &in.LogAnalyticsWorkspaceResourceId, &out.LogAnalyticsWorkspaceResourceId + *out = new(string) + **out = **in + } + if in.SecurityMonitoring != nil { + in, out := &in.SecurityMonitoring, &out.SecurityMonitoring + *out = new(ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileDefender_STATUS_ARM. +func (in *ManagedClusterSecurityProfileDefender_STATUS_ARM) DeepCopy() *ManagedClusterSecurityProfileDefender_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileDefender_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner. +func (in *ManagedClusterSecurityProfileImageCleaner) DeepCopy() *ManagedClusterSecurityProfileImageCleaner { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner_ARM. +func (in *ManagedClusterSecurityProfileImageCleaner_ARM) DeepCopy() *ManagedClusterSecurityProfileImageCleaner_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner_STATUS. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS) DeepCopy() *ManagedClusterSecurityProfileImageCleaner_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IntervalHours != nil { + in, out := &in.IntervalHours, &out.IntervalHours + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileImageCleaner_STATUS_ARM. +func (in *ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) DeepCopy() *ManagedClusterSecurityProfileImageCleaner_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity. +func (in *ManagedClusterSecurityProfileWorkloadIdentity) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity_ARM. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_ARM) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity_STATUS. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) DeepCopyInto(out *ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM. +func (in *ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) DeepCopy() *ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile_ARM) DeepCopyInto(out *ManagedClusterSecurityProfile_ARM) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms_ARM) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender_ARM) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner_ARM) + (*in).DeepCopyInto(*out) + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile_ARM. +func (in *ManagedClusterSecurityProfile_ARM) DeepCopy() *ManagedClusterSecurityProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile_STATUS) DeepCopyInto(out *ManagedClusterSecurityProfile_STATUS) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner_STATUS) + (*in).DeepCopyInto(*out) + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile_STATUS. +func (in *ManagedClusterSecurityProfile_STATUS) DeepCopy() *ManagedClusterSecurityProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterSecurityProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterSecurityProfile_STATUS_ARM) { + *out = *in + if in.AzureKeyVaultKms != nil { + in, out := &in.AzureKeyVaultKms, &out.AzureKeyVaultKms + *out = new(AzureKeyVaultKms_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Defender != nil { + in, out := &in.Defender, &out.Defender + *out = new(ManagedClusterSecurityProfileDefender_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ImageCleaner != nil { + in, out := &in.ImageCleaner, &out.ImageCleaner + *out = new(ManagedClusterSecurityProfileImageCleaner_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.WorkloadIdentity != nil { + in, out := &in.WorkloadIdentity, &out.WorkloadIdentity + *out = new(ManagedClusterSecurityProfileWorkloadIdentity_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterSecurityProfile_STATUS_ARM. +func (in *ManagedClusterSecurityProfile_STATUS_ARM) DeepCopy() *ManagedClusterSecurityProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterSecurityProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile) DeepCopyInto(out *ManagedClusterServicePrincipalProfile) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.Secret != nil { + in, out := &in.Secret, &out.Secret + *out = new(genruntime.SecretReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile. +func (in *ManagedClusterServicePrincipalProfile) DeepCopy() *ManagedClusterServicePrincipalProfile { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile_ARM) DeepCopyInto(out *ManagedClusterServicePrincipalProfile_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.Secret != nil { + in, out := &in.Secret, &out.Secret + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile_ARM. +func (in *ManagedClusterServicePrincipalProfile_ARM) DeepCopy() *ManagedClusterServicePrincipalProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile_STATUS) DeepCopyInto(out *ManagedClusterServicePrincipalProfile_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile_STATUS. +func (in *ManagedClusterServicePrincipalProfile_STATUS) DeepCopy() *ManagedClusterServicePrincipalProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterServicePrincipalProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterServicePrincipalProfile_STATUS_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterServicePrincipalProfile_STATUS_ARM. +func (in *ManagedClusterServicePrincipalProfile_STATUS_ARM) DeepCopy() *ManagedClusterServicePrincipalProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterServicePrincipalProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile) DeepCopyInto(out *ManagedClusterStorageProfile) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver) + (*in).DeepCopyInto(*out) + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile. +func (in *ManagedClusterStorageProfile) DeepCopy() *ManagedClusterStorageProfile { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver. +func (in *ManagedClusterStorageProfileBlobCSIDriver) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver_ARM) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver_ARM. +func (in *ManagedClusterStorageProfileBlobCSIDriver_ARM) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) DeepCopyInto(out *ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM. +func (in *ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) DeepCopy() *ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver. +func (in *ManagedClusterStorageProfileDiskCSIDriver) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver_ARM) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver_ARM. +func (in *ManagedClusterStorageProfileDiskCSIDriver_ARM) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) DeepCopyInto(out *ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM. +func (in *ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) DeepCopy() *ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver. +func (in *ManagedClusterStorageProfileFileCSIDriver) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver_ARM) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver_ARM. +func (in *ManagedClusterStorageProfileFileCSIDriver_ARM) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver_STATUS. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) DeepCopyInto(out *ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM. +func (in *ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) DeepCopy() *ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController. +func (in *ManagedClusterStorageProfileSnapshotController) DeepCopy() *ManagedClusterStorageProfileSnapshotController { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController_ARM) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController_ARM. +func (in *ManagedClusterStorageProfileSnapshotController_ARM) DeepCopy() *ManagedClusterStorageProfileSnapshotController_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController_STATUS. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS) DeepCopy() *ManagedClusterStorageProfileSnapshotController_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS_ARM) DeepCopyInto(out *ManagedClusterStorageProfileSnapshotController_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfileSnapshotController_STATUS_ARM. +func (in *ManagedClusterStorageProfileSnapshotController_STATUS_ARM) DeepCopy() *ManagedClusterStorageProfileSnapshotController_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfileSnapshotController_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile_ARM) DeepCopyInto(out *ManagedClusterStorageProfile_ARM) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver_ARM) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver_ARM) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver_ARM) + (*in).DeepCopyInto(*out) + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile_ARM. +func (in *ManagedClusterStorageProfile_ARM) DeepCopy() *ManagedClusterStorageProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile_STATUS) DeepCopyInto(out *ManagedClusterStorageProfile_STATUS) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver_STATUS) + (*in).DeepCopyInto(*out) + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile_STATUS. +func (in *ManagedClusterStorageProfile_STATUS) DeepCopy() *ManagedClusterStorageProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterStorageProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterStorageProfile_STATUS_ARM) { + *out = *in + if in.BlobCSIDriver != nil { + in, out := &in.BlobCSIDriver, &out.BlobCSIDriver + *out = new(ManagedClusterStorageProfileBlobCSIDriver_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.DiskCSIDriver != nil { + in, out := &in.DiskCSIDriver, &out.DiskCSIDriver + *out = new(ManagedClusterStorageProfileDiskCSIDriver_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.FileCSIDriver != nil { + in, out := &in.FileCSIDriver, &out.FileCSIDriver + *out = new(ManagedClusterStorageProfileFileCSIDriver_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.SnapshotController != nil { + in, out := &in.SnapshotController, &out.SnapshotController + *out = new(ManagedClusterStorageProfileSnapshotController_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterStorageProfile_STATUS_ARM. +func (in *ManagedClusterStorageProfile_STATUS_ARM) DeepCopy() *ManagedClusterStorageProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterStorageProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile) DeepCopyInto(out *ManagedClusterWindowsProfile) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(ManagedClusterWindowsProfile_LicenseType) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile. +func (in *ManagedClusterWindowsProfile) DeepCopy() *ManagedClusterWindowsProfile { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile_ARM) DeepCopyInto(out *ManagedClusterWindowsProfile_ARM) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile_ARM) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(ManagedClusterWindowsProfile_LicenseType) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile_ARM. +func (in *ManagedClusterWindowsProfile_ARM) DeepCopy() *ManagedClusterWindowsProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile_STATUS) DeepCopyInto(out *ManagedClusterWindowsProfile_STATUS) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(ManagedClusterWindowsProfile_LicenseType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile_STATUS. +func (in *ManagedClusterWindowsProfile_STATUS) DeepCopy() *ManagedClusterWindowsProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWindowsProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterWindowsProfile_STATUS_ARM) { + *out = *in + if in.AdminPassword != nil { + in, out := &in.AdminPassword, &out.AdminPassword + *out = new(string) + **out = **in + } + if in.AdminUsername != nil { + in, out := &in.AdminUsername, &out.AdminUsername + *out = new(string) + **out = **in + } + if in.EnableCSIProxy != nil { + in, out := &in.EnableCSIProxy, &out.EnableCSIProxy + *out = new(bool) + **out = **in + } + if in.GmsaProfile != nil { + in, out := &in.GmsaProfile, &out.GmsaProfile + *out = new(WindowsGmsaProfile_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.LicenseType != nil { + in, out := &in.LicenseType, &out.LicenseType + *out = new(ManagedClusterWindowsProfile_LicenseType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWindowsProfile_STATUS_ARM. +func (in *ManagedClusterWindowsProfile_STATUS_ARM) DeepCopy() *ManagedClusterWindowsProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWindowsProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda) + (*in).DeepCopyInto(*out) + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile. +func (in *ManagedClusterWorkloadAutoScalerProfile) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile_ARM) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda_ARM) + (*in).DeepCopyInto(*out) + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfile_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile_STATUS) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile_STATUS. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) DeepCopyInto(out *ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) { + *out = *in + if in.Keda != nil { + in, out := &in.Keda, &out.Keda + *out = new(ManagedClusterWorkloadAutoScalerProfileKeda_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.VerticalPodAutoscaler != nil { + in, out := &in.VerticalPodAutoscaler, &out.VerticalPodAutoscaler + *out = new(ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM. +func (in *ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) DeepCopy() *ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusterWorkloadAutoScalerProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_STATUS) DeepCopyInto(out *ManagedCluster_STATUS) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.AzurePortalFQDN != nil { + in, out := &in.AzurePortalFQDN, &out.AzurePortalFQDN + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CurrentKubernetesVersion != nil { + in, out := &in.CurrentKubernetesVersion, &out.CurrentKubernetesVersion + *out = new(string) + **out = **in + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetID != nil { + in, out := &in.DiskEncryptionSetID, &out.DiskEncryptionSetID + *out = new(string) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Fqdn != nil { + in, out := &in.Fqdn, &out.Fqdn + *out = new(string) + **out = **in + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.MaxAgentPools != nil { + in, out := &in.MaxAgentPools, &out.MaxAgentPools + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PrivateFQDN != nil { + in, out := &in.PrivateFQDN, &out.PrivateFQDN + *out = new(string) + **out = **in + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ManagedClusterProperties_PublicNetworkAccess_STATUS) + **out = **in + } + if in.ResourceUID != nil { + in, out := &in.ResourceUID, &out.ResourceUID + *out = new(string) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU_STATUS) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *out = new(KubernetesSupportPlan_STATUS) + **out = **in + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile_STATUS) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_STATUS. +func (in *ManagedCluster_STATUS) DeepCopy() *ManagedCluster_STATUS { + if in == nil { + return nil + } + out := new(ManagedCluster_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_STATUS_ARM) DeepCopyInto(out *ManagedCluster_STATUS_ARM) { + *out = *in + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ManagedClusterProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_STATUS_ARM. +func (in *ManagedCluster_STATUS_ARM) DeepCopy() *ManagedCluster_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedCluster_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_Spec) DeepCopyInto(out *ManagedCluster_Spec) { + *out = *in + if in.AadProfile != nil { + in, out := &in.AadProfile, &out.AadProfile + *out = new(ManagedClusterAADProfile) + (*in).DeepCopyInto(*out) + } + if in.AddonProfiles != nil { + in, out := &in.AddonProfiles, &out.AddonProfiles + *out = make(map[string]ManagedClusterAddonProfile, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.AgentPoolProfiles != nil { + in, out := &in.AgentPoolProfiles, &out.AgentPoolProfiles + *out = make([]ManagedClusterAgentPoolProfile, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiServerAccessProfile != nil { + in, out := &in.ApiServerAccessProfile, &out.ApiServerAccessProfile + *out = new(ManagedClusterAPIServerAccessProfile) + (*in).DeepCopyInto(*out) + } + if in.AutoScalerProfile != nil { + in, out := &in.AutoScalerProfile, &out.AutoScalerProfile + *out = new(ManagedClusterProperties_AutoScalerProfile) + (*in).DeepCopyInto(*out) + } + if in.AutoUpgradeProfile != nil { + in, out := &in.AutoUpgradeProfile, &out.AutoUpgradeProfile + *out = new(ManagedClusterAutoUpgradeProfile) + (*in).DeepCopyInto(*out) + } + if in.AzureMonitorProfile != nil { + in, out := &in.AzureMonitorProfile, &out.AzureMonitorProfile + *out = new(ManagedClusterAzureMonitorProfile) + (*in).DeepCopyInto(*out) + } + if in.DisableLocalAccounts != nil { + in, out := &in.DisableLocalAccounts, &out.DisableLocalAccounts + *out = new(bool) + **out = **in + } + if in.DiskEncryptionSetReference != nil { + in, out := &in.DiskEncryptionSetReference, &out.DiskEncryptionSetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.DnsPrefix != nil { + in, out := &in.DnsPrefix, &out.DnsPrefix + *out = new(string) + **out = **in + } + if in.EnablePodSecurityPolicy != nil { + in, out := &in.EnablePodSecurityPolicy, &out.EnablePodSecurityPolicy + *out = new(bool) + **out = **in + } + if in.EnableRBAC != nil { + in, out := &in.EnableRBAC, &out.EnableRBAC + *out = new(bool) + **out = **in + } + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation) + (*in).DeepCopyInto(*out) + } + if in.FqdnSubdomain != nil { + in, out := &in.FqdnSubdomain, &out.FqdnSubdomain + *out = new(string) + **out = **in + } + if in.HttpProxyConfig != nil { + in, out := &in.HttpProxyConfig, &out.HttpProxyConfig + *out = new(ManagedClusterHTTPProxyConfig) + (*in).DeepCopyInto(*out) + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity) + (*in).DeepCopyInto(*out) + } + if in.IdentityProfile != nil { + in, out := &in.IdentityProfile, &out.IdentityProfile + *out = make(map[string]UserAssignedIdentity, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + if in.KubernetesVersion != nil { + in, out := &in.KubernetesVersion, &out.KubernetesVersion + *out = new(string) + **out = **in + } + if in.LinuxProfile != nil { + in, out := &in.LinuxProfile, &out.LinuxProfile + *out = new(ContainerServiceLinuxProfile) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(ContainerServiceNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeResourceGroup != nil { + in, out := &in.NodeResourceGroup, &out.NodeResourceGroup + *out = new(string) + **out = **in + } + if in.OidcIssuerProfile != nil { + in, out := &in.OidcIssuerProfile, &out.OidcIssuerProfile + *out = new(ManagedClusterOIDCIssuerProfile) + (*in).DeepCopyInto(*out) + } + if in.OperatorSpec != nil { + in, out := &in.OperatorSpec, &out.OperatorSpec + *out = new(ManagedClusterOperatorSpec) + (*in).DeepCopyInto(*out) + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PodIdentityProfile != nil { + in, out := &in.PodIdentityProfile, &out.PodIdentityProfile + *out = new(ManagedClusterPodIdentityProfile) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkResources != nil { + in, out := &in.PrivateLinkResources, &out.PrivateLinkResources + *out = make([]PrivateLinkResource, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ManagedClusterProperties_PublicNetworkAccess) + **out = **in + } + if in.SecurityProfile != nil { + in, out := &in.SecurityProfile, &out.SecurityProfile + *out = new(ManagedClusterSecurityProfile) + (*in).DeepCopyInto(*out) + } + if in.ServiceMeshProfile != nil { + in, out := &in.ServiceMeshProfile, &out.ServiceMeshProfile + *out = new(ServiceMeshProfile) + (*in).DeepCopyInto(*out) + } + if in.ServicePrincipalProfile != nil { + in, out := &in.ServicePrincipalProfile, &out.ServicePrincipalProfile + *out = new(ManagedClusterServicePrincipalProfile) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU) + (*in).DeepCopyInto(*out) + } + if in.StorageProfile != nil { + in, out := &in.StorageProfile, &out.StorageProfile + *out = new(ManagedClusterStorageProfile) + (*in).DeepCopyInto(*out) + } + if in.SupportPlan != nil { + in, out := &in.SupportPlan, &out.SupportPlan + *out = new(KubernetesSupportPlan) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(ClusterUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.WindowsProfile != nil { + in, out := &in.WindowsProfile, &out.WindowsProfile + *out = new(ManagedClusterWindowsProfile) + (*in).DeepCopyInto(*out) + } + if in.WorkloadAutoScalerProfile != nil { + in, out := &in.WorkloadAutoScalerProfile, &out.WorkloadAutoScalerProfile + *out = new(ManagedClusterWorkloadAutoScalerProfile) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_Spec. +func (in *ManagedCluster_Spec) DeepCopy() *ManagedCluster_Spec { + if in == nil { + return nil + } + out := new(ManagedCluster_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedCluster_Spec_ARM) DeepCopyInto(out *ManagedCluster_Spec_ARM) { + *out = *in + if in.ExtendedLocation != nil { + in, out := &in.ExtendedLocation, &out.ExtendedLocation + *out = new(ExtendedLocation_ARM) + (*in).DeepCopyInto(*out) + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ManagedClusterIdentity_ARM) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ManagedClusterProperties_ARM) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ManagedClusterSKU_ARM) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedCluster_Spec_ARM. +func (in *ManagedCluster_Spec_ARM) DeepCopy() *ManagedCluster_Spec_ARM { + if in == nil { + return nil + } + out := new(ManagedCluster_Spec_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClustersAgentPool) DeepCopyInto(out *ManagedClustersAgentPool) { + *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 ManagedClustersAgentPool. +func (in *ManagedClustersAgentPool) DeepCopy() *ManagedClustersAgentPool { + if in == nil { + return nil + } + out := new(ManagedClustersAgentPool) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClustersAgentPool) 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 *ManagedClustersAgentPoolList) DeepCopyInto(out *ManagedClustersAgentPoolList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ManagedClustersAgentPool, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClustersAgentPoolList. +func (in *ManagedClustersAgentPoolList) DeepCopy() *ManagedClustersAgentPoolList { + if in == nil { + return nil + } + out := new(ManagedClustersAgentPoolList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ManagedClustersAgentPoolList) 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 *ManagedClusters_AgentPool_STATUS) DeepCopyInto(out *ManagedClusters_AgentPool_STATUS) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupID != nil { + in, out := &in.CapacityReservationGroupID, &out.CapacityReservationGroupID + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CurrentOrchestratorVersion != nil { + in, out := &in.CurrentOrchestratorVersion, &out.CurrentOrchestratorVersion + *out = new(string) + **out = **in + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile_STATUS) + **out = **in + } + if in.HostGroupID != nil { + in, out := &in.HostGroupID, &out.HostGroupID + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType_STATUS) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig_STATUS) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode_STATUS) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile_STATUS) + (*in).DeepCopyInto(*out) + } + if in.NodeImageVersion != nil { + in, out := &in.NodeImageVersion, &out.NodeImageVersion + *out = new(string) + **out = **in + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixID != nil { + in, out := &in.NodePublicIPPrefixID, &out.NodePublicIPPrefixID + *out = new(string) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(int) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType_STATUS) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU_STATUS) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType_STATUS) + **out = **in + } + if in.PodSubnetID != nil { + in, out := &in.PodSubnetID, &out.PodSubnetID + *out = new(string) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PropertiesType != nil { + in, out := &in.PropertiesType, &out.PropertiesType + *out = new(AgentPoolType_STATUS) + **out = **in + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ProximityPlacementGroupID != nil { + in, out := &in.ProximityPlacementGroupID, &out.ProximityPlacementGroupID + *out = new(string) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode_STATUS) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy_STATUS) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority_STATUS) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetID != nil { + in, out := &in.VnetSubnetID, &out.VnetSubnetID + *out = new(string) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_STATUS. +func (in *ManagedClusters_AgentPool_STATUS) DeepCopy() *ManagedClusters_AgentPool_STATUS { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusters_AgentPool_STATUS_ARM) DeepCopyInto(out *ManagedClusters_AgentPool_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ManagedClusterAgentPoolProfileProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_STATUS_ARM. +func (in *ManagedClusters_AgentPool_STATUS_ARM) DeepCopy() *ManagedClusters_AgentPool_STATUS_ARM { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusters_AgentPool_Spec) DeepCopyInto(out *ManagedClusters_AgentPool_Spec) { + *out = *in + if in.AvailabilityZones != nil { + in, out := &in.AvailabilityZones, &out.AvailabilityZones + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.CapacityReservationGroupReference != nil { + in, out := &in.CapacityReservationGroupReference, &out.CapacityReservationGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(int) + **out = **in + } + if in.CreationData != nil { + in, out := &in.CreationData, &out.CreationData + *out = new(CreationData) + (*in).DeepCopyInto(*out) + } + if in.EnableAutoScaling != nil { + in, out := &in.EnableAutoScaling, &out.EnableAutoScaling + *out = new(bool) + **out = **in + } + if in.EnableEncryptionAtHost != nil { + in, out := &in.EnableEncryptionAtHost, &out.EnableEncryptionAtHost + *out = new(bool) + **out = **in + } + if in.EnableFIPS != nil { + in, out := &in.EnableFIPS, &out.EnableFIPS + *out = new(bool) + **out = **in + } + if in.EnableNodePublicIP != nil { + in, out := &in.EnableNodePublicIP, &out.EnableNodePublicIP + *out = new(bool) + **out = **in + } + if in.EnableUltraSSD != nil { + in, out := &in.EnableUltraSSD, &out.EnableUltraSSD + *out = new(bool) + **out = **in + } + if in.GpuInstanceProfile != nil { + in, out := &in.GpuInstanceProfile, &out.GpuInstanceProfile + *out = new(GPUInstanceProfile) + **out = **in + } + if in.HostGroupReference != nil { + in, out := &in.HostGroupReference, &out.HostGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.KubeletConfig != nil { + in, out := &in.KubeletConfig, &out.KubeletConfig + *out = new(KubeletConfig) + (*in).DeepCopyInto(*out) + } + if in.KubeletDiskType != nil { + in, out := &in.KubeletDiskType, &out.KubeletDiskType + *out = new(KubeletDiskType) + **out = **in + } + if in.LinuxOSConfig != nil { + in, out := &in.LinuxOSConfig, &out.LinuxOSConfig + *out = new(LinuxOSConfig) + (*in).DeepCopyInto(*out) + } + if in.MaxCount != nil { + in, out := &in.MaxCount, &out.MaxCount + *out = new(int) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(int) + **out = **in + } + if in.MinCount != nil { + in, out := &in.MinCount, &out.MinCount + *out = new(int) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(AgentPoolMode) + **out = **in + } + if in.NetworkProfile != nil { + in, out := &in.NetworkProfile, &out.NetworkProfile + *out = new(AgentPoolNetworkProfile) + (*in).DeepCopyInto(*out) + } + if in.NodeLabels != nil { + in, out := &in.NodeLabels, &out.NodeLabels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.NodePublicIPPrefixReference != nil { + in, out := &in.NodePublicIPPrefixReference, &out.NodePublicIPPrefixReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.NodeTaints != nil { + in, out := &in.NodeTaints, &out.NodeTaints + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.OrchestratorVersion != nil { + in, out := &in.OrchestratorVersion, &out.OrchestratorVersion + *out = new(string) + **out = **in + } + if in.OsDiskSizeGB != nil { + in, out := &in.OsDiskSizeGB, &out.OsDiskSizeGB + *out = new(ContainerServiceOSDisk) + **out = **in + } + if in.OsDiskType != nil { + in, out := &in.OsDiskType, &out.OsDiskType + *out = new(OSDiskType) + **out = **in + } + if in.OsSKU != nil { + in, out := &in.OsSKU, &out.OsSKU + *out = new(OSSKU) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *out = new(OSType) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PodSubnetReference != nil { + in, out := &in.PodSubnetReference, &out.PodSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(PowerState) + (*in).DeepCopyInto(*out) + } + if in.ProximityPlacementGroupReference != nil { + in, out := &in.ProximityPlacementGroupReference, &out.ProximityPlacementGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ScaleDownMode != nil { + in, out := &in.ScaleDownMode, &out.ScaleDownMode + *out = new(ScaleDownMode) + **out = **in + } + if in.ScaleSetEvictionPolicy != nil { + in, out := &in.ScaleSetEvictionPolicy, &out.ScaleSetEvictionPolicy + *out = new(ScaleSetEvictionPolicy) + **out = **in + } + if in.ScaleSetPriority != nil { + in, out := &in.ScaleSetPriority, &out.ScaleSetPriority + *out = new(ScaleSetPriority) + **out = **in + } + if in.SpotMaxPrice != nil { + in, out := &in.SpotMaxPrice, &out.SpotMaxPrice + *out = new(float64) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(AgentPoolType) + **out = **in + } + if in.UpgradeSettings != nil { + in, out := &in.UpgradeSettings, &out.UpgradeSettings + *out = new(AgentPoolUpgradeSettings) + (*in).DeepCopyInto(*out) + } + if in.VmSize != nil { + in, out := &in.VmSize, &out.VmSize + *out = new(string) + **out = **in + } + if in.VnetSubnetReference != nil { + in, out := &in.VnetSubnetReference, &out.VnetSubnetReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.WorkloadRuntime != nil { + in, out := &in.WorkloadRuntime, &out.WorkloadRuntime + *out = new(WorkloadRuntime) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_Spec. +func (in *ManagedClusters_AgentPool_Spec) DeepCopy() *ManagedClusters_AgentPool_Spec { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ManagedClusters_AgentPool_Spec_ARM) DeepCopyInto(out *ManagedClusters_AgentPool_Spec_ARM) { + *out = *in + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ManagedClusterAgentPoolProfileProperties_ARM) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedClusters_AgentPool_Spec_ARM. +func (in *ManagedClusters_AgentPool_Spec_ARM) DeepCopy() *ManagedClusters_AgentPool_Spec_ARM { + if in == nil { + return nil + } + out := new(ManagedClusters_AgentPool_Spec_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange) DeepCopyInto(out *PortRange) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(PortRange_Protocol) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange. +func (in *PortRange) DeepCopy() *PortRange { + if in == nil { + return nil + } + out := new(PortRange) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange_ARM) DeepCopyInto(out *PortRange_ARM) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(PortRange_Protocol) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange_ARM. +func (in *PortRange_ARM) DeepCopy() *PortRange_ARM { + if in == nil { + return nil + } + out := new(PortRange_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange_STATUS) DeepCopyInto(out *PortRange_STATUS) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(PortRange_Protocol_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange_STATUS. +func (in *PortRange_STATUS) DeepCopy() *PortRange_STATUS { + if in == nil { + return nil + } + out := new(PortRange_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortRange_STATUS_ARM) DeepCopyInto(out *PortRange_STATUS_ARM) { + *out = *in + if in.PortEnd != nil { + in, out := &in.PortEnd, &out.PortEnd + *out = new(int) + **out = **in + } + if in.PortStart != nil { + in, out := &in.PortStart, &out.PortStart + *out = new(int) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(PortRange_Protocol_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortRange_STATUS_ARM. +func (in *PortRange_STATUS_ARM) DeepCopy() *PortRange_STATUS_ARM { + if in == nil { + return nil + } + out := new(PortRange_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState) DeepCopyInto(out *PowerState) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(PowerState_Code) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState. +func (in *PowerState) DeepCopy() *PowerState { + if in == nil { + return nil + } + out := new(PowerState) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState_ARM) DeepCopyInto(out *PowerState_ARM) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(PowerState_Code) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState_ARM. +func (in *PowerState_ARM) DeepCopy() *PowerState_ARM { + if in == nil { + return nil + } + out := new(PowerState_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState_STATUS) DeepCopyInto(out *PowerState_STATUS) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(PowerState_Code_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState_STATUS. +func (in *PowerState_STATUS) DeepCopy() *PowerState_STATUS { + if in == nil { + return nil + } + out := new(PowerState_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PowerState_STATUS_ARM) DeepCopyInto(out *PowerState_STATUS_ARM) { + *out = *in + if in.Code != nil { + in, out := &in.Code, &out.Code + *out = new(PowerState_Code_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PowerState_STATUS_ARM. +func (in *PowerState_STATUS_ARM) DeepCopy() *PowerState_STATUS_ARM { + if in == nil { + return nil + } + out := new(PowerState_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource) DeepCopyInto(out *PrivateLinkResource) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Reference != nil { + in, out := &in.Reference, &out.Reference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource. +func (in *PrivateLinkResource) DeepCopy() *PrivateLinkResource { + if in == nil { + return nil + } + out := new(PrivateLinkResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource_ARM) DeepCopyInto(out *PrivateLinkResource_ARM) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource_ARM. +func (in *PrivateLinkResource_ARM) DeepCopy() *PrivateLinkResource_ARM { + if in == nil { + return nil + } + out := new(PrivateLinkResource_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource_STATUS) DeepCopyInto(out *PrivateLinkResource_STATUS) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateLinkServiceID != nil { + in, out := &in.PrivateLinkServiceID, &out.PrivateLinkServiceID + *out = new(string) + **out = **in + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource_STATUS. +func (in *PrivateLinkResource_STATUS) DeepCopy() *PrivateLinkResource_STATUS { + if in == nil { + return nil + } + out := new(PrivateLinkResource_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrivateLinkResource_STATUS_ARM) DeepCopyInto(out *PrivateLinkResource_STATUS_ARM) { + *out = *in + if in.GroupId != nil { + in, out := &in.GroupId, &out.GroupId + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateLinkServiceID != nil { + in, out := &in.PrivateLinkServiceID, &out.PrivateLinkServiceID + *out = new(string) + **out = **in + } + if in.RequiredMembers != nil { + in, out := &in.RequiredMembers, &out.RequiredMembers + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkResource_STATUS_ARM. +func (in *PrivateLinkResource_STATUS_ARM) DeepCopy() *PrivateLinkResource_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrivateLinkResource_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference) DeepCopyInto(out *ResourceReference) { + *out = *in + if in.Reference != nil { + in, out := &in.Reference, &out.Reference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference. +func (in *ResourceReference) DeepCopy() *ResourceReference { + if in == nil { + return nil + } + out := new(ResourceReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference_ARM) DeepCopyInto(out *ResourceReference_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference_ARM. +func (in *ResourceReference_ARM) DeepCopy() *ResourceReference_ARM { + if in == nil { + return nil + } + out := new(ResourceReference_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference_STATUS) DeepCopyInto(out *ResourceReference_STATUS) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference_STATUS. +func (in *ResourceReference_STATUS) DeepCopy() *ResourceReference_STATUS { + if in == nil { + return nil + } + out := new(ResourceReference_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResourceReference_STATUS_ARM) DeepCopyInto(out *ResourceReference_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceReference_STATUS_ARM. +func (in *ResourceReference_STATUS_ARM) DeepCopy() *ResourceReference_STATUS_ARM { + if in == nil { + return nil + } + out := new(ResourceReference_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile) DeepCopyInto(out *ServiceMeshProfile) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ServiceMeshProfile_Mode) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile. +func (in *ServiceMeshProfile) DeepCopy() *ServiceMeshProfile { + if in == nil { + return nil + } + out := new(ServiceMeshProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile_ARM) DeepCopyInto(out *ServiceMeshProfile_ARM) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh_ARM) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ServiceMeshProfile_Mode) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile_ARM. +func (in *ServiceMeshProfile_ARM) DeepCopy() *ServiceMeshProfile_ARM { + if in == nil { + return nil + } + out := new(ServiceMeshProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile_STATUS) DeepCopyInto(out *ServiceMeshProfile_STATUS) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ServiceMeshProfile_Mode_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile_STATUS. +func (in *ServiceMeshProfile_STATUS) DeepCopy() *ServiceMeshProfile_STATUS { + if in == nil { + return nil + } + out := new(ServiceMeshProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceMeshProfile_STATUS_ARM) DeepCopyInto(out *ServiceMeshProfile_STATUS_ARM) { + *out = *in + if in.Istio != nil { + in, out := &in.Istio, &out.Istio + *out = new(IstioServiceMesh_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(ServiceMeshProfile_Mode_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceMeshProfile_STATUS_ARM. +func (in *ServiceMeshProfile_STATUS_ARM) DeepCopy() *ServiceMeshProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(ServiceMeshProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig) DeepCopyInto(out *SysctlConfig) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig. +func (in *SysctlConfig) DeepCopy() *SysctlConfig { + if in == nil { + return nil + } + out := new(SysctlConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig_ARM) DeepCopyInto(out *SysctlConfig_ARM) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig_ARM. +func (in *SysctlConfig_ARM) DeepCopy() *SysctlConfig_ARM { + if in == nil { + return nil + } + out := new(SysctlConfig_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig_STATUS) DeepCopyInto(out *SysctlConfig_STATUS) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig_STATUS. +func (in *SysctlConfig_STATUS) DeepCopy() *SysctlConfig_STATUS { + if in == nil { + return nil + } + out := new(SysctlConfig_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SysctlConfig_STATUS_ARM) DeepCopyInto(out *SysctlConfig_STATUS_ARM) { + *out = *in + if in.FsAioMaxNr != nil { + in, out := &in.FsAioMaxNr, &out.FsAioMaxNr + *out = new(int) + **out = **in + } + if in.FsFileMax != nil { + in, out := &in.FsFileMax, &out.FsFileMax + *out = new(int) + **out = **in + } + if in.FsInotifyMaxUserWatches != nil { + in, out := &in.FsInotifyMaxUserWatches, &out.FsInotifyMaxUserWatches + *out = new(int) + **out = **in + } + if in.FsNrOpen != nil { + in, out := &in.FsNrOpen, &out.FsNrOpen + *out = new(int) + **out = **in + } + if in.KernelThreadsMax != nil { + in, out := &in.KernelThreadsMax, &out.KernelThreadsMax + *out = new(int) + **out = **in + } + if in.NetCoreNetdevMaxBacklog != nil { + in, out := &in.NetCoreNetdevMaxBacklog, &out.NetCoreNetdevMaxBacklog + *out = new(int) + **out = **in + } + if in.NetCoreOptmemMax != nil { + in, out := &in.NetCoreOptmemMax, &out.NetCoreOptmemMax + *out = new(int) + **out = **in + } + if in.NetCoreRmemDefault != nil { + in, out := &in.NetCoreRmemDefault, &out.NetCoreRmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreRmemMax != nil { + in, out := &in.NetCoreRmemMax, &out.NetCoreRmemMax + *out = new(int) + **out = **in + } + if in.NetCoreSomaxconn != nil { + in, out := &in.NetCoreSomaxconn, &out.NetCoreSomaxconn + *out = new(int) + **out = **in + } + if in.NetCoreWmemDefault != nil { + in, out := &in.NetCoreWmemDefault, &out.NetCoreWmemDefault + *out = new(int) + **out = **in + } + if in.NetCoreWmemMax != nil { + in, out := &in.NetCoreWmemMax, &out.NetCoreWmemMax + *out = new(int) + **out = **in + } + if in.NetIpv4IpLocalPortRange != nil { + in, out := &in.NetIpv4IpLocalPortRange, &out.NetIpv4IpLocalPortRange + *out = new(string) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh1 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh1, &out.NetIpv4NeighDefaultGcThresh1 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh2 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh2, &out.NetIpv4NeighDefaultGcThresh2 + *out = new(int) + **out = **in + } + if in.NetIpv4NeighDefaultGcThresh3 != nil { + in, out := &in.NetIpv4NeighDefaultGcThresh3, &out.NetIpv4NeighDefaultGcThresh3 + *out = new(int) + **out = **in + } + if in.NetIpv4TcpFinTimeout != nil { + in, out := &in.NetIpv4TcpFinTimeout, &out.NetIpv4TcpFinTimeout + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveProbes != nil { + in, out := &in.NetIpv4TcpKeepaliveProbes, &out.NetIpv4TcpKeepaliveProbes + *out = new(int) + **out = **in + } + if in.NetIpv4TcpKeepaliveTime != nil { + in, out := &in.NetIpv4TcpKeepaliveTime, &out.NetIpv4TcpKeepaliveTime + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxSynBacklog != nil { + in, out := &in.NetIpv4TcpMaxSynBacklog, &out.NetIpv4TcpMaxSynBacklog + *out = new(int) + **out = **in + } + if in.NetIpv4TcpMaxTwBuckets != nil { + in, out := &in.NetIpv4TcpMaxTwBuckets, &out.NetIpv4TcpMaxTwBuckets + *out = new(int) + **out = **in + } + if in.NetIpv4TcpTwReuse != nil { + in, out := &in.NetIpv4TcpTwReuse, &out.NetIpv4TcpTwReuse + *out = new(bool) + **out = **in + } + if in.NetIpv4TcpkeepaliveIntvl != nil { + in, out := &in.NetIpv4TcpkeepaliveIntvl, &out.NetIpv4TcpkeepaliveIntvl + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackBuckets != nil { + in, out := &in.NetNetfilterNfConntrackBuckets, &out.NetNetfilterNfConntrackBuckets + *out = new(int) + **out = **in + } + if in.NetNetfilterNfConntrackMax != nil { + in, out := &in.NetNetfilterNfConntrackMax, &out.NetNetfilterNfConntrackMax + *out = new(int) + **out = **in + } + if in.VmMaxMapCount != nil { + in, out := &in.VmMaxMapCount, &out.VmMaxMapCount + *out = new(int) + **out = **in + } + if in.VmSwappiness != nil { + in, out := &in.VmSwappiness, &out.VmSwappiness + *out = new(int) + **out = **in + } + if in.VmVfsCachePressure != nil { + in, out := &in.VmVfsCachePressure, &out.VmVfsCachePressure + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SysctlConfig_STATUS_ARM. +func (in *SysctlConfig_STATUS_ARM) DeepCopy() *SysctlConfig_STATUS_ARM { + if in == nil { + return nil + } + out := new(SysctlConfig_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SystemData_STATUS) DeepCopyInto(out *SystemData_STATUS) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(SystemData_CreatedByType_STATUS) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *out = new(SystemData_LastModifiedByType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS. +func (in *SystemData_STATUS) DeepCopy() *SystemData_STATUS { + if in == nil { + return nil + } + out := new(SystemData_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SystemData_STATUS_ARM) DeepCopyInto(out *SystemData_STATUS_ARM) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(SystemData_CreatedByType_STATUS) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *out = new(SystemData_LastModifiedByType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS_ARM. +func (in *SystemData_STATUS_ARM) DeepCopy() *SystemData_STATUS_ARM { + if in == nil { + return nil + } + out := new(SystemData_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings) DeepCopyInto(out *UpgradeOverrideSettings) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings. +func (in *UpgradeOverrideSettings) DeepCopy() *UpgradeOverrideSettings { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings_ARM) DeepCopyInto(out *UpgradeOverrideSettings_ARM) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings_ARM. +func (in *UpgradeOverrideSettings_ARM) DeepCopy() *UpgradeOverrideSettings_ARM { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings_STATUS) DeepCopyInto(out *UpgradeOverrideSettings_STATUS) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings_STATUS. +func (in *UpgradeOverrideSettings_STATUS) DeepCopy() *UpgradeOverrideSettings_STATUS { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpgradeOverrideSettings_STATUS_ARM) DeepCopyInto(out *UpgradeOverrideSettings_STATUS_ARM) { + *out = *in + if in.ForceUpgrade != nil { + in, out := &in.ForceUpgrade, &out.ForceUpgrade + *out = new(bool) + **out = **in + } + if in.Until != nil { + in, out := &in.Until, &out.Until + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpgradeOverrideSettings_STATUS_ARM. +func (in *UpgradeOverrideSettings_STATUS_ARM) DeepCopy() *UpgradeOverrideSettings_STATUS_ARM { + if in == nil { + return nil + } + out := new(UpgradeOverrideSettings_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity) DeepCopyInto(out *UserAssignedIdentity) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.ResourceReference != nil { + in, out := &in.ResourceReference, &out.ResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity. +func (in *UserAssignedIdentity) DeepCopy() *UserAssignedIdentity { + if in == nil { + return nil + } + out := new(UserAssignedIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentityDetails) DeepCopyInto(out *UserAssignedIdentityDetails) { + *out = *in + out.Reference = in.Reference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails. +func (in *UserAssignedIdentityDetails) DeepCopy() *UserAssignedIdentityDetails { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentityDetails_ARM) DeepCopyInto(out *UserAssignedIdentityDetails_ARM) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails_ARM. +func (in *UserAssignedIdentityDetails_ARM) DeepCopy() *UserAssignedIdentityDetails_ARM { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity_ARM) DeepCopyInto(out *UserAssignedIdentity_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity_ARM. +func (in *UserAssignedIdentity_ARM) DeepCopy() *UserAssignedIdentity_ARM { + if in == nil { + return nil + } + out := new(UserAssignedIdentity_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity_STATUS) DeepCopyInto(out *UserAssignedIdentity_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity_STATUS. +func (in *UserAssignedIdentity_STATUS) DeepCopy() *UserAssignedIdentity_STATUS { + if in == nil { + return nil + } + out := new(UserAssignedIdentity_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentity_STATUS_ARM) DeepCopyInto(out *UserAssignedIdentity_STATUS_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.ObjectId != nil { + in, out := &in.ObjectId, &out.ObjectId + *out = new(string) + **out = **in + } + if in.ResourceId != nil { + in, out := &in.ResourceId, &out.ResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentity_STATUS_ARM. +func (in *UserAssignedIdentity_STATUS_ARM) DeepCopy() *UserAssignedIdentity_STATUS_ARM { + if in == nil { + return nil + } + out := new(UserAssignedIdentity_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile) DeepCopyInto(out *WindowsGmsaProfile) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile. +func (in *WindowsGmsaProfile) DeepCopy() *WindowsGmsaProfile { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile_ARM) DeepCopyInto(out *WindowsGmsaProfile_ARM) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile_ARM. +func (in *WindowsGmsaProfile_ARM) DeepCopy() *WindowsGmsaProfile_ARM { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile_STATUS) DeepCopyInto(out *WindowsGmsaProfile_STATUS) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile_STATUS. +func (in *WindowsGmsaProfile_STATUS) DeepCopy() *WindowsGmsaProfile_STATUS { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WindowsGmsaProfile_STATUS_ARM) DeepCopyInto(out *WindowsGmsaProfile_STATUS_ARM) { + *out = *in + if in.DnsServer != nil { + in, out := &in.DnsServer, &out.DnsServer + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.RootDomainName != nil { + in, out := &in.RootDomainName, &out.RootDomainName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsGmsaProfile_STATUS_ARM. +func (in *WindowsGmsaProfile_STATUS_ARM) DeepCopy() *WindowsGmsaProfile_STATUS_ARM { + if in == nil { + return nil + } + out := new(WindowsGmsaProfile_STATUS_ARM) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/containerservice/versions_matrix.md b/v2/api/containerservice/versions_matrix.md index 9d222b704cb..f3fd2d2e8ee 100644 --- a/v2/api/containerservice/versions_matrix.md +++ b/v2/api/containerservice/versions_matrix.md @@ -1,307 +1,317 @@ -| Type Definitions in package "containerservice" | v1api20210501 | v1api20230201 | v1api20230202preview | v1api20230315preview | -|--------------------------------------------------------------------------------------|---------------|---------------|----------------------|----------------------| -| APIVersion | v1api20210501 | v1api20230201 | v1api20230202preview | v1api20230315preview | -| AgentPoolMode | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolMode_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolNetworkProfile | | | v1api20230202preview | | -| AgentPoolNetworkProfile_STATUS | | | v1api20230202preview | | -| AgentPoolType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolUpgradeSettings | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolUpgradeSettings_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| AgentPoolWindowsProfile | | | v1api20230202preview | | -| AgentPoolWindowsProfile_STATUS | | | v1api20230202preview | | -| AzureKeyVaultKms | | v1api20230201 | v1api20230202preview | | -| AzureKeyVaultKms_KeyVaultNetworkAccess | | v1api20230201 | v1api20230202preview | | -| AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS | | v1api20230201 | v1api20230202preview | | -| AzureKeyVaultKms_STATUS | | v1api20230201 | v1api20230202preview | | -| ClusterUpgradeSettings | | | v1api20230202preview | | -| ClusterUpgradeSettings_STATUS | | | v1api20230202preview | | -| ContainerServiceLinuxProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceLinuxProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile_IpFamilies | | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile_IpFamilies_STATUS | | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_STATUS | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_Scheduler | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_Scheduler_STATUS | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_Mode | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_Mode_STATUS | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_KubeProxyConfig_STATUS | | | v1api20230202preview | | -| ContainerServiceNetworkProfile_LoadBalancerSku | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_LoadBalancerSku_STATUS | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkDataplane | | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkDataplane_STATUS | | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkMode | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkMode_STATUS | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPlugin | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPluginMode | | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPluginMode_STATUS | | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPlugin_STATUS | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPolicy | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_NetworkPolicy_STATUS | v1api20210501 | v1api20230201 | | | -| ContainerServiceNetworkProfile_OutboundType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile_OutboundType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceNetworkProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceOSDisk | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceSshConfiguration | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceSshConfiguration_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceSshPublicKey | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ContainerServiceSshPublicKey_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ControlPlaneUpgradeOverride | | | v1api20230202preview | | -| ControlPlaneUpgradeOverride_STATUS | | | v1api20230202preview | | -| CreationData | | v1api20230201 | v1api20230202preview | | -| CreationData_STATUS | | v1api20230201 | v1api20230202preview | | -| ErrorAdditionalInfo_STATUS | | | | v1api20230315preview | -| ErrorDetail_STATUS | | | | v1api20230315preview | -| ErrorDetail_STATUS_Unrolled | | | | v1api20230315preview | -| ExtendedLocation | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ExtendedLocationType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ExtendedLocationType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ExtendedLocation_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| Fleet | | | | v1api20230315preview | -| FleetHubProfile | | | | v1api20230315preview | -| FleetHubProfile_STATUS | | | | v1api20230315preview | -| FleetMemberProperties | | | | v1api20230315preview | -| FleetMemberProperties_STATUS | | | | v1api20230315preview | -| FleetMemberProvisioningState_STATUS | | | | v1api20230315preview | -| FleetProperties | | | | v1api20230315preview | -| FleetProperties_STATUS | | | | v1api20230315preview | -| FleetProvisioningState_STATUS | | | | v1api20230315preview | -| Fleet_STATUS | | | | v1api20230315preview | -| Fleet_Spec | | | | v1api20230315preview | -| FleetsMember | | | | v1api20230315preview | -| FleetsUpdateRun | | | | v1api20230315preview | -| Fleets_Member_STATUS | | | | v1api20230315preview | -| Fleets_Member_Spec | | | | v1api20230315preview | -| Fleets_UpdateRun_STATUS | | | | v1api20230315preview | -| Fleets_UpdateRun_Spec | | | | v1api20230315preview | -| GPUInstanceProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| GPUInstanceProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| GuardrailsProfile | | | v1api20230202preview | | -| GuardrailsProfile_Level | | | v1api20230202preview | | -| GuardrailsProfile_Level_STATUS | | | v1api20230202preview | | -| GuardrailsProfile_STATUS | | | v1api20230202preview | | -| IPTag | | | v1api20230202preview | | -| IPTag_STATUS | | | v1api20230202preview | | -| IstioComponents | | | v1api20230202preview | | -| IstioComponents_STATUS | | | v1api20230202preview | | -| IstioIngressGateway | | | v1api20230202preview | | -| IstioIngressGateway_Mode | | | v1api20230202preview | | -| IstioIngressGateway_Mode_STATUS | | | v1api20230202preview | | -| IstioIngressGateway_STATUS | | | v1api20230202preview | | -| IstioServiceMesh | | | v1api20230202preview | | -| IstioServiceMesh_STATUS | | | v1api20230202preview | | -| KubeletConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | -| KubeletConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| KubeletDiskType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| KubeletDiskType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| LinuxOSConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | -| LinuxOSConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| LoadBalancerSku | | | v1api20230202preview | | -| LoadBalancerSku_STATUS | | | v1api20230202preview | | -| ManagedCluster | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAADProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAADProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAPIServerAccessProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAPIServerAccessProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAddonProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAddonProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAgentPoolProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAgentPoolProfileProperties | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAgentPoolProfileProperties_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAgentPoolProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel | | | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS | | | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile_UpgradeChannel | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfileKubeStateMetrics | | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfileMetrics | | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfileMetrics_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterAzureMonitorProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterHTTPProxyConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterHTTPProxyConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIdentity_Type | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIdentity_Type_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIdentity_UserAssignedIdentities_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterIngressProfile | | | v1api20230202preview | | -| ManagedClusterIngressProfileWebAppRouting | | | v1api20230202preview | | -| ManagedClusterIngressProfileWebAppRouting_STATUS | | | v1api20230202preview | | -| ManagedClusterIngressProfile_STATUS | | | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_BackendPoolType | | | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS | | | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_ManagedOutboundIPs | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_OutboundIPPrefixes | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_OutboundIPs | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterLoadBalancerProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterManagedOutboundIPProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterManagedOutboundIPProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterNATGatewayProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterNATGatewayProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterNodeResourceGroupProfile | | | v1api20230202preview | | -| ManagedClusterNodeResourceGroupProfile_RestrictionLevel | | | v1api20230202preview | | -| ManagedClusterNodeResourceGroupProfile_RestrictionLevel_STATUS | | | v1api20230202preview | | -| ManagedClusterNodeResourceGroupProfile_STATUS | | | v1api20230202preview | | -| ManagedClusterOIDCIssuerProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterOIDCIssuerProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityException | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityException_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityProvisioningErrorBody_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentityProvisioningError_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentity_ProvisioningInfo_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentity_ProvisioningState_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterPodIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_AutoScalerProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_AutoScalerProfile_Expander | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_AutoScalerProfile_Expander_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_AutoScalerProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_PublicNetworkAccess | | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_PublicNetworkAccess_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterProperties_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU_Name | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU_Name_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU_Tier | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSKU_Tier_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileCustomCATrustCertificates | | | v1api20230202preview | | -| ManagedClusterSecurityProfileDefender | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileDefenderSecurityMonitoring | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileDefender_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileImageCleaner | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileImageCleaner_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileNodeRestriction | | | v1api20230202preview | | -| ManagedClusterSecurityProfileNodeRestriction_STATUS | | | v1api20230202preview | | -| ManagedClusterSecurityProfileWorkloadIdentity | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfileWorkloadIdentity_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterSecurityProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterServicePrincipalProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterServicePrincipalProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileBlobCSIDriver | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileBlobCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileDiskCSIDriver | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileDiskCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileFileCSIDriver | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileFileCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileSnapshotController | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfileSnapshotController_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterStorageProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterUpdate | | | | v1api20230315preview | -| ManagedClusterUpdate_STATUS | | | | v1api20230315preview | -| ManagedClusterUpgradeSpec | | | | v1api20230315preview | -| ManagedClusterUpgradeSpec_STATUS | | | | v1api20230315preview | -| ManagedClusterUpgradeType | | | | v1api20230315preview | -| ManagedClusterUpgradeType_STATUS | | | | v1api20230315preview | -| ManagedClusterWindowsProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterWindowsProfile_LicenseType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterWindowsProfile_LicenseType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterWindowsProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfile | | v1api20230201 | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileKeda | | v1api20230201 | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileKeda_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ControlledValues | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ControlledValues_STATUS | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_UpdateMode | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_UpdateMode_STATUS | | | v1api20230202preview | | -| ManagedClusterWorkloadAutoScalerProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| ManagedCluster_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedCluster_Spec | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClustersAgentPool | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusters_AgentPool_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusters_AgentPool_Spec | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ManagedClusters_TrustedAccessRoleBinding_STATUS | | | v1api20230202preview | | -| ManagedClusters_TrustedAccessRoleBinding_Spec | | | v1api20230202preview | | -| MemberUpdateStatus_STATUS | | | | v1api20230315preview | -| NetworkDataplane | | | v1api20230202preview | | -| NetworkDataplane_STATUS | | | v1api20230202preview | | -| NetworkMode | | | v1api20230202preview | | -| NetworkMode_STATUS | | | v1api20230202preview | | -| NetworkPlugin | | | v1api20230202preview | | -| NetworkPluginMode | | | v1api20230202preview | | -| NetworkPluginMode_STATUS | | | v1api20230202preview | | -| NetworkPlugin_STATUS | | | v1api20230202preview | | -| NetworkPolicy | | | v1api20230202preview | | -| NetworkPolicy_STATUS | | | v1api20230202preview | | -| OSDiskType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| OSDiskType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| OSSKU | v1api20210501 | v1api20230201 | v1api20230202preview | | -| OSSKU_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| OSType | v1api20210501 | v1api20230201 | v1api20230202preview | | -| OSType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| PortRange | | | v1api20230202preview | | -| PortRange_Protocol | | | v1api20230202preview | | -| PortRange_Protocol_STATUS | | | v1api20230202preview | | -| PortRange_STATUS | | | v1api20230202preview | | -| PowerState | | v1api20230201 | v1api20230202preview | | -| PowerState_Code | | v1api20230201 | v1api20230202preview | | -| PowerState_Code_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| PowerState_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| PrivateLinkResource | v1api20210501 | v1api20230201 | v1api20230202preview | | -| PrivateLinkResource_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ResourceReference | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ResourceReference_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ScaleDownMode | | v1api20230201 | v1api20230202preview | | -| ScaleDownMode_STATUS | | v1api20230201 | v1api20230202preview | | -| ScaleSetEvictionPolicy | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ScaleSetEvictionPolicy_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ScaleSetPriority | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ScaleSetPriority_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| ServiceMeshProfile | | | v1api20230202preview | | -| ServiceMeshProfile_Mode | | | v1api20230202preview | | -| ServiceMeshProfile_Mode_STATUS | | | v1api20230202preview | | -| ServiceMeshProfile_STATUS | | | v1api20230202preview | | -| SysctlConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | -| SysctlConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| SystemData_CreatedByType_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | -| SystemData_LastModifiedByType_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | -| SystemData_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | -| TrustedAccessRoleBinding | | | v1api20230202preview | | -| TrustedAccessRoleBindingProperties | | | v1api20230202preview | | -| TrustedAccessRoleBindingProperties_ProvisioningState_STATUS | | | v1api20230202preview | | -| TrustedAccessRoleBindingProperties_STATUS | | | v1api20230202preview | | -| UpdateGroup | | | | v1api20230315preview | -| UpdateGroupStatus_STATUS | | | | v1api20230315preview | -| UpdateGroup_STATUS | | | | v1api20230315preview | -| UpdateRunProperties | | | | v1api20230315preview | -| UpdateRunProperties_STATUS | | | | v1api20230315preview | -| UpdateRunProvisioningState_STATUS | | | | v1api20230315preview | -| UpdateRunStatus_STATUS | | | | v1api20230315preview | -| UpdateRunStrategy | | | | v1api20230315preview | -| UpdateRunStrategy_STATUS | | | | v1api20230315preview | -| UpdateStage | | | | v1api20230315preview | -| UpdateStageStatus_STATUS | | | | v1api20230315preview | -| UpdateStage_STATUS | | | | v1api20230315preview | -| UpdateState_STATUS | | | | v1api20230315preview | -| UpdateStatus_STATUS | | | | v1api20230315preview | -| UpgradeOverrideSettings | | | v1api20230202preview | | -| UpgradeOverrideSettings_STATUS | | | v1api20230202preview | | -| UserAssignedIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | -| UserAssignedIdentityDetails | v1api20210501 | v1api20230201 | v1api20230202preview | | -| UserAssignedIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | -| WaitStatus_STATUS | | | | v1api20230315preview | -| WindowsGmsaProfile | | v1api20230201 | v1api20230202preview | | -| WindowsGmsaProfile_STATUS | | v1api20230201 | v1api20230202preview | | -| WorkloadRuntime | | v1api20230201 | v1api20230202preview | | -| WorkloadRuntime_STATUS | | v1api20230201 | v1api20230202preview | | +| Type Definitions in package "containerservice" | v1api20210501 | v1api20230201 | v1api20230202preview | v1api20230315preview | v1api20231001 | +|--------------------------------------------------------------------------------------|---------------|---------------|----------------------|----------------------|---------------| +| APIVersion | v1api20210501 | v1api20230201 | v1api20230202preview | v1api20230315preview | v1api20231001 | +| AgentPoolMode | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolMode_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolNetworkProfile | | | v1api20230202preview | | v1api20231001 | +| AgentPoolNetworkProfile_STATUS | | | v1api20230202preview | | v1api20231001 | +| AgentPoolType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolUpgradeSettings | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolUpgradeSettings_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AgentPoolWindowsProfile | | | v1api20230202preview | | | +| AgentPoolWindowsProfile_STATUS | | | v1api20230202preview | | | +| AzureKeyVaultKms | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AzureKeyVaultKms_KeyVaultNetworkAccess | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AzureKeyVaultKms_KeyVaultNetworkAccess_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| AzureKeyVaultKms_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ClusterUpgradeSettings | | | v1api20230202preview | | v1api20231001 | +| ClusterUpgradeSettings_STATUS | | | v1api20230202preview | | v1api20231001 | +| ContainerServiceLinuxProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceLinuxProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile_IpFamilies | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile_IpFamilies_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile_KubeProxyConfig | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_STATUS | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_Scheduler | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_IpvsConfig_Scheduler_STATUS | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_Mode | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_Mode_STATUS | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_KubeProxyConfig_STATUS | | | v1api20230202preview | | | +| ContainerServiceNetworkProfile_LoadBalancerSku | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_LoadBalancerSku_STATUS | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkDataplane | | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkDataplane_STATUS | | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkMode | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkMode_STATUS | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkPlugin | v1api20210501 | v1api20230201 | | | | +| ContainerServiceNetworkProfile_NetworkPluginMode | | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkPluginMode_STATUS | | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkPlugin_STATUS | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkPolicy | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_NetworkPolicy_STATUS | v1api20210501 | v1api20230201 | | | v1api20231001 | +| ContainerServiceNetworkProfile_OutboundType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile_OutboundType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceNetworkProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceOSDisk | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceSshConfiguration | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceSshConfiguration_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceSshPublicKey | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ContainerServiceSshPublicKey_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ControlPlaneUpgradeOverride | | | v1api20230202preview | | | +| ControlPlaneUpgradeOverride_STATUS | | | v1api20230202preview | | | +| CreationData | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| CreationData_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| DelegatedResource | | | | | v1api20231001 | +| DelegatedResource_STATUS | | | | | v1api20231001 | +| ErrorAdditionalInfo_STATUS | | | | v1api20230315preview | | +| ErrorDetail_STATUS | | | | v1api20230315preview | | +| ErrorDetail_STATUS_Unrolled | | | | v1api20230315preview | | +| ExtendedLocation | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ExtendedLocationType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ExtendedLocationType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ExtendedLocation_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| Fleet | | | | v1api20230315preview | | +| FleetHubProfile | | | | v1api20230315preview | | +| FleetHubProfile_STATUS | | | | v1api20230315preview | | +| FleetMemberProperties | | | | v1api20230315preview | | +| FleetMemberProperties_STATUS | | | | v1api20230315preview | | +| FleetMemberProvisioningState_STATUS | | | | v1api20230315preview | | +| FleetProperties | | | | v1api20230315preview | | +| FleetProperties_STATUS | | | | v1api20230315preview | | +| FleetProvisioningState_STATUS | | | | v1api20230315preview | | +| Fleet_STATUS | | | | v1api20230315preview | | +| Fleet_Spec | | | | v1api20230315preview | | +| FleetsMember | | | | v1api20230315preview | | +| FleetsUpdateRun | | | | v1api20230315preview | | +| Fleets_Member_STATUS | | | | v1api20230315preview | | +| Fleets_Member_Spec | | | | v1api20230315preview | | +| Fleets_UpdateRun_STATUS | | | | v1api20230315preview | | +| Fleets_UpdateRun_Spec | | | | v1api20230315preview | | +| GPUInstanceProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| GPUInstanceProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| GuardrailsProfile | | | v1api20230202preview | | | +| GuardrailsProfile_Level | | | v1api20230202preview | | | +| GuardrailsProfile_Level_STATUS | | | v1api20230202preview | | | +| GuardrailsProfile_STATUS | | | v1api20230202preview | | | +| IPTag | | | v1api20230202preview | | v1api20231001 | +| IPTag_STATUS | | | v1api20230202preview | | v1api20231001 | +| IstioCertificateAuthority | | | | | v1api20231001 | +| IstioCertificateAuthority_STATUS | | | | | v1api20231001 | +| IstioComponents | | | v1api20230202preview | | v1api20231001 | +| IstioComponents_STATUS | | | v1api20230202preview | | v1api20231001 | +| IstioEgressGateway | | | | | v1api20231001 | +| IstioEgressGateway_STATUS | | | | | v1api20231001 | +| IstioIngressGateway | | | v1api20230202preview | | v1api20231001 | +| IstioIngressGateway_Mode | | | v1api20230202preview | | v1api20231001 | +| IstioIngressGateway_Mode_STATUS | | | v1api20230202preview | | v1api20231001 | +| IstioIngressGateway_STATUS | | | v1api20230202preview | | v1api20231001 | +| IstioPluginCertificateAuthority | | | | | v1api20231001 | +| IstioPluginCertificateAuthority_STATUS | | | | | v1api20231001 | +| IstioServiceMesh | | | v1api20230202preview | | v1api20231001 | +| IstioServiceMesh_STATUS | | | v1api20230202preview | | v1api20231001 | +| KubeletConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| KubeletConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| KubeletDiskType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| KubeletDiskType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| KubernetesSupportPlan | | | | | v1api20231001 | +| KubernetesSupportPlan_STATUS | | | | | v1api20231001 | +| LinuxOSConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| LinuxOSConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| LoadBalancerSku | | | v1api20230202preview | | | +| LoadBalancerSku_STATUS | | | v1api20230202preview | | | +| ManagedCluster | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAADProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAADProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAPIServerAccessProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAPIServerAccessProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAddonProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAddonProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAgentPoolProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAgentPoolProfileProperties | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAgentPoolProfileProperties_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAgentPoolProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile_NodeOSUpgradeChannel_STATUS | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile_UpgradeChannel | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAutoUpgradeProfile_UpgradeChannel_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfileKubeStateMetrics | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfileKubeStateMetrics_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfileMetrics | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfileMetrics_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterAzureMonitorProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterHTTPProxyConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterHTTPProxyConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIdentity_Type | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIdentity_Type_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIdentity_UserAssignedIdentities_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterIngressProfile | | | v1api20230202preview | | | +| ManagedClusterIngressProfileWebAppRouting | | | v1api20230202preview | | | +| ManagedClusterIngressProfileWebAppRouting_STATUS | | | v1api20230202preview | | | +| ManagedClusterIngressProfile_STATUS | | | v1api20230202preview | | | +| ManagedClusterLoadBalancerProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_BackendPoolType | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_BackendPoolType_STATUS | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_ManagedOutboundIPs | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_ManagedOutboundIPs_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_OutboundIPPrefixes | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_OutboundIPPrefixes_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_OutboundIPs | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_OutboundIPs_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterLoadBalancerProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterManagedOutboundIPProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterManagedOutboundIPProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterNATGatewayProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterNATGatewayProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterNodeResourceGroupProfile | | | v1api20230202preview | | | +| ManagedClusterNodeResourceGroupProfile_RestrictionLevel | | | v1api20230202preview | | | +| ManagedClusterNodeResourceGroupProfile_RestrictionLevel_STATUS | | | v1api20230202preview | | | +| ManagedClusterNodeResourceGroupProfile_STATUS | | | v1api20230202preview | | | +| ManagedClusterOIDCIssuerProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterOIDCIssuerProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityException | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityException_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityProvisioningErrorBody_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityProvisioningErrorBody_STATUS_Unrolled | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentityProvisioningError_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentity_ProvisioningInfo_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentity_ProvisioningState_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterPodIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_AutoScalerProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_AutoScalerProfile_Expander | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_AutoScalerProfile_Expander_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_AutoScalerProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_PublicNetworkAccess | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_PublicNetworkAccess_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterProperties_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU_Name | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU_Name_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU_Tier | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSKU_Tier_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileCustomCATrustCertificates | | | v1api20230202preview | | | +| ManagedClusterSecurityProfileDefender | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileDefenderSecurityMonitoring | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileDefenderSecurityMonitoring_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileDefender_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileImageCleaner | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileImageCleaner_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileNodeRestriction | | | v1api20230202preview | | | +| ManagedClusterSecurityProfileNodeRestriction_STATUS | | | v1api20230202preview | | | +| ManagedClusterSecurityProfileWorkloadIdentity | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfileWorkloadIdentity_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterSecurityProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterServicePrincipalProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterServicePrincipalProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileBlobCSIDriver | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileBlobCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileDiskCSIDriver | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileDiskCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileFileCSIDriver | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileFileCSIDriver_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileSnapshotController | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfileSnapshotController_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterStorageProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterUpdate | | | | v1api20230315preview | | +| ManagedClusterUpdate_STATUS | | | | v1api20230315preview | | +| ManagedClusterUpgradeSpec | | | | v1api20230315preview | | +| ManagedClusterUpgradeSpec_STATUS | | | | v1api20230315preview | | +| ManagedClusterUpgradeType | | | | v1api20230315preview | | +| ManagedClusterUpgradeType_STATUS | | | | v1api20230315preview | | +| ManagedClusterWindowsProfile | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWindowsProfile_LicenseType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWindowsProfile_LicenseType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWindowsProfile_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfileKeda | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfileKeda_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ControlledValues | | | v1api20230202preview | | | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_ControlledValues_STATUS | | | v1api20230202preview | | | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_STATUS | | | v1api20230202preview | | v1api20231001 | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_UpdateMode | | | v1api20230202preview | | | +| ManagedClusterWorkloadAutoScalerProfileVerticalPodAutoscaler_UpdateMode_STATUS | | | v1api20230202preview | | | +| ManagedClusterWorkloadAutoScalerProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedCluster_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedCluster_Spec | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClustersAgentPool | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusters_AgentPool_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusters_AgentPool_Spec | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ManagedClusters_TrustedAccessRoleBinding_STATUS | | | v1api20230202preview | | | +| ManagedClusters_TrustedAccessRoleBinding_Spec | | | v1api20230202preview | | | +| MemberUpdateStatus_STATUS | | | | v1api20230315preview | | +| NetworkDataplane | | | v1api20230202preview | | | +| NetworkDataplane_STATUS | | | v1api20230202preview | | | +| NetworkMode | | | v1api20230202preview | | | +| NetworkMode_STATUS | | | v1api20230202preview | | | +| NetworkPlugin | | | v1api20230202preview | | v1api20231001 | +| NetworkPluginMode | | | v1api20230202preview | | | +| NetworkPluginMode_STATUS | | | v1api20230202preview | | | +| NetworkPlugin_STATUS | | | v1api20230202preview | | | +| NetworkPolicy | | | v1api20230202preview | | | +| NetworkPolicy_STATUS | | | v1api20230202preview | | | +| OSDiskType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| OSDiskType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| OSSKU | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| OSSKU_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| OSType | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| OSType_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PortRange | | | v1api20230202preview | | v1api20231001 | +| PortRange_Protocol | | | v1api20230202preview | | v1api20231001 | +| PortRange_Protocol_STATUS | | | v1api20230202preview | | v1api20231001 | +| PortRange_STATUS | | | v1api20230202preview | | v1api20231001 | +| PowerState | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PowerState_Code | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PowerState_Code_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PowerState_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PrivateLinkResource | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| PrivateLinkResource_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ResourceReference | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ResourceReference_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleDownMode | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleDownMode_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleSetEvictionPolicy | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleSetEvictionPolicy_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleSetPriority | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ScaleSetPriority_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| ServiceMeshProfile | | | v1api20230202preview | | v1api20231001 | +| ServiceMeshProfile_Mode | | | v1api20230202preview | | v1api20231001 | +| ServiceMeshProfile_Mode_STATUS | | | v1api20230202preview | | v1api20231001 | +| ServiceMeshProfile_STATUS | | | v1api20230202preview | | v1api20231001 | +| SysctlConfig | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| SysctlConfig_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| SystemData_CreatedByType_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | v1api20231001 | +| SystemData_LastModifiedByType_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | v1api20231001 | +| SystemData_STATUS | | v1api20230201 | v1api20230202preview | v1api20230315preview | v1api20231001 | +| TrustedAccessRoleBinding | | | v1api20230202preview | | | +| TrustedAccessRoleBindingProperties | | | v1api20230202preview | | | +| TrustedAccessRoleBindingProperties_ProvisioningState_STATUS | | | v1api20230202preview | | | +| TrustedAccessRoleBindingProperties_STATUS | | | v1api20230202preview | | | +| UpdateGroup | | | | v1api20230315preview | | +| UpdateGroupStatus_STATUS | | | | v1api20230315preview | | +| UpdateGroup_STATUS | | | | v1api20230315preview | | +| UpdateRunProperties | | | | v1api20230315preview | | +| UpdateRunProperties_STATUS | | | | v1api20230315preview | | +| UpdateRunProvisioningState_STATUS | | | | v1api20230315preview | | +| UpdateRunStatus_STATUS | | | | v1api20230315preview | | +| UpdateRunStrategy | | | | v1api20230315preview | | +| UpdateRunStrategy_STATUS | | | | v1api20230315preview | | +| UpdateStage | | | | v1api20230315preview | | +| UpdateStageStatus_STATUS | | | | v1api20230315preview | | +| UpdateStage_STATUS | | | | v1api20230315preview | | +| UpdateState_STATUS | | | | v1api20230315preview | | +| UpdateStatus_STATUS | | | | v1api20230315preview | | +| UpgradeOverrideSettings | | | v1api20230202preview | | v1api20231001 | +| UpgradeOverrideSettings_STATUS | | | v1api20230202preview | | v1api20231001 | +| UserAssignedIdentity | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| UserAssignedIdentityDetails | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| UserAssignedIdentity_STATUS | v1api20210501 | v1api20230201 | v1api20230202preview | | v1api20231001 | +| WaitStatus_STATUS | | | | v1api20230315preview | | +| WindowsGmsaProfile | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| WindowsGmsaProfile_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| WorkloadRuntime | | v1api20230201 | v1api20230202preview | | v1api20231001 | +| WorkloadRuntime_STATUS | | v1api20230201 | v1api20230202preview | | v1api20231001 | diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml index 127d4562eb7..bad9da6a115 100644 --- a/v2/azure-arm.yaml +++ b/v2/azure-arm.yaml @@ -44,7 +44,7 @@ supportedResourcesReport: typeFilters: - action: include group: containerservice - version: v*20230315preview + version: v*20230315preview;v*20230702preview because: We want to support Fleet - action: include @@ -1290,6 +1290,29 @@ objectModelConfiguration: Fleets_UpdateRun: $exportAs: FleetsUpdateRun $supportedFrom: v2.4.0 + 2023-10-01: + ContainerServiceNetworkProfile_NetworkPlugin: + $renameTo: NetworkPlugin + DelegatedResource: + ResourceId: + $armReference: true + ManagedCluster: + $export: true + $supportedFrom: v2.5.0 + $azureGeneratedSecrets: + - AdminCredentials + - UserCredentials + $generatedConfigs: + OIDCIssuerProfile: $.Status.OidcIssuerProfile.IssuerURL + ManagedClusters_AgentPool: + $exportAs: ManagedClustersAgentPool + $supportedFrom: v2.5.0 + ManagedClusterServicePrincipalProfile: + Secret: + $isSecret: true + PrivateLinkResource: + Id: + $armReference: true datafactory: 2018-06-01: PurviewConfiguration: diff --git a/v2/cmd/asoctl/internal/importing/importable_arm_resource_test.go b/v2/cmd/asoctl/internal/importing/importable_arm_resource_test.go index c84181ae580..2f7182ee2bf 100644 --- a/v2/cmd/asoctl/internal/importing/importable_arm_resource_test.go +++ b/v2/cmd/asoctl/internal/importing/importable_arm_resource_test.go @@ -111,7 +111,7 @@ func Test_ARMResourceImporter_GroupVersionKindFromARMID(t *testing.T) { armId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/aso-rg/providers/Microsoft.ContainerService/managedClusters/aso-cluster", expectedGroup: "containerservice.azure.com", expectedKind: "ManagedCluster", - expectedVersion: "v1api20230201", + expectedVersion: "v1api20231001", }, } diff --git a/v2/internal/controllers/crd_aks_fleet_20230315preview_test.go b/v2/internal/controllers/containerservice_fleet_v1api20230315preview_test.go similarity index 100% rename from v2/internal/controllers/crd_aks_fleet_20230315preview_test.go rename to v2/internal/controllers/containerservice_fleet_v1api20230315preview_test.go diff --git a/v2/internal/controllers/crd_aks_managedcluster_20210501_test.go b/v2/internal/controllers/containerservice_managedcluster_v1api20210501_test.go similarity index 100% rename from v2/internal/controllers/crd_aks_managedcluster_20210501_test.go rename to v2/internal/controllers/containerservice_managedcluster_v1api20210501_test.go diff --git a/v2/internal/controllers/crd_aks_managedcluster_20230102preview_test.go b/v2/internal/controllers/containerservice_managedcluster_v1api20230102preview_test.go similarity index 100% rename from v2/internal/controllers/crd_aks_managedcluster_20230102preview_test.go rename to v2/internal/controllers/containerservice_managedcluster_v1api20230102preview_test.go diff --git a/v2/internal/controllers/containerservice_managedcluster_v1api20231001_test.go b/v2/internal/controllers/containerservice_managedcluster_v1api20231001_test.go new file mode 100644 index 00000000000..afca4008304 --- /dev/null +++ b/v2/internal/controllers/containerservice_managedcluster_v1api20231001_test.go @@ -0,0 +1,183 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "testing" + + . "github.com/onsi/gomega" + + aks "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001" + "github.com/Azure/azure-service-operator/v2/api/resources/v1api20200601" + "github.com/Azure/azure-service-operator/v2/internal/testcommon" + "github.com/Azure/azure-service-operator/v2/internal/util/to" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +func Test_AKS_ManagedCluster_20231001_CRUD(t *testing.T) { + t.Parallel() + + tc := globalTestContext.ForTest(t) + + rg := tc.CreateTestResourceGroupAndWait() + + adminUsername := "adminUser" + sshPublicKey, err := tc.GenerateSSHKey(2048) + tc.Expect(err).ToNot(HaveOccurred()) + + cluster := NewManagedCluster20231001(tc, rg, adminUsername, sshPublicKey) + + tc.CreateResourceAndWait(cluster) + + tc.Expect(cluster.Status.Id).ToNot(BeNil()) + armId := *cluster.Status.Id + + // Perform a simple patch + skuName := aks.ManagedClusterSKU_Name_Base + skuTier := aks.ManagedClusterSKU_Tier_Standard + old := cluster.DeepCopy() + cluster.Spec.Sku = &aks.ManagedClusterSKU{ + Name: &skuName, + Tier: &skuTier, + } + tc.PatchResourceAndWait(old, cluster) + tc.Expect(cluster.Status.Sku).ToNot(BeNil()) + tc.Expect(cluster.Status.Sku.Name).ToNot(BeNil()) + tc.Expect(*cluster.Status.Sku.Name).To(Equal(aks.ManagedClusterSKU_Name_STATUS_Base)) + tc.Expect(cluster.Status.Sku.Tier).ToNot(BeNil()) + tc.Expect(*cluster.Status.Sku.Tier).To(Equal(aks.ManagedClusterSKU_Tier_STATUS_Standard)) + + // Run sub tests + tc.RunSubtests( + testcommon.Subtest{ + Name: "AKS KubeConfig secret & configmap CRUD", + Test: func(tc *testcommon.KubePerTestContext) { + AKS_ManagedCluster_Kubeconfig_20231001_OperatorSpec(tc, cluster) + }, + }) + tc.RunParallelSubtests( + testcommon.Subtest{ + Name: "AKS AgentPool CRUD", + Test: func(tc *testcommon.KubePerTestContext) { + AKS_ManagedCluster_AgentPool_20231001_CRUD(tc, cluster) + }, + }, + ) + + tc.DeleteResourceAndWait(cluster) + + // Ensure that the cluster was really deleted in Azure + exists, retryAfter, err := tc.AzureClient.CheckExistenceWithGetByID(tc.Ctx, armId, string(aks.APIVersion_Value)) + tc.Expect(err).ToNot(HaveOccurred()) + tc.Expect(retryAfter).To(BeZero()) + tc.Expect(exists).To(BeFalse()) +} + +func NewManagedCluster20231001(tc *testcommon.KubePerTestContext, rg *v1api20200601.ResourceGroup, adminUsername string, sshPublicKey *string) *aks.ManagedCluster { + region := to.Ptr("westus3") // TODO: the default test region of westus2 doesn't allow ds2_v2 at the moment + //region := tc.AzureRegion + + cluster := &aks.ManagedCluster{ + ObjectMeta: tc.MakeObjectMeta("mc"), + Spec: aks.ManagedCluster_Spec{ + Location: region, + Owner: testcommon.AsOwner(rg), + DnsPrefix: to.Ptr("aso"), + AgentPoolProfiles: []aks.ManagedClusterAgentPoolProfile{ + { + Name: to.Ptr("ap1"), + Count: to.Ptr(1), + VmSize: to.Ptr("Standard_DS2_v2"), + OsType: to.Ptr(aks.OSType_Linux), + Mode: to.Ptr(aks.AgentPoolMode_System), + }, + }, + LinuxProfile: &aks.ContainerServiceLinuxProfile{ + AdminUsername: &adminUsername, + Ssh: &aks.ContainerServiceSshConfiguration{ + PublicKeys: []aks.ContainerServiceSshPublicKey{ + { + KeyData: sshPublicKey, + }, + }, + }, + }, + Identity: &aks.ManagedClusterIdentity{ + Type: to.Ptr(aks.ManagedClusterIdentity_Type_SystemAssigned), + }, + NetworkProfile: &aks.ContainerServiceNetworkProfile{ + NetworkPlugin: to.Ptr(aks.NetworkPlugin_Azure), + }, + OidcIssuerProfile: &aks.ManagedClusterOIDCIssuerProfile{ + Enabled: to.Ptr(true), + }, + }, + } + + return cluster +} + +func AKS_ManagedCluster_AgentPool_20231001_CRUD(tc *testcommon.KubePerTestContext, cluster *aks.ManagedCluster) { + osType := aks.OSType_Linux + agentPoolMode := aks.AgentPoolMode_System + + agentPool := &aks.ManagedClustersAgentPool{ + ObjectMeta: tc.MakeObjectMetaWithName("ap2"), + Spec: aks.ManagedClusters_AgentPool_Spec{ + Owner: testcommon.AsOwner(cluster), + Count: to.Ptr(1), + VmSize: to.Ptr("Standard_DS2_v2"), + OsType: &osType, + Mode: &agentPoolMode, + }, + } + + tc.CreateResourceAndWait(agentPool) + // Note: If this test is just too slow to record (it's pretty slow), we can remove this + // delete entirely which will speed it up some. Leaving it here for now though as we + // need it to test the DELETE path of agent pool. If this is removed, the agent pool + // will still be cleaned up by the cluster delete that happens later. + defer tc.DeleteResourceAndWait(agentPool) + + tc.Expect(agentPool.Status.Id).ToNot(BeNil()) + + // a basic assertion on a few properties + tc.Expect(agentPool.Status.Count).To(Equal(to.Ptr(1))) + tc.Expect(agentPool.Status.OsType).ToNot(BeNil()) + tc.Expect(string(*agentPool.Status.OsType)).To(Equal(string(osType))) + + // Perform a simple patch + old := agentPool.DeepCopy() + agentPool.Spec.NodeLabels = map[string]string{ + "mylabel": "label", + } + tc.PatchResourceAndWait(old, agentPool) + tc.Expect(agentPool.Status.NodeLabels).To(HaveKey("mylabel")) + + // Perform another patch which removes the above label. We expect it should actually be removed. + old = agentPool.DeepCopy() + agentPool.Spec.NodeLabels = nil + tc.PatchResourceAndWait(old, agentPool) + tc.Expect(agentPool.Status.NodeLabels).To(BeEmpty()) +} + +func AKS_ManagedCluster_Kubeconfig_20231001_OperatorSpec(tc *testcommon.KubePerTestContext, cluster *aks.ManagedCluster) { + old := cluster.DeepCopy() + secret := "kubeconfig" + cluster.Spec.OperatorSpec = &aks.ManagedClusterOperatorSpec{ + ConfigMaps: &aks.ManagedClusterOperatorConfigMaps{ + OIDCIssuerProfile: &genruntime.ConfigMapDestination{Name: "oidc", Key: "issuer"}, + }, + Secrets: &aks.ManagedClusterOperatorSecrets{ + AdminCredentials: &genruntime.SecretDestination{Name: secret, Key: "admin"}, + UserCredentials: &genruntime.SecretDestination{Name: secret, Key: "user"}, + }, + } + + tc.PatchResourceAndWait(old, cluster) + tc.ExpectSecretHasKeys(secret, "admin", "user") + tc.ExpectConfigMapHasKeysAndValues("oidc", "issuer", *cluster.Status.OidcIssuerProfile.IssuerURL) +} diff --git a/v2/internal/controllers/controller_resources_gen.go b/v2/internal/controllers/controller_resources_gen.go index d35fc438c8b..dd8e761d39f 100644 --- a/v2/internal/controllers/controller_resources_gen.go +++ b/v2/internal/controllers/controller_resources_gen.go @@ -56,6 +56,8 @@ import ( containerservice_v20230202ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230202preview/storage" containerservice_v20230315p "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230315preview" containerservice_v20230315ps "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20230315preview/storage" + containerservice_v20231001 "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001" + containerservice_v20231001s "github.com/Azure/azure-service-operator/v2/api/containerservice/v1api20231001/storage" datafactory_customizations "github.com/Azure/azure-service-operator/v2/api/datafactory/customizations" datafactory_v20180601 "github.com/Azure/azure-service-operator/v2/api/datafactory/v1api20180601" datafactory_v20180601s "github.com/Azure/azure-service-operator/v2/api/datafactory/v1api20180601/storage" @@ -392,8 +394,12 @@ func getKnownStorageTypes() []*registration.StorageType { }, }) result = append(result, ®istration.StorageType{Obj: new(containerregistry_v20210901s.Registry)}) + result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230202ps.TrustedAccessRoleBinding)}) + result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.Fleet)}) + result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.FleetsMember)}) + result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.FleetsUpdateRun)}) result = append(result, ®istration.StorageType{ - Obj: new(containerservice_v20230201s.ManagedCluster), + Obj: new(containerservice_v20231001s.ManagedCluster), Indexes: []registration.Index{ { Key: ".spec.servicePrincipalProfile.secret", @@ -403,15 +409,11 @@ func getKnownStorageTypes() []*registration.StorageType { Watches: []registration.Watch{ { Type: &v1.Secret{}, - MakeEventHandler: watchSecretsFactory([]string{".spec.servicePrincipalProfile.secret"}, &containerservice_v20230201s.ManagedClusterList{}), + MakeEventHandler: watchSecretsFactory([]string{".spec.servicePrincipalProfile.secret"}, &containerservice_v20231001s.ManagedClusterList{}), }, }, }) - result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230201s.ManagedClustersAgentPool)}) - result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230202ps.TrustedAccessRoleBinding)}) - result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.Fleet)}) - result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.FleetsMember)}) - result = append(result, ®istration.StorageType{Obj: new(containerservice_v20230315ps.FleetsUpdateRun)}) + result = append(result, ®istration.StorageType{Obj: new(containerservice_v20231001s.ManagedClustersAgentPool)}) result = append(result, ®istration.StorageType{Obj: new(datafactory_v20180601s.Factory)}) result = append(result, ®istration.StorageType{Obj: new(dataprotection_v20230101s.BackupVault)}) result = append(result, ®istration.StorageType{Obj: new(dataprotection_v20230101s.BackupVaultsBackupPolicy)}) @@ -1085,6 +1087,8 @@ func getKnownTypes() []client.Object { new(containerservice_v20230315ps.Fleet), new(containerservice_v20230315ps.FleetsMember), new(containerservice_v20230315ps.FleetsUpdateRun)) + result = append(result, new(containerservice_v20231001.ManagedCluster), new(containerservice_v20231001.ManagedClustersAgentPool)) + result = append(result, new(containerservice_v20231001s.ManagedCluster), new(containerservice_v20231001s.ManagedClustersAgentPool)) result = append(result, new(datafactory_v20180601.Factory)) result = append(result, new(datafactory_v20180601s.Factory)) result = append(result, new(dataprotection_v20230101.BackupVault), new(dataprotection_v20230101.BackupVaultsBackupPolicy)) @@ -1576,6 +1580,8 @@ func createScheme() *runtime.Scheme { _ = containerservice_v20230202ps.AddToScheme(scheme) _ = containerservice_v20230315p.AddToScheme(scheme) _ = containerservice_v20230315ps.AddToScheme(scheme) + _ = containerservice_v20231001.AddToScheme(scheme) + _ = containerservice_v20231001s.AddToScheme(scheme) _ = datafactory_v20180601.AddToScheme(scheme) _ = datafactory_v20180601s.AddToScheme(scheme) _ = dataprotection_v20230101.AddToScheme(scheme) @@ -2212,9 +2218,9 @@ func indexContainerinstanceContainerGroupWorkspaceKey(rawObj client.Object) []st return obj.Spec.Diagnostics.LogAnalytics.WorkspaceKey.Index() } -// indexContainerserviceManagedClusterSecret an index function for containerservice_v20230201s.ManagedCluster .spec.servicePrincipalProfile.secret +// indexContainerserviceManagedClusterSecret an index function for containerservice_v20231001s.ManagedCluster .spec.servicePrincipalProfile.secret func indexContainerserviceManagedClusterSecret(rawObj client.Object) []string { - obj, ok := rawObj.(*containerservice_v20230201s.ManagedCluster) + obj, ok := rawObj.(*containerservice_v20231001s.ManagedCluster) if !ok { return nil } diff --git a/v2/internal/controllers/recordings/Test_AKS_ManagedCluster_20231001_CRUD.yaml b/v2/internal/controllers/recordings/Test_AKS_ManagedCluster_20231001_CRUD.yaml new file mode 100644 index 00000000000..1f361f199cd --- /dev/null +++ b/v2/internal/controllers/recordings/Test_AKS_ManagedCluster_20231001_CRUD.yaml @@ -0,0 +1,4882 @@ +--- +version: 1 +interactions: +- request: + body: '{"location":"westus2","name":"asotest-rg-rhrpbh","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh?api-version=2020-06-01 + method: PUT + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh","name":"asotest-rg-rhrpbh","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2C07DEEDDD6C4798B1B81FB501DEEB57 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:36:55Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh?api-version=2020-06-01 + method: GET + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh","name":"asotest-rg-rhrpbh","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: EBEA0AC6C120432186ECDFB6E1CD8F4C Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:36:59Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep'' + under resource group ''asotest-rg-rhrpbh'' was not found. For more details please + go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "249" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 348D3DFA28F24B228F9932A988EB42A5 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:00Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: '{"identity":{"delegatedResources":null,"type":"SystemAssigned"},"location":"westus3","name":"asotest-mc-kpgpep","properties":{"addonProfiles":null,"agentPoolProfiles":[{"availabilityZones":null,"count":1,"mode":"System","name":"ap1","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}],"dnsPrefix":"aso","identityProfile":null,"linuxProfile":{"adminUsername":"adminUser","ssh":{"publicKeys":[{"keyData":"ssh-rsa + {KEY}\n"}]}},"networkProfile":{"ipFamilies":null,"networkPlugin":"azure","podCidrs":null,"serviceCidrs":null},"oidcIssuerProfile":{"enabled":true},"privateLinkResources":null},"tags":{}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "1000" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": {}, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + } + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + Cache-Control: + - no-cache + Content-Length: + - "3234" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: DBAE0418BCDE480885AB0C7EA85EFA0A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:01Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 78D4AF4F8C774BEDA2C4775CE0CD125B Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:09Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A82E69B64CAE46B8A2C576F22CC7E18A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:12Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FF3C699B58264616B8CB9303A55EDCA9 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:17Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 506321CA2A67494B8551B0759AA683B5 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:25Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8DF84F15508940C1B3503C707CF809C7 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:37:42Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F07493B25DC9422A820A29BA7D0A2AF0 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:38:14Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 959862A6671F49C89ECAC1645CE7BB1D Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:39:15Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/b3ccdc7e-f9c2-4e36-b098-a776d32c2124?api-version=2016-03-30&t=638374126284752939&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GEWd9Tt-Cz3lGuCfX08iYMPtjbkonaYkJfTBz39XcvUWLqAxHD_PB1NHFYtESQD5JkpMj2iL3OsjYCA3vTsqRBkVSu7Y0oUgkl1Id6Vb00D-uyeShcSuB7qfWlOsr_vgtxFedJb3RAYuOlpK_y-Jd9hhgmo-VYCqMfQf2xtFnkH6a-lf0g7wFRok2jSvecgnQdGLV495C8bGeOgSM6MR-OCORANt2-EhzunNjfgXhzbjgcIqq_mVUxMjy1CDIYinCg7GWfuCJ5ZOzGNMAX1yVwBsdKuj8Eg_tNq9A4oszWU8M6iDXnnfTQVbe2UpKn9CvgKyOk1A0keyH5Nj45hq2w&h=-_Pvq1rfiBhahX-pMeCNM36aASAcd3LAUElkoheHpXk + method: GET + response: + body: |- + { + "name": "b3ccdc7e-f9c2-4e36-b098-a776d32c2124", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 00304C553F864FF1A04E642AE6B951BC Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:16Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3877" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D88B1FC02E014215B30B1977AAD29B0C Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:17Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3877" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8A7895FCC18940CBB413791857EEB967 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:17Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3877" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 03DBC6D0E66747CBAD5F806D628877B2 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:21Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"identity":{"delegatedResources":null,"type":"SystemAssigned"},"location":"westus3","name":"asotest-mc-kpgpep","properties":{"addonProfiles":null,"agentPoolProfiles":[{"availabilityZones":null,"count":1,"mode":"System","name":"ap1","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}],"dnsPrefix":"aso","identityProfile":null,"linuxProfile":{"adminUsername":"adminUser","ssh":{"publicKeys":[{"keyData":"ssh-rsa + {KEY}\n"}]}},"networkProfile":{"ipFamilies":null,"networkPlugin":"azure","podCidrs":null,"serviceCidrs":null},"oidcIssuerProfile":{"enabled":true},"privateLinkResources":null},"sku":{"name":"Base","tier":"Standard"},"tags":{}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "1040" + Content-Type: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "tags": {}, + "nodeLabels": {}, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + Cache-Control: + - no-cache + Content-Length: + - "3921" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 0EC1072356EC437A910CCA99051D119F Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:22Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 84C5EF4F33EA4AC28B254E72F0C291DB Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:27Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 235948C159544D3FBDF8ACF3D19DC8E5 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:30Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 0F9C823992F645FFB487B5DD5C1B46EC Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:35Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 635DB459231244449880C09E05ABF2AA Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:40:43Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CEE65D24BC224FE3AB175B54411FCC5A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:41:00Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B0EA4C42CBC94F0397F305053FE97B2F Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:41:32Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "373" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3D0F55F3FE464F7C8C07094A8CA471ED Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:42:33Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5151dbb2-c9a2-4b8b-8119-4782c40f73e1?api-version=2016-03-30&t=638374128265991621&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=iH_gSyPkWJq1xoAzsqnoe6_-EkiHx3M88_oCdhbRW1VnvcZ_YrZdP-YyVCQsDFqTV10U6T4tdSBLrXHvAuGVkBHImSpoBXJ4Nj5YZaJpmc52ZKLy_BSOZMVBDSoFuymizBFt2G4DbasDq780HRPqhi-Mv2AmCdAcJwVqZkefrxhhHvrIuNk1efOBhPG2JwNkONIxkNaXU7mHs6HOnGYT5_GsC-7HffgAUmlwsCk0oYvH_e2xg_uouVzUIvteOT7ujLvW15unNRzo09893ldU0xXBxq6HGFoEXi3dfML27wkw-rN04w6qvcdhYiWedDga3XmSDE9C3NdIjIPg0HLJTw&h=oKDbw4Tb04nXQO_Ng7z7uzfewHYfLfNi28WJ2E4XwN4 + method: GET + response: + body: |- + { + "name": "5151dbb2-c9a2-4b8b-8119-4782c40f73e1", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "417" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E4EDEF93EB694377ABED71DDE3414215 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:34Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3883" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FF7A6D95F8B14872BF73EA317FA2C3D0 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:35Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3883" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2297A398D1E04942BC5F3CC3DEEA877A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:35Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3883" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BFC305B2CEC14689834C096759A38AFE Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:41Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"identity":{"delegatedResources":null,"type":"SystemAssigned"},"location":"westus3","name":"asotest-mc-kpgpep","properties":{"addonProfiles":null,"agentPoolProfiles":[{"availabilityZones":null,"count":1,"mode":"System","name":"ap1","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}],"dnsPrefix":"aso","identityProfile":null,"linuxProfile":{"adminUsername":"adminUser","ssh":{"publicKeys":[{"keyData":"ssh-rsa + {KEY}\n"}]}},"networkProfile":{"ipFamilies":null,"networkPlugin":"azure","podCidrs":null,"serviceCidrs":null},"oidcIssuerProfile":{"enabled":true},"privateLinkResources":null},"sku":{"name":"Base","tier":"Standard"},"tags":{}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "1040" + Content-Type: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "tags": {}, + "nodeLabels": {}, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + Cache-Control: + - no-cache + Content-Length: + - "3921" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BD97D877EEF844E3A6141F52BAF22CF3 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:42Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2C3BAF6BB1F74F5A814A1370BB025ADC Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:48Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3384485243CA4181A12B9391A0559A41 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:51Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 94F55B573F724B069788255830B678AA Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:43:55Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: AFF7022A21CA48EF92C57CA6CB18780B Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:44:04Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 801243E71B324FAE9F06CC357A3FD94C Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:44:20Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C5A973264865482BB3FD3B3D56B55B83 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:44:53Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/5399768e-04ab-4235-9f3e-ffb47e3bbfb0?api-version=2016-03-30&t=638374130271245679&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=uQ-kVhnoLq7TKRPf2b6_4VYgdK0vKNJnYKi6BUurBBX99_WB_negzmt_eX6nruTtph7bpSwOLAZvB3AKKK_l2i4Phg_sFzAn0i0bx9mDOWwt7VB3HD1b8j-9Ijv63oIHZD_3pB06I2sPf4x7wHnoI15mcZaak7kcl_K9W5PV3cmn7Cudde9JaIyWSXKOGzwHMX3w-gJ3_EbrU1VGBB-bIwnNMt11RMKpKbaKiOsVOxOSQGcqhJWSXaikJxI7yT55CfTdGFOYhq8SpYynhs36LUnc2yBpjDiiy9JnZaoE-5ZN873soh3SUaB1ACnM0768LlzG550e-HAU85IpgpMFxQ&h=JE-lhXVuhJ_XWMYdSZumpPO-tZQewrgy3knJvZL2lxg + method: GET + response: + body: |- + { + "name": "5399768e-04ab-4235-9f3e-ffb47e3bbfb0", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "418" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8BB90B9043EF434198030CEA7B7B9F14 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:45:54Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3883" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B1EE34EC873A4A16B60FB19A32A6F082 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:45:55Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep", + "location": "westus3", + "name": "asotest-mc-kpgpep", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27.7", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-oa09ci4d.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-oa09ci4d.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "ap1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "linuxProfile": { + "adminUsername": "adminUser", + "ssh": { + "publicKeys": [ + { + "keyData": "ssh-rsa {KEY}\n" + } + ] + } + }, + "windowsProfile": { + "adminUsername": "azureuser", + "enableCSIProxy": true + }, + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "azure", + "networkDataplane": "azure", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.Network/publicIPAddresses/fa6053a6-3b0c-4777-b5bf-f3c58bed0ddd" + } + ] + }, + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-rhrpbh_asotest-mc-kpgpep_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/asotest-mc-kpgpep-agentpool", + "clientId": "d3cd0af5-59a5-40bd-81f5-b1765bc92194", + "objectId": "7f9723ff-017c-4f87-beb2-ad5c74f4abb3" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": true, + "issuerURL": "https://westus3.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/28a435c5-5462-4e63-9d7a-2653fe478cd7/" + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656fa6148848f000015a54ad" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "10f1e66c-e727-4f55-94e0-6a428aef6b8b", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Standard" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3883" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 781D3A0501C64D2D8EFF4B9D3DD26613 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:45:56Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/listClusterAdminCredential?api-version=2022-04-01 + method: POST + response: + body: |- + { + "kubeconfigs": [ + { + "name": "clusterAdmin", + "value": "IA==" + } + ] + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "13077" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CD1BC55650D04E1891C8E1F90048B704 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:45:57Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/listClusterUserCredential?api-version=2022-04-01 + method: POST + response: + body: |- + { + "kubeconfigs": [ + { + "name": "clusterUser", + "value": "IA==" + } + ] + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "13076" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4D465B51F9A74866A86C3E583E4F266E Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:45:58Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "code": "NotFound", + "details": [ + { + "code": "Unspecified", + "message": "rpc error: code = NotFound desc = Agent Pool not found" + } + ], + "message": "Could not find the agentpool: ap2 in subscription: 00000000-0000-0000-0000-000000000000, resourceGroup: asotest-rg-rhrpbh, resourceName: asotest-mc-kpgpep.", + "subcode": "GetAgentPool_NotFound" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "364" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A11EC5A4095C4E9DAA6C61557D8C07D1 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:01Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: '{"name":"ap2","properties":{"availabilityZones":null,"count":1,"mode":"System","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "166" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + Cache-Control: + - no-cache + Content-Length: + - "822" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 760E4CEDBE3E4332997EF1C238857240 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:02Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6BEAD432B3A749FA8E8990A2FDEF03CB Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:09Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 99D959850EFB4B42869B9738166B2482 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:11Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 01623B3FEF33454FB2BA31DD45061F2A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:16Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 7C5C1832AF404A068026B832E435B67B Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:24Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B112326A503549D190CC6BC628CF26B0 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:46:41Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F261F85AF54D405C9C9FEFBC163875A5 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:47:13Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/4f0d4759-263a-4d20-bc36-496b087d156a?api-version=2016-03-30&t=638374131679721921&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Kn-UCa_OQLi4D-T0vA9pMVrZTyp5YbU4z7ALkfhixFvK4FcKqML0C2Tjyuxi24-y0RmIt5Jp54WUipalMeWD0XjdNbu0hgP4Ml3n94369F4-xpx5_kbsk3uQxf3Bd6YtIEuIpDO1qx1bf8v3vpKfYhN3BhbEabTfMwHY5OGIEVQnfb6kSUYKLKjL_IPR75P2Y-lDtc6nUM_cXjNIe_j4N2d7C8YPx3mnfdAMqFiP2baY3sG5DAvs68LZtBfwxB1dyzhGUvAi_XJoHzMxohVFaYilonbjAMMfwvHigMVX7d_ZKnz5RxAMPZBBuZhKF1WuRxfB9WT0j2n_6wEMVHSyCg&h=UW9lcOy44-ywmzAkH3doBxcJmHNAaDQetirZB2Pmn7Y + method: GET + response: + body: |- + { + "name": "4f0d4759-263a-4d20-bc36-496b087d156a", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D41901D153FD469597AF3F5BFEB89D88 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:14Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "823" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D8DADCF9C9B94576ABF70B7CF119BEF9 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:14Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "823" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CB79908FAC634C6D8CA1CDC9F2B6CEC5 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:15Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "823" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BB8C3E7C19864294AEF64509048846B3 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:17Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"ap2","properties":{"availabilityZones":null,"count":1,"mode":"System","nodeLabels":{"mylabel":"label"},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "183" + Content-Type: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": { + "mylabel": "label" + }, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/81eef941-4dfc-48dc-9a46-34704ee3f13b?api-version=2016-03-30&t=638374133024578837&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=EVstwgAvhIiBmQ6BtPhwVpYRlBd2yTws9mLphTrAoFhdFMymaFLm-vGZf4_nOPTkZa4hmE407DemgkPN-x_DC0pmEbdHVP2qz8GQZN9s3g5LzSK2hoD8Ay0cxCsjGRNiG6lJ9IDYhhJG_JOnSnjk8gOIS5GYSPODDmQUFb5D0OF2eoVI0yMIq6ugV2wR0oXL-0KLQ0btQRFoBcnyoIvVkCwnMlBA-SdvMTMWWZJv5bXznqv4N_J-mvzupBqEcU6rRUCugtV1UBFmPIe144wDzNlk_cDHZ-bAZKxuqOqd2y1ESnCMrakudlDy7hzkbdpWUjWqf9TzDCmgN7u5kZGHCw&h=v42UuN40d0AsfOxMMbHalNsX8Li9DYs1e1nvfC8cSts + Cache-Control: + - no-cache + Content-Length: + - "870" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D840F438F4464363AC10B130C375DE9B Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:18Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/81eef941-4dfc-48dc-9a46-34704ee3f13b?api-version=2016-03-30&t=638374133024578837&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=EVstwgAvhIiBmQ6BtPhwVpYRlBd2yTws9mLphTrAoFhdFMymaFLm-vGZf4_nOPTkZa4hmE407DemgkPN-x_DC0pmEbdHVP2qz8GQZN9s3g5LzSK2hoD8Ay0cxCsjGRNiG6lJ9IDYhhJG_JOnSnjk8gOIS5GYSPODDmQUFb5D0OF2eoVI0yMIq6ugV2wR0oXL-0KLQ0btQRFoBcnyoIvVkCwnMlBA-SdvMTMWWZJv5bXznqv4N_J-mvzupBqEcU6rRUCugtV1UBFmPIe144wDzNlk_cDHZ-bAZKxuqOqd2y1ESnCMrakudlDy7hzkbdpWUjWqf9TzDCmgN7u5kZGHCw&h=v42UuN40d0AsfOxMMbHalNsX8Li9DYs1e1nvfC8cSts + method: GET + response: + body: |- + { + "name": "81eef941-4dfc-48dc-9a46-34704ee3f13b", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 7D6192B81337428EA515C1A30000AA2A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:23Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/81eef941-4dfc-48dc-9a46-34704ee3f13b?api-version=2016-03-30&t=638374133024578837&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=EVstwgAvhIiBmQ6BtPhwVpYRlBd2yTws9mLphTrAoFhdFMymaFLm-vGZf4_nOPTkZa4hmE407DemgkPN-x_DC0pmEbdHVP2qz8GQZN9s3g5LzSK2hoD8Ay0cxCsjGRNiG6lJ9IDYhhJG_JOnSnjk8gOIS5GYSPODDmQUFb5D0OF2eoVI0yMIq6ugV2wR0oXL-0KLQ0btQRFoBcnyoIvVkCwnMlBA-SdvMTMWWZJv5bXznqv4N_J-mvzupBqEcU6rRUCugtV1UBFmPIe144wDzNlk_cDHZ-bAZKxuqOqd2y1ESnCMrakudlDy7hzkbdpWUjWqf9TzDCmgN7u5kZGHCw&h=v42UuN40d0AsfOxMMbHalNsX8Li9DYs1e1nvfC8cSts + method: GET + response: + body: |- + { + "name": "81eef941-4dfc-48dc-9a46-34704ee3f13b", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 9468543EA9E0464DA3A4DB6A7553A599 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:26Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/81eef941-4dfc-48dc-9a46-34704ee3f13b?api-version=2016-03-30&t=638374133024578837&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=EVstwgAvhIiBmQ6BtPhwVpYRlBd2yTws9mLphTrAoFhdFMymaFLm-vGZf4_nOPTkZa4hmE407DemgkPN-x_DC0pmEbdHVP2qz8GQZN9s3g5LzSK2hoD8Ay0cxCsjGRNiG6lJ9IDYhhJG_JOnSnjk8gOIS5GYSPODDmQUFb5D0OF2eoVI0yMIq6ugV2wR0oXL-0KLQ0btQRFoBcnyoIvVkCwnMlBA-SdvMTMWWZJv5bXznqv4N_J-mvzupBqEcU6rRUCugtV1UBFmPIe144wDzNlk_cDHZ-bAZKxuqOqd2y1ESnCMrakudlDy7hzkbdpWUjWqf9TzDCmgN7u5kZGHCw&h=v42UuN40d0AsfOxMMbHalNsX8Li9DYs1e1nvfC8cSts + method: GET + response: + body: |- + { + "name": "81eef941-4dfc-48dc-9a46-34704ee3f13b", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E82F88B719B64AB09F774D61ED7AB7BF Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:30Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": { + "mylabel": "label" + }, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "871" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 682BEAE8FA1B472D86BF035574B35C01 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:31Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": { + "mylabel": "label" + }, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "871" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 98411D97D90E40B4B4C5CF9A2B373714 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:32Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": { + "mylabel": "label" + }, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "871" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 9A2DD7D24A5C4AA2B2AFEEE1343196E9 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:37Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"name":"ap2","properties":{"availabilityZones":null,"count":1,"mode":"System","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "166" + Content-Type: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Updating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/9e841516-2eb8-42d0-ba54-d6907920addb?api-version=2016-03-30&t=638374133212213266&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=lM0t4vdRbFAPsy2DqyQn8Bza12eHv9qh8o9t9B84qWhg5XPxwNX6B2B2SgslC_mGg_I2Slt32xkJqIdpc4JhOFAXKFXrDO3T1uENHXsoaUS6_QMiUaehFFHkxyRXJNgLAU5Jg8_R1lOjfzhKTJLYhqZUMfagbRymyKh8E4ug-AqC9aMjKAe8HdlBcUPVYDABg6mDSg29mRM_NZ1_LY9E3UJ-tPezQaepCvLvkifP4kN8ONJEIosp0glmKt-tZ9jYYAzmk6SsyhyjSinng544T-_GlQ_4kP_ymqyU_m9MeSgwVUUfQm7tQ4OM_r7aO6bztPEg19KH7Uuvbt-okAmACg&h=EdVb1wOL-r8wR87NXH0JOYNYg27N3lsy8dRR5RAGRSU + Cache-Control: + - no-cache + Content-Length: + - "822" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 188EF4ACA9534C7381431567E4B48DDD Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:37Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/9e841516-2eb8-42d0-ba54-d6907920addb?api-version=2016-03-30&t=638374133212213266&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=lM0t4vdRbFAPsy2DqyQn8Bza12eHv9qh8o9t9B84qWhg5XPxwNX6B2B2SgslC_mGg_I2Slt32xkJqIdpc4JhOFAXKFXrDO3T1uENHXsoaUS6_QMiUaehFFHkxyRXJNgLAU5Jg8_R1lOjfzhKTJLYhqZUMfagbRymyKh8E4ug-AqC9aMjKAe8HdlBcUPVYDABg6mDSg29mRM_NZ1_LY9E3UJ-tPezQaepCvLvkifP4kN8ONJEIosp0glmKt-tZ9jYYAzmk6SsyhyjSinng544T-_GlQ_4kP_ymqyU_m9MeSgwVUUfQm7tQ4OM_r7aO6bztPEg19KH7Uuvbt-okAmACg&h=EdVb1wOL-r8wR87NXH0JOYNYg27N3lsy8dRR5RAGRSU + method: GET + response: + body: |- + { + "name": "9e841516-2eb8-42d0-ba54-d6907920addb", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4F026EEC947347CF8EA6E4CE37DDCF30 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:42Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/9e841516-2eb8-42d0-ba54-d6907920addb?api-version=2016-03-30&t=638374133212213266&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=lM0t4vdRbFAPsy2DqyQn8Bza12eHv9qh8o9t9B84qWhg5XPxwNX6B2B2SgslC_mGg_I2Slt32xkJqIdpc4JhOFAXKFXrDO3T1uENHXsoaUS6_QMiUaehFFHkxyRXJNgLAU5Jg8_R1lOjfzhKTJLYhqZUMfagbRymyKh8E4ug-AqC9aMjKAe8HdlBcUPVYDABg6mDSg29mRM_NZ1_LY9E3UJ-tPezQaepCvLvkifP4kN8ONJEIosp0glmKt-tZ9jYYAzmk6SsyhyjSinng544T-_GlQ_4kP_ymqyU_m9MeSgwVUUfQm7tQ4OM_r7aO6bztPEg19KH7Uuvbt-okAmACg&h=EdVb1wOL-r8wR87NXH0JOYNYg27N3lsy8dRR5RAGRSU + method: GET + response: + body: |- + { + "name": "9e841516-2eb8-42d0-ba54-d6907920addb", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8BE8A50E44F346EBBF8648720DC21710 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:45Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/9e841516-2eb8-42d0-ba54-d6907920addb?api-version=2016-03-30&t=638374133212213266&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=lM0t4vdRbFAPsy2DqyQn8Bza12eHv9qh8o9t9B84qWhg5XPxwNX6B2B2SgslC_mGg_I2Slt32xkJqIdpc4JhOFAXKFXrDO3T1uENHXsoaUS6_QMiUaehFFHkxyRXJNgLAU5Jg8_R1lOjfzhKTJLYhqZUMfagbRymyKh8E4ug-AqC9aMjKAe8HdlBcUPVYDABg6mDSg29mRM_NZ1_LY9E3UJ-tPezQaepCvLvkifP4kN8ONJEIosp0glmKt-tZ9jYYAzmk6SsyhyjSinng544T-_GlQ_4kP_ymqyU_m9MeSgwVUUfQm7tQ4OM_r7aO6bztPEg19KH7Uuvbt-okAmACg&h=EdVb1wOL-r8wR87NXH0JOYNYg27N3lsy8dRR5RAGRSU + method: GET + response: + body: |- + { + "name": "9e841516-2eb8-42d0-ba54-d6907920addb", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B2985A06702F4893A6DB5EAD9E927ECD Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:49Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "823" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D20228CD98284B519281964C4C77A94E Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:49Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2", + "name": "ap2", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 30, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "823" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6B014882F2A44B22AD46E39378F1DEE6 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:50Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep/agentPools/ap2?api-version=2023-10-01 + method: DELETE + response: + body: "" + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operationresults/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327325579&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=DIlzRchSjCzcuirOHwv_GqkM6ARl476kkF1hnXrPZKCYPXRPEQiEVw89r5GXmdDZeP27MBubdHwuGMGrQuRqh3Z6KDfO7r9t7be14_etItaUFyCbdRgTL453NkdoCrcJmXIp_XQb5Dc3Pm4Q2p4csE6g1NBR1Vd-rEnYxrDZ2N9F6QWZ-V0N8lTC5xz6_DDSbyRE1jowVn5iteJYkDmiyry_9k18N25FITWNq0NOzEM6gSiAeaCIqkvOQ5lIhGS5U8tPWk4_wr96KmOWOOHN0lreEJrSOL8NYZlbdwxp2sfUAYWhTHcMzaTg3kgWr-SoqI0wXoTPsnaL2mH0oK-s1Q&h=P280TxTUc4bJcJUndDrHL1QStePGqa8YA9FDO-wAp4o + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2D21D7770F2F4A8C834CAC653ADA25AF Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:52Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + method: GET + response: + body: |- + { + "name": "35beda8e-1d94-4677-a591-16cf71782812", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 10AAD9C12C514D4888671582F8BA06FB Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:53Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + method: GET + response: + body: |- + { + "name": "35beda8e-1d94-4677-a591-16cf71782812", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 461226CC5E3945B0A6A2F71AE33900DD Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:48:56Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + method: GET + response: + body: |- + { + "name": "35beda8e-1d94-4677-a591-16cf71782812", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: DEC351E4521B4FCCBCDDE7D735AF3AFC Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:01Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + method: GET + response: + body: |- + { + "name": "35beda8e-1d94-4677-a591-16cf71782812", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E52AA22C791B4054940F8D85EDACB215 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:10Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/35beda8e-1d94-4677-a591-16cf71782812?api-version=2016-03-30&t=638374133327169315&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=nZsCHvHV6N_FJ-wWzmDl9V8Iw23s-aknNcVe_Q-mlnIbEBIDOS2sI-caO-QVfIOffsym1VP7aiRXNFSQDiEyaghx7TO4-5VQ3bNhoiE7Y_13HLPdNoFPqlPEgJUhK9o2Lqi-SQE9Gigw84sVKxnhyswfbcosdlVNtbDFC81ENJqeU1TGHzcu1JFhDronu7gYSqFFqVv7bPa-6OEGx8QIyvIbSOE4GR_48Qyv-AxRcokBnl3cXPHcMkiaYQBGqEtNIUtfB-EHdTaa1piHipgl2xrLo4GvJX3RpBrvZKOxcazxaEYtxfFeJkYJoYVXa8HPQiqRHW3FibMHX2EKoKifSw&h=S_Y2x4byrLYXPb32gZ0Yxm4c_FBgoywcsQip4BV52tk + method: GET + response: + body: |- + { + "name": "35beda8e-1d94-4677-a591-16cf71782812", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BC1E7695B20543C997F7BD3BC718653F Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:26Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: DELETE + response: + body: "" + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operationresults/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737466734&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=rAp7lYbOXlQtBW_WaaS8ZgNyansSfVTOmG9cYMuLyqMOIaXZZ0SmQKyBZxYOB-3STwQaqxWBjSPYdUpfz2BJJZuX4m_4KWHvI_c72SNrZMSxl1YeLQcaod_ykEuaHKGLZkY4luxvlUrpNWt1Uze4K2L-m8jfi2RzrA_QhFxWa7usvK39krrKt3I1WThui-2HnWGV1r5CdKtEDauTnWaZsxKju3t-1y2vqYXQB_rXufGr7-WUaFfEwEntg9eL-KFgK3fYvPfONyGCEbIyfOUvPlxTaK58Jpk_CTd8988I4mrpszieFXpceuupQmy6ZtvmTWLL8mfPNxwIFZdFez3l8w&h=1rpSbMYDLN-WPSOkx1K-UeN0fq9wy7_5os6yduLit8g + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: A431C252895042B791B548EAD39E8EFE Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:32Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B6EE6ED43DF641C1B3E7C7A8F5CE6686 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:34Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2FFCABCF9C024CB5A0BC49B6C7DD8F79 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:37Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 10A77225BBCD4E63AA2B75082BD5EEE4 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:42Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FCE43F35B5F249B090091BEE971799D1 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:49:51Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 900CFE78481749FC83AA965C098F9E74 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:50:07Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 78C7CEDA6D874C41A805CA3E1842CE1A Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:50:40Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E674A850AD224851990448821ED342B6 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:51:40Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "374" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4DCEBC847E504F54A197D76F9F9DA230 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:52:41Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/09ac384c-f08f-4617-ade1-8b3e6d83855c?api-version=2016-03-30&t=638374133737309545&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=x7iSuiLyyPzsZucBlK9Bb-j5c3sdRrGQqJuPRhbsOscFC5OBGPX0ST96SJZHPKkw1s-6o_1KYaXW8oX-pXcsT2OqUTsNZoi-qI3MJjLe-_pMgI-gYgnN6TL33dKw3PzLoKilGFOHAN-SKo5HlOWxnZOlqw6PRSUv8kr64SoU67sJqM0ir2aevIg276uaL8eIQSGNokGGMtpmXXrjKVx4uB5VcZu8veJbUpz6BzZGiMKXjwrcJOw_hGdmZu8mtsRxFJHQS0tUpLoU0-3Ge7JVPyGLqohx60d5ZGrkOOPKmwcDHwMZsihVdVp0s7CxH9ZJXZmd8OTU9AVYf1Oo_pqhug&h=hdnMMnyBYoaxCu1dQC-56x3h0D1amyVEg4vrpY48q50 + method: GET + response: + body: |- + { + "name": "09ac384c-f08f-4617-ade1-8b3e6d83855c", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z", + "error": { + "code": "NotLatestOperation", + "message": "Cannot proceed with the operation. Either the operation has been preempted by another one, or the information needed by the operation failed to be saved (or hasn't been saved yet)." + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "418" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 004B75F8E36F4E9EBF2B7D6FF9A4D2D7 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:53:42Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-rhrpbh/providers/Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep?api-version=2023-10-01 + method: GET + response: + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.ContainerService/managedClusters/asotest-mc-kpgpep'' + under resource group ''asotest-rg-rhrpbh'' was not found. For more details please + go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "249" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: C01A1842EBD64406BD96992FF0FFAAAC Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:53:47Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-rhrpbh?api-version=2020-06-01 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136326727131&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=vyPq7GY92iiwgb9W-oaOX7cl3AEK54xENFBxmiJ0E5MZlrjgBqAbngWJA8unmW69PHSdI2aJ3n2r33XQFVm-G16cvil1tmzDRG4teRfetnQfnN51LssgVa1r16RaLJLiRUDOcN9gIJH6N-GLtaz2iZ99AEpXw1UiOng7WXYjq0rT4GnghwZs4yqDm_UVGSOyGNzsIlO9TUkKU8iYaCwU0V10osXrd1aNEyNbZrvgrvnD1fdytfqAkuEy3zYJFbO5Yr1QRZw3_d7a32m4-Z5-FCaUE8ftwCARb3IaAANagl0lmGTQHWv2vhzW3NX4k9Z1l0onyeZV5rvzrwajAWIYPQ&h=2nilm53w_j30BKg_inT63Zmv_0L9B_MfLIVE3FShtOQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BB429109B30744FBA7706B9B96CFDDE8 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:53:47Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136326727131&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=vyPq7GY92iiwgb9W-oaOX7cl3AEK54xENFBxmiJ0E5MZlrjgBqAbngWJA8unmW69PHSdI2aJ3n2r33XQFVm-G16cvil1tmzDRG4teRfetnQfnN51LssgVa1r16RaLJLiRUDOcN9gIJH6N-GLtaz2iZ99AEpXw1UiOng7WXYjq0rT4GnghwZs4yqDm_UVGSOyGNzsIlO9TUkKU8iYaCwU0V10osXrd1aNEyNbZrvgrvnD1fdytfqAkuEy3zYJFbO5Yr1QRZw3_d7a32m4-Z5-FCaUE8ftwCARb3IaAANagl0lmGTQHWv2vhzW3NX4k9Z1l0onyeZV5rvzrwajAWIYPQ&h=2nilm53w_j30BKg_inT63Zmv_0L9B_MfLIVE3FShtOQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136485966758&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=1qbEKk3YlsBFKuJs2D2CelJun79UPvjT5fJ0Sjecf6ScGNoicYNNfaurpZCmJPs6gWq3E1ATz40I42eekdxf3NRdKPUTZKTVAdjKX2cOZwTOY3QQ-ysTfT3JUFpjWM2xOHCnYH7JGzOyUgxxbNY0OuEaNxZ9BGO3XV8aqrYSsuIwXU4kMjiKAA50QPPl2zXfiZtbY18lwZlNz8bHOlzzy2AI4I8b0XWeUF4UBMrvLJ6SBjYycGSAMH-n-1Sc4jbxJ3f9OlryBirar-2y61jFvptNCHi4AwHvkyLnrNSiQEPynH4HBGjpf0KFIGIQZErarELedNgFwt5Cu-BgGDeW0Q&h=tnnO9l7-3lDGc0E-oUl1Y3E_0JxzbVZnoQoi60OiYy8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5DF8C3E40EB04DE68ECCE784D9FA46F1 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:54:07Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136326727131&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=vyPq7GY92iiwgb9W-oaOX7cl3AEK54xENFBxmiJ0E5MZlrjgBqAbngWJA8unmW69PHSdI2aJ3n2r33XQFVm-G16cvil1tmzDRG4teRfetnQfnN51LssgVa1r16RaLJLiRUDOcN9gIJH6N-GLtaz2iZ99AEpXw1UiOng7WXYjq0rT4GnghwZs4yqDm_UVGSOyGNzsIlO9TUkKU8iYaCwU0V10osXrd1aNEyNbZrvgrvnD1fdytfqAkuEy3zYJFbO5Yr1QRZw3_d7a32m4-Z5-FCaUE8ftwCARb3IaAANagl0lmGTQHWv2vhzW3NX4k9Z1l0onyeZV5rvzrwajAWIYPQ&h=2nilm53w_j30BKg_inT63Zmv_0L9B_MfLIVE3FShtOQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136644707487&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=fY5QO9O6Jg3OUqkymRn1DOdOt1XKjSMReiQU5z-oNM_kAFJoQScwtjuA14ybDjL9AMwpo1UuNewoVBe-wb3Lm-00Yyw697alCVDceztliJOTSby0eJrP5InZV0lIAvrjouyB8Qk4wxVdUP6zH9M7RFJZnJB0GNnMPCm-2nU76a-18ebcCPmIQBcL8q8TV7GNqnffgP9rE38qhvVzqBCkLxMqeyNtHPPXacwrSs7XbHcycXyT2rp-O6TCRAF1xsdfHtMVAJpEqrhKSnVN_3WrpdXMx8yTJEP8D7z4zKwAbNqO5CYxOzzG6-iKUvUaT8ks1ljAQwLCS7clTKcY0H6JvA&h=xARoc-50Dd_dTZJ73ix5vyEJu7tAlIlrTALnjLFH85I + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 45AB38E0C2B743118F77593B090E6C97 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:54:23Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136326727131&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=vyPq7GY92iiwgb9W-oaOX7cl3AEK54xENFBxmiJ0E5MZlrjgBqAbngWJA8unmW69PHSdI2aJ3n2r33XQFVm-G16cvil1tmzDRG4teRfetnQfnN51LssgVa1r16RaLJLiRUDOcN9gIJH6N-GLtaz2iZ99AEpXw1UiOng7WXYjq0rT4GnghwZs4yqDm_UVGSOyGNzsIlO9TUkKU8iYaCwU0V10osXrd1aNEyNbZrvgrvnD1fdytfqAkuEy3zYJFbO5Yr1QRZw3_d7a32m4-Z5-FCaUE8ftwCARb3IaAANagl0lmGTQHWv2vhzW3NX4k9Z1l0onyeZV5rvzrwajAWIYPQ&h=2nilm53w_j30BKg_inT63Zmv_0L9B_MfLIVE3FShtOQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136798762519&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=BS2R70YmwxgfIh0HWPw63I9WsS-4BoZT9Ih76k2ohGr8oNUSRWD8sy8RVI0z9V1UqY8DdnJUSV8zdktNtxDFzLmOxigCbZXav5vg_xAa4aFfQrPljfgVWFMzFeTBxVtkDCe4JkX5TTOKk-uHJywLdheS-tWJ0ujstYLtkcb42oAu8rtARKeBBjzruWk7KEiOIyWbMBksWYjiCs4mgj4tyZuzESCEskT8ymKe4vwWTDlOijpiqRNRQKTq3pEQ8NTvKBPr_hAtmH-uUx35-ASI7hdsJImED6fbQS8WxJXTNSJZnApNtZSpTiOJ7w107LZX1ny8pSqmjKfZ4jxaHJzHkA&h=KgSMl8LIy0LwjUH146WdAYtcsnIvbFmaxlMIw-AkawU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 30F7EA96CF234148ACBA264A176CC47B Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:54:39Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRSSFJQQkgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374136326727131&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=vyPq7GY92iiwgb9W-oaOX7cl3AEK54xENFBxmiJ0E5MZlrjgBqAbngWJA8unmW69PHSdI2aJ3n2r33XQFVm-G16cvil1tmzDRG4teRfetnQfnN51LssgVa1r16RaLJLiRUDOcN9gIJH6N-GLtaz2iZ99AEpXw1UiOng7WXYjq0rT4GnghwZs4yqDm_UVGSOyGNzsIlO9TUkKU8iYaCwU0V10osXrd1aNEyNbZrvgrvnD1fdytfqAkuEy3zYJFbO5Yr1QRZw3_d7a32m4-Z5-FCaUE8ftwCARb3IaAANagl0lmGTQHWv2vhzW3NX4k9Z1l0onyeZV5rvzrwajAWIYPQ&h=2nilm53w_j30BKg_inT63Zmv_0L9B_MfLIVE3FShtOQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4BC30C6125DD44089BF6FA83E205B6B2 Ref B: SYD03EDGE1012 Ref C: 2023-12-05T22:54:54Z' + status: 200 OK + code: 200 + duration: "" diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Containerservice_v1api20231001_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Containerservice_v1api20231001_CreationAndDeletion.yaml new file mode 100644 index 00000000000..9e6e9ae60a9 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Containerservice_v1api20231001_CreationAndDeletion.yaml @@ -0,0 +1,2386 @@ +--- +version: 1 +interactions: +- request: + body: '{"location":"westus2","name":"asotest-rg-ztdfxn","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn?api-version=2020-06-01 + method: PUT + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn","name":"asotest-rg-ztdfxn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E907D6E22D0645E4B5B37675F7CF9610 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:13Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn?api-version=2020-06-01 + method: GET + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn","name":"asotest-rg-ztdfxn","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2B1826C2391A44F4A6270F7499942D6E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:17Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001?api-version=2023-10-01 + method: GET + response: + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001'' + under resource group ''asotest-rg-ztdfxn'' was not found. For more details please + go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "262" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 5FBEBED63B86435AA66CAFBC34DC152E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:21Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: '{"identity":{"delegatedResources":null,"type":"SystemAssigned"},"location":"westus3","name":"sample-managedcluster-20231001","properties":{"addonProfiles":null,"agentPoolProfiles":[{"availabilityZones":null,"count":1,"mode":"System","name":"pool1","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}],"dnsPrefix":"aso","identityProfile":null,"privateLinkResources":null},"tags":{}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "416" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001", + "location": "westus3", + "name": "sample-managedcluster-20231001", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-ovoqmooo.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-ovoqmooo.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "pool1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "nodeLabels": {}, + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "kubenet", + "loadBalancerSku": "standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + } + }, + "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "podCidrs": [ + "10.244.0.0/16" + ], + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": false + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656f93a549363d000137b79e" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "18482efb-5689-4f72-b81f-60c7fbe4a6d7", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + Cache-Control: + - no-cache + Content-Length: + - "2573" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F44D6B1514544FE8B98613F9F0B2AADD Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:21Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 958E67E12BFC42A2AE82398FF71E798A Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:31Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 96CD3DC79C9F405EB186CF31F9CEC59F Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:34Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 83B0D9A82224458EA1251E90DD314ADC Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:38Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5E367A7CA8C44DFCB5538A0F3E750FE7 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:18:47Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1F267EA42F5C4B83BFCD5929750EFC09 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:19:04Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 93C12ACF173F48B7AB810CD19AD0C0B1 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:19:37Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "124" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 30A4D9C8144645B9AACC53F28E0B196E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:20:37Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/d8365712-f567-435a-b004-2a49225dbd87?api-version=2016-03-30&t=638374079102294931&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=syTPzf_tr1LL2hnZrvm4BjU-D0VO7Zw8OtlXW3QHy9OGyqG1Q9CFqQiIj7CgTNAaK3fD-rWnVt9OsBQkH7VJnDCo8Rty2Eqz3k87dgd03IhcQVq1mtijinPncCLwuB3PEI8o-BIslnXh3IfBjLQGo_6LHsNMGlpf26pe2lFQD29VLm4r61ZqTYfKMXDAWaYFvsfZel8V25W82uqZdjKzmi8ziJy8nPXWUkot2EH9uVu65sbTq_qL4qn6pKcNUb-EFZTJXP3jiEULIj7NemOCBdcTZXVFJJHU5ChtMK07L9SefVpLK6X9xO0B8bhLTZazfksf7NTcXD4kOdc6HnMAtg&h=-_ahRvU_86t2mdf2j7C5kEirg1ShVam2HxSLB0fjSyA + method: GET + response: + body: |- + { + "name": "d8365712-f567-435a-b004-2a49225dbd87", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "168" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 74C6954F60C947A1954E26B8836CEAC8 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:21:38Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001", + "location": "westus3", + "name": "sample-managedcluster-20231001", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-ovoqmooo.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-ovoqmooo.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "pool1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "kubenet", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3/providers/Microsoft.Network/publicIPAddresses/b07fb884-01fd-4ca9-9abd-9c1bda6e5f4b" + } + ] + }, + "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "podCidrs": [ + "10.244.0.0/16" + ], + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-managedcluster-20231001-agentpool", + "clientId": "315a1c0d-9324-4f1a-9d01-6e7a09ad416e", + "objectId": "ddf9605b-8d28-467a-837c-d9f1d261ee1b" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": false + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656f93a549363d000137b79e" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "18482efb-5689-4f72-b81f-60c7fbe4a6d7", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3255" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 20BF855EA0F642B18229143E7D65C15C Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:21:39Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001", + "location": "westus3", + "name": "sample-managedcluster-20231001", + "type": "Microsoft.ContainerService/ManagedClusters", + "properties": { + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "kubernetesVersion": "1.27", + "currentKubernetesVersion": "1.27.7", + "dnsPrefix": "aso", + "fqdn": "aso-ovoqmooo.hcp.westus3.azmk8s.io", + "azurePortalFQDN": "aso-ovoqmooo.portal.hcp.westus3.azmk8s.io", + "agentPoolProfiles": [ + { + "name": "pool1", + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "System", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + ], + "servicePrincipalProfile": { + "clientId": "msi" + }, + "nodeResourceGroup": "MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3", + "enableRBAC": true, + "supportPlan": "KubernetesOfficial", + "networkProfile": { + "networkPlugin": "kubenet", + "loadBalancerSku": "Standard", + "loadBalancerProfile": { + "managedOutboundIPs": { + "count": 1 + }, + "effectiveOutboundIPs": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3/providers/Microsoft.Network/publicIPAddresses/b07fb884-01fd-4ca9-9abd-9c1bda6e5f4b" + } + ] + }, + "podCidr": "10.244.0.0/16", + "serviceCidr": "10.0.0.0/16", + "dnsServiceIP": "10.0.0.10", + "outboundType": "loadBalancer", + "podCidrs": [ + "10.244.0.0/16" + ], + "serviceCidrs": [ + "10.0.0.0/16" + ], + "ipFamilies": [ + "IPv4" + ] + }, + "maxAgentPools": 100, + "identityProfile": { + "kubeletidentity": { + "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/MC_asotest-rg-ztdfxn_sample-managedcluster-20231001_westus3/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-managedcluster-20231001-agentpool", + "clientId": "315a1c0d-9324-4f1a-9d01-6e7a09ad416e", + "objectId": "ddf9605b-8d28-467a-837c-d9f1d261ee1b" + } + }, + "autoUpgradeProfile": { + "nodeOSUpgradeChannel": "NodeImage" + }, + "securityProfile": {}, + "storageProfile": { + "diskCSIDriver": { + "enabled": true + }, + "fileCSIDriver": { + "enabled": true + }, + "snapshotController": { + "enabled": true + } + }, + "oidcIssuerProfile": { + "enabled": false + }, + "workloadAutoScalerProfile": {}, + "resourceUID": "656f93a549363d000137b79e" + }, + "identity": { + "type": "SystemAssigned", + "principalId": "18482efb-5689-4f72-b81f-60c7fbe4a6d7", + "tenantId": "00000000-0000-0000-0000-000000000000" + }, + "sku": { + "name": "Base", + "tier": "Free" + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "3255" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 72100EBE8A224FE2A9162FA52122A9DD Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:21:40Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710?api-version=2023-10-01 + method: GET + response: + body: |- + { + "code": "NotFound", + "details": [ + { + "code": "Unspecified", + "message": "rpc error: code = NotFound desc = Agent Pool not found" + } + ], + "message": "Could not find the agentpool: pool20230710 in subscription: 00000000-0000-0000-0000-000000000000, resourceGroup: asotest-rg-ztdfxn, resourceName: sample-managedcluster-20231001.", + "subcode": "GetAgentPool_NotFound" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "386" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F163AB0C854E4306A9903B8DF4EDEC06 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:24Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: '{"name":"pool20230710","properties":{"availabilityZones":null,"count":1,"mode":"User","nodeLabels":{},"nodeTaints":[],"osType":"Linux","tags":{},"vmSize":"Standard_DS2_v2"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "173" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710?api-version=2023-10-01 + method: PUT + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710", + "name": "pool20230710", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Creating", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "User", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + Cache-Control: + - no-cache + Content-Length: + - "852" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FEF3F34D0BB546F7A797E7655F3022A3 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:25Z' + status: 201 Created + code: 201 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 063C3F59D47D4FAC9F0AE95D486B8AFC Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:32Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 96D54C4C1B454DECAF6D8A24327A4AEF Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:35Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 507C70FBFB344004B9C792B1DBB87598 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:39Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: DF8ACEE1962D4F179D44E8EA87E82346 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:22:48Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 28EF65CD3E58423DA1E1F7D06C831A36 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:23:05Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CB658072292B4582ABF4704CB5008C8E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:23:38Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "InProgress", + "startTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "126" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3B842D3095004CA98A795343C3C9552E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:24:38Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ContainerService/locations/westus3/operations/730b0653-b4ad-4676-945b-2baa8183a0af?api-version=2016-03-30&t=638374081511819021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=qTKRQi_WBqgImNQjqzufWS_z9RQqu2waUw6x1AAsBdurgXW_I7Z9gA1VDl1N4jpMEuD1lerAvMHp6lxPOrAjqvoAZrgNcNJaPTrFY9HSdjEGNgXWiAnXO-LMCMOKC08USooRSuGKi2Y56WJwpppDjjwDmJhIgoVHRJMmyUfHdFOpuckEoYK9abP5Bgyau2-X0C-1VbJmcYcWOvzuYIYn2vZP8hlyyClvU6C4pe1J_0jztEQYAocZG5IHbTjstEtXo_c3U38xGfdHZbXyQHWuCgEaRKwvLGAFD5JWTcETCYWMS66Cm7ILXq1i3-2fe4gIu34lhxf381evXDYu1kPBwA&h=WF46jbDZ1T3gs5wrCqs_y8fCRa9VnQoqx-10v1iOsFA + method: GET + response: + body: |- + { + "name": "730b0653-b4ad-4676-945b-2baa8183a0af", + "status": "Succeeded", + "startTime": "2001-02-03T04:05:06Z", + "endTime": "2001-02-03T04:05:06Z" + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "170" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 0871673715F445EAB5F5EECE8B8231BD Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:25:39Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710", + "name": "pool20230710", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "User", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "853" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3DDC5B39AAF5445E97FB02CDFB5A32FD Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:25:40Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710?api-version=2023-10-01 + method: GET + response: + body: |- + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710", + "name": "pool20230710", + "type": "Microsoft.ContainerService/managedClusters/agentPools", + "properties": { + "count": 1, + "vmSize": "Standard_DS2_v2", + "osDiskSizeGB": 128, + "osDiskType": "Managed", + "kubeletDiskType": "OS", + "maxPods": 110, + "type": "VirtualMachineScaleSets", + "scaleDownMode": "Delete", + "provisioningState": "Succeeded", + "powerState": { + "code": "Running" + }, + "orchestratorVersion": "1.27.7", + "currentOrchestratorVersion": "1.27.7", + "mode": "User", + "osType": "Linux", + "osSKU": "Ubuntu", + "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202311.07.0", + "enableFIPS": false + } + } + headers: + Cache-Control: + - no-cache + Content-Length: + - "853" + Content-Type: + - application/json + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1AEC528241334D188B250CC027E4163F Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:25:41Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn?api-version=2020-06-01 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 71BD75455B354762ADB59CA03B813BD8 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:25:46Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083659940856&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=jcArsryUd18UJi7l-9LKLSSw-CzUn69TVt0dR39QC11l0MI_RJ60YJGrneoN73SiUVrIGOs6xSBDv8A1f_xaKENTF649MM7GyGbUy0ZOqmVPldmRwV9cvBWRhV2Ea6C02Aj9S-kFHaWxtrUba49xgHqd4brVqSTlCBI1c6dIdJgBQVniJpbrOioUU7ZE2854ormWM8edr3d8mnWiWHksRmuSV_mubhpABdK3W59B4IaDBau_q9kWG6hM2chTZSIuohSVuz58nnsKbPHuHvGpV5RBsFSS1F6VM14kXF2fPIkFaeR8hhNSSPWeZxfyjzOS7SorxoC46MoDlmEGGPH_Fw&h=BJ7dMQti1BTAwJfXkCdesPassmi5lrv4V3BjWFRgQIM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FD8FA1B100AD444DB5068FD1429A960F Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:26:05Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083818997796&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=YqIlNx6QGb9GVBG7egtiY9OAwIyA-y92PmlBRgENHycCXlyvTvyflLXen5WjusRWI_Y_3WOMeQaEyO-qqMXWJXrbBsLEMY6cNX30nKJQel6JLrudLcWd5lQUsfMqCY4n8wkdXL69SgBmKgSSo1i5u499BvTlxoMZxqJsru1lJPIUZHvZoSA3Y0TJDGMhV6NdAsgYcHrUQISV19N6j2R_i1P5XVtLZkujac3c79zGQFbf-nTkrF5qKeaCqsxiOQV7MsJu-wFzGDuy14YhwzHh2P9SNnxrmBWxF3o1Tuc5oNHZkSMPB-AwnewzufLN8RPF2sVSRvCQehn_nLpU6yoyAQ&h=-S0AsDSQeRu9kCeCzWmUh7zBz_BUoFkRUGyJ6H6bbz8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4CF046D1892F48B2B6109F6D57397034 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:26:21Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083978071958&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=ETakqGRrRiActMUMztxHju6SJIZHbyOfACfU4IwZu4rLOmRliDwvlm8yqPWhG_pzVLq59Wx7MFZqEyXFg9vIMqcnDCR5U4mv9tDfiS8Qxr_J7pGylCW5A-xG5tEzv33davOvqIrhfIzCbBtagTg9njEuAJqXrE__bE2sIKyp02rnFOCCWZe91pJcN1U4VMI8qCqUx70v9cj3B3D81SCODGnwtXNbjIvo-KR5jnb_p8-52PTdJwS782HlWdOle8MB4_Vawy_OevV9jkSkzyKVCBMMi98-RMv1Cm4RIDCLRkM0sB0VFSSYMM5pPVfaHmq7YxPnxHU-3VSYlMRTWOYqgw&h=5vaBHokTPHWFaHcJ9MKw2IzZz91m4642sFKAi_2bsKw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3A734B7921D94C7EB003C500EFD21405 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:26:36Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084131985422&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=r2qdIwTHSxIk_MRXxRi-G8pmlOfTkRR4K1DiBLtALbLc-eeOQIg80XozHwvtxFdwiQj2kNnFmSL56rnaAMpusDqelM2Iy26dywmwJDTTlqVeepQWbejHJJjE4ISZPT1X66cP6Ytq2pZrNl7fnx-VgZ3kiRHq7hQ3a1zeCWw3MuOvTsnozkLHeIo1LCiERhG6At5ISJWQEoTqI4eF_vupj1VaQtXTHyi-PTtztT-GMn22oHRJB8w5XSps1tpVisrO9xRDDA2fBdr8RYMoWdr0jZFjVaGFWfad3GrCx4jCKEI-n8WYfGA8DBAp1wQLZ6gd-ZQRonJod1pEmkpNvzQU4g&h=PHwYehmfWh0yKPiuZg_X6P-nLhR_esdzfsu2cNlVBHM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F0F59BD521154F8AA3C5C2240FF7AC5B Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:26:52Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084290884765&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Q_GP6wzqDyQIRIF6uQZrbSbSr62K7DEFFJbpjBuMbjfgHLRXhW0TW0XEfW4W63A9VsuELuGWe-LPswicZL3OIeOV3xI8qVEr4BwdWKwNZCCvJVQ5xAEg9p4rWd9kjhVcquSgiaxsJgdjLpYYyOH07B6yBTdtvQLccvk-hGOO8kEkOtdCvB0AdKGP0g3PutvKFf91p7RNMaC6MnWlCXBvekpteKHSjuxJHWuxYj4ELGKqxyAsRrVEMril8uWgbZemgTjOWKNPKryGgwtUa5MGdkBQAH5-84S8OF7Yk9paYAuwfXgFqvTFJUIXQ7F1gMNahTHF7r-4vFuKHi-TBlK7XA&h=UZFHQcRREGxp4-a6SqPAxI0iymxj8prI9IlyDwyWnxU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6759517473DF41AC931959E757A61A6C Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:27:08Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084449919485&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=NQX0VelN3O0qcYfzCdEu-0ktKnaGYH4px3Ozt6440M1ptSubAPE2G7hY7-76duYIRRDbxcU18cZ5AcOPWABo78MmI7xNmnLKEqt11R9iKNapGSWbx9JPLtEvdwoMwbJrtMQwegW2L8wMHPVs0glEpCzFTEKkRFhG6yVsD9toDbXvlBDflDnK2z65MNuetlYnietP3uNxuk-23hO62eBBqEnltY3Qy2MKCNQSkPOXeWHwwuIOI7xIhS0jBN1ZkgKkJ3XspDZz7_kbZAYPLCfCOPl3NSEo_8b9vL4jB1_GhTxoh9hUz4HVTCUq-hhDhIjsRRAdgA7KjZ3pUYOwDY8oGw&h=7YfXNXshL40GA6aUbB_XtvdNK0wfFF_70CFVSGQaszg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: EE52878DAFAA4B3388EF96A813455C91 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:27:24Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084608820021&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=B9k9_fJvPnzr-mYa-zF1pBCIRGY_D4u1N_6B9I1hOMzpcQ-1QR-ftRtW_9yUE4m7KmFq5xt6t0VrWsVmFCAicH4N1N4jD4xQMaX3kgksxN5x0IHJL1zU0wKlMwBNEtcSiPgcOc2buagN_LREp5tCmyeXdOBYWbjt_-N3rTsN6Oi7H8OD0sALhhQGAx-yusQcwiVY7tcspO_MlW7RlD9_91Ot1iAAMppLzmlZHCOHk-OBqKP9a-ySe49dYWQyNip9rh2ENrpnD0Il_NglpmPKiVWvfmCSX2hIY1NyBexQAkKOTbUSOh9ip4fz7IyaVIxNrO7qqJEpX66COVQMWwv1KQ&h=BI3Cq-QI972l3Kx3sJScTsUwy8toJ0FUIiJ1bs03IN0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B6A4541E99DE43F480F0AAB49C7792FA Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:27:40Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084768086937&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=YxfsApor7GU8IXkHjJWqxmsN3d1PvCwlc_ygfgUYUhZXcf298e_9WR9R5rBbqg_55-jJKldtkjD5sbOsiT3vozgOgqXkP7JqvL6GggoKLyxp-dAzZiLlpyn7HpW-T4AN556pQdtPrlxa721X68JhZBoAm5KXRIBhJ93CLsPENxeXC-M8QnjWTLHQDotqXrIW5maffvfiemH8DvYKT_Dorxn_g_0HxWrEgEasWPK9F2QJ1QVEIXDRoh9o3hvm3s07f0P9dr5t9KXykfrq0BEcWJylWbIKS0FoYD1MuASmdP-5eS3obmkQyJF3wURdrvRAHJHgD4SqShUq1u2q1NdQPA&h=IZ87u0n1gsCeeU8qOai2txkLnX_aMmfOs8a_c0tWUqU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 66C1AB93B68A40C3B59B6BA05C21F29E Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:27:55Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374084928079509&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=F1wGa52a932GEd6ZIV4W9_JgVCtwEPjPpn6myY3TmzMSqP1S2aTIHxXKU_SjqO6b2_RrJqr9HZxKMaTSy_RDlCrTSzklN1_apJT-Zyaif1wdtmwwg1qA2dRTZ9AWzYnJXLSckZtBnmEBMY3EUAGg-uAhOG7LXaDzrdZ-6WV4i6LgKSP9swTqBxmyHWDjye2FlVni3cPhWyfwRQeopKfJKL0qwgrnAwmXKz0rZfEI_49rwMfT9KVoa8Ub5VASNJ_5jI1AMhcrNLMsuDddPXYKCDFQ6ta584MTMygAT2c6lZRGM2wncRrkeMKZ54IBHiyDql5Vtrv7Ep9foRGj629nOw&h=C186MHw5f0dwI62h98NTAJA6Ut9hYPlf3t76nEsq9lg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 354217571475464CB7E16A9962CE416D Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:28:11Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "9" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085087397139&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=YAUNPB_MoYSb9uZ9G-RyLOuL06WLVPr1Nw2esGtZn2I1pnbju6jc8RHT-MNxdxoI-dnxwmZSKWbnX7KcrLTCOfaNPdBsfRgUnjdA9g-clZ50SIsw8VKkm5CCKCJ54N-vTZIWsBc0AesaYyDQCmhza0MEE6r9vqDIBl6z_CFTv_M1dgCpCvm25at4oC8-_F02trnWmEvK3TopvThbvgNS12gSnBsuOKZVnnbzQ3QBl2ccIsFcpEmDBwt4uGPK0l_vW9YXIgyZ_k1O-ANQX0HRqrwqMqNxmMexEHjDJuTXfrYsPHoZag4rtiGrnKxO5uQMac_9vydeNuTL3LvlXJDdew&h=e8lij5eAi1W_DO3pQ3nWb8GMwy1AJ6XdiZMC34gJiGw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 09B242973FF94F41902B8933DA104161 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:28:27Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "10" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085246490323&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=0SvXYMZzjCbADdPFxJCXvXlnawttTIAJcLEx6yP2S03NhL-XXDucdy7vrROkK2Tdkzx2IqU1Z3b4QTj18GSdCeLYZtV5jGV2LXQET5UsFmjVBpNLml7aLGNtYwxJDy6BUlJ8PxkKnQJcG-hywsm7ncAmcWG9DERWo-8Q7E7xykgtlJ8zFYvBUfEkLlksNS7KR3Hs_WyMFMtrc-lmQp-icb3IJG9iTvcvCVBWVhxwrawKak4aiXD6zf8ZBdQgVxTZyjxdGsXUu2IWgESSpsE0HV8PWXXlYAQ98S05Br4YndCC4ZEBWB3I__sDew5CaRFCFx_3FMaS0JndxZsZNlLuLw&h=Mg13p88lDKK0jrgrjfET1gddclXk9ZmmnmOHUELMfYU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E49FC1A9453C48AAB0E6D775A15C58D0 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:28:43Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "11" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085405499046&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=aEP8fMqxTGZ6wjTVH39LMNLN56HqvB8JMtyXnq7aLdRY2lLBf0Aja4dCooINaRdfWqW_nG58PinvIIUKokppyHwmTiecsxRMvbK9QhTj0WZsRLxMHQbn6IS5cFf32Z3w_l-5EK0ozIazMLhbiAvTSbVVLRAs78hCZOSP_PM80iuoh-JbAXVqOJEO-gZzermigexZLXqdKM_f1d7GSA3flUvZ8yeWSMD1VUdUJxj05MLKWu0FSAYRCKDxapikId6Z8K2qtrhjNwKF3fkzoV9tKqDTM9GLk07TbeGidOgALA59leBRg5HrNcK_7fjOIvc611GELhtyc7yyU8Uy9Vmgmg&h=9p3vcioq2PB8DggA6q1YudxvPuwWetfnEQBdkCcd0GE + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 17E2B15F8EDC4B0F8AECB56FD481EE72 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:28:59Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "12" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085564919807&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=tgM2P5DvFWLYCnaambDLcjqCgefIWkEXYhEMvXhfiKTHVDyk32xdjv9D8aIZk53WTzqZmEx5E_G0GPbOJfWTk2HU1CywRz8oNbn9SaT7bZmgaBcRKycd6-_W5s-JPgF8hpfyzB7s7D2QurtS4ku2cUqdto3IzVpP7g6iA0CDM2jSJ7eIop6sQ0NoxPOyaK478WUFzeLQB2cf7QgQxgA00FVtviSp3Qd5HTg6tqluofdxwREFC7vEMdUxxB6PtXzaiIPARlX1cSzely3keGLKX8yawvXypf-6dVhPYNkeqsUul5YKkcHBX2W7_VDrKmRly1w3wHyiIdJ0ConwoLYFYA&h=BtzXtDVSTFpY04Pf9Xdudr8nlZpAGwRMAojbWbkgKdY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E351138399FB47AA9B5BCEE09DDB66FA Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:29:15Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "13" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085723941780&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=AR7Vbl0iIwsojzdIAXoA4a2-Ul-5d3-_tADUDthVIy3xROfxxI3LSSdmjO0bX6YUWJ68BAv46NK4vKI5mZ6O1ImazZgzcuFFrnJSPCfnq90pH0EEQ3wVt3vVgMicXWGOh34hIBfEDN-6MdZVm0lK5O4PKQj5Bvc5xZpKTPwz-CAm2S9PzjY0zhcpI1M3IfXw--5jfIdisHtN48Hqh5-1v9hrYTyuGVqPUCYanblH3KfiZCL0AM_OFWsyEpyX0Zar5LVlEeb2uoRtGmofdOTzNcPLLdo2eZAr2f2-H7WN6EXD5gZIw2LQPUHtdIyGCf8GKTuiOeb5j60479_JvH9Q8A&h=aAMQdOA_ib7h0biL7JZyJFixZhII9VxiaahCOxOc0sw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 16F77F13DBDE4BECBF8968302C642DD4 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:29:31Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "14" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374085882947029&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=JGkw0gWB7dZOiKv1pmiTotpCbnrew-Y55GPQmvH0vHEzrIqBYQAZcBZYMAELENhiJSXDgAJnmONy0sm_5_Wf25SrpbTtQBqLHj9urwAR1Z4cfrLne4x_d6s_nq-1JDlNt0ZuYjDhdDGCFZGIF_QxsALSb38d7eRfuAwxSk1FnS-CQLkgFB5Ie2ZNSrTLIBCkcFOOaBKamRy0sNytGvws19-16UAThfoDugMDyozyLgwtXtaGk3XL9DCy9cXO6pf3RWKmU3id-hur3bpBv0ughewx6tJ1sHL5dBbie9tyCglYrAP7o4rWTUikLVJPwqn2yMfKnCyjwGlXWTotT_9wpw&h=-_AEwJ3d6-oKmvhqBCDjeJ1h_JPIy8glUXpVM1yO_yU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 2AE8C04B6C6A45E0A2CBCC0A9380FE00 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:29:47Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "15" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086042226858&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=IHsqVl6LPc0mETKFNTykltcjCCkAZj6CF-l4nZy715UEYYGBEYbJ6Jkz3B3We6g1PpBlwOtCzZMJpI1W8wUFgWDh9ZPuUyqN_WW_pEEEaMz3E9IkZ7224tjyyisIYhx1hxEECySdbW5aY_0F7GjEaPFIO3YQTEx4VmH03yNtXKxqWQPW0x-cXaJRtbm4HoamyfeevFHsng8V94VQeG7i33P8cZtZVyfIu7xN8HJkE_dSdVq2p4zDDoKTmbIgijUXc66z0Z8n7EGQwGVGYGBfJUCBbd1sHc9dGFUqp9HyxFKKfpop61D1_LXHJ0AXF6WZrHgyBoqtx_NqGBA7SEHfvw&h=GQpU1xzMJd3zOlACPsi1bVlT0x1Oro9ITZ5M1XzbsVw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 974392A2791041AA95FD418C6B7A3400 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:30:03Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "16" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086201153380&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=tMHrG918WeKtGThkn3C2JU2wErKeNY78qczNZkE8XdhlPTABlgRECE_RPj_6VVN3jedTAooC1RD3esSagQtQXZpRV6WeTSn1gX7nARJbDqi6YECjigEbGxDJUsR5kZNJrhe5OP4C_dEJuhOit24f3DSUEodvlIQTPEvgHMIO0DT5eMetz1oj6AbmlF9tUg9DvCIib1IebLdlEK5SVz3U0hVUI-p-bWgoOvV-13N-yg06Qewr4VOr-Ka7__znNvXi16XNupsRLk0mLerq3VpIaCVt6145eCd-qFf3i_cWd78s5SBQaqfRf4Z3maHiouVWnVC5rI7RHphQ-HFsPeYwEg&h=c5ZaaMPJgZBbPT3fAGFK-i-ssFIFNtCLDjOLSSDma4c + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C3CC52D27E324A5FA7277081021604E8 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:30:19Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "17" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086361156007&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=DyCRfElMORtczsMNiU_fyywIXgnOEV7OS2DQE4QGmNdbIJatr_Jj93OKKulXcZcr5BhuvPNi0xNxa9g8cXEeaxLx0edgP42HR1cqk-Sv8lYANKD1r5QgPZApKI6ljQCoLUA1Jy_LXNB1_sG1TOvNJn1EJSLD08wwA3fBzz7HR6himhcKUEdJ7EwA7mPEPIPb23xOHZZ4O4CElWa3KuTn1ZWdyeElQsHZq2XJOSngHYY4k84VxRE8SLLa5aNM2gfPzl_voDoDqF_QxvVvO-bAvOUHW2SYj_pbXYBR0L98-C4Mkt7uYo5GZWXUJkMa0enHAd1aVA77sbe0r9SZX-eY2g&h=GtEZUMgbQMJ5ycse3diGY86ZLFsvgI5golApXFOj6tA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D1737FE187014C03B3FE2018DC1DF00A Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:30:35Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "18" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086519975765&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=ltDGSVeZhsa5BfpKozvTGcFUCR6UaNH-uEkNdplUjATOTFK3PzvcVyyguwmg0aLquEsqC8lcUPWVWudY3-HM7NbGIotNHQ26om35XELTN8s391NbiL_jPiStysUJin9aBhqEGjU02dUCbWNxOKDcQM9812-MmuPmJPO530nvie6EGP9EklM4uqtwBPDj9ELvgezJd-eTBfIROvI_QqMBjZ1t7E906aL6HVuWLlpRgER3vhMIGlNwzI_KvYV_0ENptMHd3ZBGdS9IHdtzwGh8OcLeAHUZqH8fppGNXOSOoHl8dVWaLb7YWFAy-pvnv1CyUeoe6IO4JK_HXb5EqY-32A&h=-ZafcDn7E8UaHHRttRb4Tg5YeaCD3S_ijRgkccEZodQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: EBF1FDC5B54B40D084002FD8E7B0509C Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:30:51Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "19" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086680397938&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=IEuRtbYml94TM-SW2JyqMIgS0BhSnZ86UQPYHIsVg5UIW3LAoY7LapDfgh-GbuUaQCw8Z1cn32uOomKuJ1DtFzbn1sqAvmEcXMSs93_DlmPP9x7Aj7vUTOdZrNU7Yy3ZN0-YeRwBeC5QRixE2uwCn-wBpzWHtSeGOw4ztgeJWGx1MqG7ODFQV1luvNxhz7LNO3PYTue0QDjIBrliQz2taUOw0wowo8AebmLWeDbXpCn7FIXgjPMSAxOcjMaqRnyFu04Awa-X7NkNjRbi04s3RHR7-CNWQI4QiSnzgLQFhbiF1tKWEQgIaxJXgS3fgXAdWV5pF6Se6_nqlhm-_al0cQ&h=hmh6hvHVGV_Lv8fh6l2jvrZcwvZRc7t8j-yHG1dWH4g + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F1DE66F614714F2E9A7D425E0C390CAB Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:31:07Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "20" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086834689301&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=CO9YhpNQdHv5nbewPKO8IBdBQLpQ105z4tSy9W4gFIFSgEtAPAq9pbgA6g0LYARGMDJgp_6FO_tR_l833MgAIR-FPao-Zf5ZAv-3cagJxQPcf1m5eM2-n3vLOG-ZRtJhPwSEEvU0JL_1CS28ex3LT-tJvmnn1w-csxn-XBjzFAzIjJbzVFoM9Tap610ICnAVbOxJzkXm0H5C0AoMexOcHV-OjBu6ntiW-Z_t1aGabUZNZ8WMYph9wSSxvamkTuByT93thvOAYIqDSPq4Q-yw0SbkOHnymMp3EaCvXT7uEp9gIDiyr6l_VzDnO9b1ruSX6UoEZZcotB73gz5yYg69gw&h=YiAxSPlFRyafFZHI77_gQxlhDmqZafWwww_2RRV7YA0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E828E92DE46A47CC8712F7F7BF5347BE Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:31:23Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "21" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374086995145628&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=GoGJ-UIDDjpCGfPu5MpYv35Ui2a7sQz5whcULIh1FZVoUmIV2AsoYmPmBJhzPL8mfEDp0WgN0Vv91noxmP0VSuLnx_m94RJqrahgtrKhO_3dsK7dcyirJXGAPJjy-EWm-gpIK05oJ7lWztzIcV9oZcxBMO_YyWmOuaHyXdiI9soHGnJxM3Ljl7c0e_sj5iIPuSBwCNXP_LsvbCfxMYOonx54FKuOfIVEdKUvuy3-icmQRFU-cfMqxLRszCGcR5qzGbRzZcw66K4LrVOadM6HgsXv6qZ06hrbvt6Pt-GIuaJVGfCg4-GgoxXEabNS0YYIuBNGff-O63CCzKRhrXvBUA&h=OAM_q7eCqdYTsHBDc74EBMS6-FFLDJrGun-PrRacYmk + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3E38CB80F47C4AA39934B315B5D62B7C Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:31:38Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "22" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374087154164830&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Rj-n2OBMuLsIuStyRIUnaK64v3vGz84IYGpYDPEuM5BZ1Aau_hOg2FwArwtDqC4oUQHcfyywmIR3PITJNhhvMMbT9P_wp2nzreOZ3GXl6BvYCfBTHuKBoPOP4q4IzDL_vgCAVQ7umM4SxS_hidHDzE_BEduPdEUOWsCWcu2OowwO_8CvjjEqToUPeJ852DeRhEtVp-Z-svuZwGM78t53WGxerKXIxJ_MXyr0Zh7aNLRJLICfkbQx-2KGKohK2k8vqvJ_FQL9X4MrYgKwJpCBWSVdzC6b83ssEHe6psPhOOA_sUXMIk4tMp-l-aVO2nEPcmEdA2vRRtKOCGB8wOqYgQ&h=snGdAqWKkT47bfceD_LPMvqsO5l6kEC3vUMso3aNe_o + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4771B200406C41938628604F50F37339 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:31:54Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "23" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374087313113132&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=xXNQCfNOPSaKclUqQgGPC2dNuK-KovsW6FdC_DK-r8f6GH05WBNXaXAQAIGr3sA90BdrFCNutWNY4bYq_-yNHxJewDHJ66sisuSKoyAgxIBBa5Bhw6nn3kg4aQBXMjO3uijbJWgylqS0uAHyFL6yOKFImnxg6Dy-EtbjlryMDh2_W_Dr26Ae7zwjv-7msH0jhY_ajA0NZSgmF6p1fCy1_FLquT_q93CNMq5QEWoVIyTNTvcJVorxLz32HcpJkbJwZV9gpWtYVFgvi0QLbS3EKfAXyy0kFTxk8BW3t5n2i4vO3ZDKincR6OFT6JHkRE-ir4T8LGEFMbrexEfXL-iYkQ&h=v7WuIXGcVPZQlsXc0DZQ6Jpneh0PR6-dC3h2wsQOezg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6219C9B3EE214D3E94A6D6AE6381274B Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:32:10Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "24" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374087472207037&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=O9GjYKuK1CzdIsttYcAcIj19t9pfQyfjW126x066lpLPZ5teor9MZCthaUZsV56VgQxRVPgAnzRGSFQPWubY0U_xT119gPetgsvwBQ1pVb8JSfrudga9GIn2Yvai_Drjd-hNoZpEbxPIbANV7AoU6f6r_mfiVz1y4waoDIXvl-B-NhZIe5_nUYnU8VWU5jdmk4NVk_NOp4NsZ99TtdiemwhZBFLqSy3aLK517sC4L39tYZOWfs5InQfyj9GbGHi884fJY7QUDRcMUjDTx9HsntRmckc5V8DwhmTY8_ws2dBPveS8a3tGycbzkvko2ryH40sgHD-iXcu6biGHBN5G_w&h=a-B_9YlgyeepoMYLBSRCRjg1YEW6P7beVA1VtjZ3rho + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 07F3735334BF49BAB84EA93DB64F8347 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:32:26Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "25" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374087631312269&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=Tf38wDfL8B7xwqcsRIE_jxf5T75O00gf3u6Ku1kfpGuxvpqZMJGbJMDk4hqxzrGKUFdcaZZ0ws4RFePIzO5L1rgpHXpuRCpbzUGOEJsApNjc_PdOpyroR3JK55JNLIYHh9fZ77kdPkwev3yhu6_llyRrkhB_OUYz7jBE2Y30tuUgEnWyJl8fghP_h01JawsuybBcVJAH5-txVzzzVtU7vL6vLW8H-bYTDkAVUJURgDui8_8p4coB7iiuAsbpvMaO-l7WSy2AdWFwLn1zbYTS5RvHL_MyU10wpUk8kZQFThX1SUdsaK-AMVSV_obOYu7wyb78bHFNUrj-1krxlf5lDw&h=8357H2hUma0Xj9kc55Cuc4spl6hzM8qwxhDUxH3FgEY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5E9F441EC31A4580B0B65B297675CD05 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:32:42Z' + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "26" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRaVERGWE4tV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638374083500868709&c=MIIHHjCCBgagAwIBAgITfwI8sHO_Q8rJ82zwWgAEAjywczANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMxMTAxMTg0NTE0WhcNMjQxMDI2MTg0NTE0WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdmRK7w_wCXhMo5ERF4cE-5uQTSBbxqZwDu6iykdooPzNWCYBGZ9o3OaMgmWKsMByWZLJqq1OSDnaqiDxIphgT8ql4bxp_jLhcorCrUIfqt9pjAzTuUxdYIlOG4Urf36rVUoup0PSNG9wCykHUjdPfxcvUAL6UiJIba_DXxUpdZ4Xxg-cNnqDgj_AqRjidMqFiZ4Zg0ckpsKNZ7uV-K2aizJRfJ8y5S-ktuYTxzJIrOA52VEcZ2QMhlIVUCCioUM723IjJM1GkuA_IHdzPEVutz-6axQ9xUzB59N44D3IBOy7OV-gdHtzgBRnYqk_hCbTEF4nKBmbXDbVan_mqkvs0CAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRXYH9fUCGp2UP4B1trgjKvJmP_CjAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBACMfDrIsfy9IhZ4Xr94vKQ_4Bnws08ljewm3mrPCXEZfSrH9vz_ngfsP_pdVRnLHR2c8PQroVKYsuqdOqo0xeXld-XqqHV6Kg9YW6lMu01-lwlqxmfvXslBTwdH6xE0lq6IDPQSEv3xzhcNVGTAYZtRiFd4E6QAZoQNqpbx9zO3-lFBHSulSQ6ZYBTqj8bnle8hM44vld35OeH0w6mKV2aZVQ7-MDNay-cpqV4S5vgAbGSzLff5S4Wr8pryX0yvg6rVLuFFCNJPbUsvxL8rmFJLsFgHLueNCuQaOYekBTmkMcLjnGvtBd1a9wOftbP_ixM52s2r4O5yT6UgGe-kpSTk&s=n2tePNTqpng1kg5B6wdwUTaUspN0cwqPN5BCLNegT3kqDxdj9L2yplECJ3sfkxwywO5dYyxM4bC9po0AqF31rHuZWZzj4TnfkqXsD7fYhz0qdSJneJkQ5_uTwGD1quf7G2j8JnpR8uuMOmqLWlKBDVxyP7sCDfSXvr5P54wXfiRgfD-7n2lsWfY5NyX-_VfhQuQ6491-t7djG3vFe5I9GXE86B8HspKixDJSpQbg21Le6pxWbxRQdhchS2fGU-0B_EuGiDI1b2aUQ7Ch3lRC5vUWVCz21tnKWVJ6WYzM3GWeGp1QQACfXs4GIR0ftBJadOIlmnWwsLMJNGFyYJp-tw&h=0bkcuRJykk6db4ywbjqOmuVjkFBKNLH6h_l9zkq93b4 + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BE2262D67ABD4FD8A3E5B1042B469D7B Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:32:58Z' + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001?api-version=2023-10-01 + method: DELETE + response: + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-ztdfxn'' + could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 0DE63169FC3B4E02B76BE9572B985891 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:33:02Z' + status: 404 Not Found + code: 404 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ztdfxn/providers/Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001/agentPools/pool20230710?api-version=2023-10-01 + method: DELETE + response: + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.ContainerService/managedClusters/sample-managedcluster-20231001'' + under resource group ''asotest-rg-ztdfxn'' was not found. For more details please + go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "262" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: BD2B5067471F44698950BB334A21ED55 Ref B: SYD03EDGE0919 Ref C: 2023-12-05T21:33:07Z' + status: 404 Not Found + code: 404 + duration: "" diff --git a/v2/samples/containerservice/v1api20231001/v1api20231001_managedcluster.yaml b/v2/samples/containerservice/v1api20231001/v1api20231001_managedcluster.yaml new file mode 100644 index 00000000000..740c68dfbbd --- /dev/null +++ b/v2/samples/containerservice/v1api20231001/v1api20231001_managedcluster.yaml @@ -0,0 +1,18 @@ +apiVersion: containerservice.azure.com/v1api20231001 +kind: ManagedCluster +metadata: + name: sample-managedcluster-20231001 + namespace: default +spec: + location: westus3 + owner: + name: aso-sample-rg + dnsPrefix: aso + agentPoolProfiles: + - name: pool1 + count: 1 + vmSize: Standard_DS2_v2 + osType: Linux + mode: System + identity: + type: SystemAssigned diff --git a/v2/samples/containerservice/v1api20231001/v1api20231001_managedclustersagentpool.yaml b/v2/samples/containerservice/v1api20231001/v1api20231001_managedclustersagentpool.yaml new file mode 100644 index 00000000000..0202b0ab5bd --- /dev/null +++ b/v2/samples/containerservice/v1api20231001/v1api20231001_managedclustersagentpool.yaml @@ -0,0 +1,12 @@ +apiVersion: containerservice.azure.com/v1api20231001 +kind: ManagedClustersAgentPool +metadata: + name: pool20230710 + namespace: default +spec: + owner: + name: sample-managedcluster-20231001 + count: 1 + vmSize: Standard_DS2_v2 + osType: Linux + mode: User diff --git a/v2/specs/azure-rest-api-specs b/v2/specs/azure-rest-api-specs index b13bd252f5a..3556bb93c0f 160000 --- a/v2/specs/azure-rest-api-specs +++ b/v2/specs/azure-rest-api-specs @@ -1 +1 @@ -Subproject commit b13bd252f5a0ae3e870dcd5fb4dc5c1389a7a734 +Subproject commit 3556bb93c0f21371e2925460b79bce28602a63a0 diff --git a/v2/tools/generator/internal/astmodel/kubebuilder_validations.go b/v2/tools/generator/internal/astmodel/kubebuilder_validations.go index fe549ba885e..34641f3d309 100644 --- a/v2/tools/generator/internal/astmodel/kubebuilder_validations.go +++ b/v2/tools/generator/internal/astmodel/kubebuilder_validations.go @@ -149,10 +149,6 @@ func MakeMaxItemsValidation(length int64) KubeBuilderValidation { return KubeBuilderValidation{MaxItemsValidationName, length} } -func MakeUniqueItemsValidation() KubeBuilderValidation { - return KubeBuilderValidation{UniqueItemsValidationName, true} -} - func MakeMaximumValidation(value *big.Rat) KubeBuilderValidation { if value.IsInt() { return KubeBuilderValidation{MaximumValidationName, value.RatString()} diff --git a/v2/tools/generator/internal/astmodel/validated_type.go b/v2/tools/generator/internal/astmodel/validated_type.go index a23d090219d..71e3163ffd6 100644 --- a/v2/tools/generator/internal/astmodel/validated_type.go +++ b/v2/tools/generator/internal/astmodel/validated_type.go @@ -15,13 +15,8 @@ import ( ) type ArrayValidations struct { - MaxItems *int64 - MinItems *int64 - UniqueItems bool - /* - maxContains *int - minContains *int - */ + MaxItems *int64 + MinItems *int64 } func (av ArrayValidations) Equals(other Validations) bool { @@ -31,8 +26,7 @@ func (av ArrayValidations) Equals(other Validations) bool { } return equalOptionalInt64s(av.MaxItems, o.MaxItems) && - equalOptionalInt64s(av.MinItems, o.MinItems) && - av.UniqueItems == o.UniqueItems + equalOptionalInt64s(av.MinItems, o.MinItems) } func (av ArrayValidations) ToKubeBuilderValidations() []KubeBuilderValidation { @@ -45,10 +39,6 @@ func (av ArrayValidations) ToKubeBuilderValidations() []KubeBuilderValidation { result = append(result, MakeMinItemsValidation(*av.MinItems)) } - if av.UniqueItems { - result = append(result, MakeUniqueItemsValidation()) - } - return result } diff --git a/v2/tools/generator/internal/codegen/pipeline/state.go b/v2/tools/generator/internal/codegen/pipeline/state.go index 12671541c3f..bce0ccdc89e 100644 --- a/v2/tools/generator/internal/codegen/pipeline/state.go +++ b/v2/tools/generator/internal/codegen/pipeline/state.go @@ -53,7 +53,7 @@ func (s *State) WithDefinitions(definitions astmodel.TypeDefinitionSet) *State { return result } -// WithDefinitions returns a new independent State with the given type definitions overlaid on the existing ones. +// WithOverlaidDefinitions returns a new independent State with the given type definitions overlaid on the existing ones. // Any new definitions are added, and any existing definitions are replaced. func (s *State) WithOverlaidDefinitions(definitions astmodel.TypeDefinitionSet) *State { result := s.copy() diff --git a/v2/tools/generator/internal/codegen/storage/conversion_graph_test.go b/v2/tools/generator/internal/codegen/storage/conversion_graph_test.go index a6916eb8857..bad45457717 100644 --- a/v2/tools/generator/internal/codegen/storage/conversion_graph_test.go +++ b/v2/tools/generator/internal/codegen/storage/conversion_graph_test.go @@ -7,6 +7,7 @@ package storage import ( "bytes" + "fmt" "testing" "github.com/sebdah/goldie/v2" @@ -302,7 +303,8 @@ func TestConversionGraph_WithAResourceOnlyInPreviewVersions_HasExpectedTransitio g.Expect(err).To(Succeed()) g.Expect(graph.TransitionCount()).To(Equal(6)) - expectedTransitions := []struct { + // Assert - Check transitions + cases := []struct { from astmodel.InternalTypeName to astmodel.InternalTypeName }{ @@ -315,8 +317,15 @@ func TestConversionGraph_WithAResourceOnlyInPreviewVersions_HasExpectedTransitio {address2021ps, address2020ps}, // Preview versions always convert backwards } - for _, expected := range expectedTransitions { - g.Expect(graph.LookupTransition(expected.from)).To(Equal(expected.to)) + for _, c := range cases { + c := c + t.Run( + fmt.Sprintf("%s to %s", c.from, c.to), + func(t *testing.T) { + t.Parallel() + gg := NewGomegaWithT(t) + gg.Expect(graph.LookupTransition(c.from)).To(Equal(c.to)) + }) } } diff --git a/v2/tools/generator/internal/jsonast/jsonast.go b/v2/tools/generator/internal/jsonast/jsonast.go index 335310bfb41..0609ed6ffa5 100644 --- a/v2/tools/generator/internal/jsonast/jsonast.go +++ b/v2/tools/generator/internal/jsonast/jsonast.go @@ -846,13 +846,11 @@ func arrayHandler(ctx context.Context, scanner *SchemaScanner, schema Schema, lo func withArrayValidations(schema Schema, t *astmodel.ArrayType) astmodel.Type { maxItems := schema.maxItems() minItems := schema.minItems() - uniqueItems := schema.uniqueItems() - if maxItems != nil || minItems != nil || uniqueItems { + if maxItems != nil || minItems != nil { return astmodel.NewValidatedType(t, astmodel.ArrayValidations{ - MaxItems: maxItems, - MinItems: minItems, - UniqueItems: uniqueItems, + MaxItems: maxItems, + MinItems: minItems, }) }