unstructured/google/gkehub/feature_membership.go (1,145 lines of code) (raw):

// Copyright 2025 Google LLC. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package gkehub import ( "context" "fmt" "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl" dclService "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/gkehub" "github.com/GoogleCloudPlatform/declarative-resource-client-library/unstructured" ) type FeatureMembership struct{} func FeatureMembershipToUnstructured(r *dclService.FeatureMembership) *unstructured.Resource { u := &unstructured.Resource{ STV: unstructured.ServiceTypeVersion{ Service: "gkehub", Version: "ga", Type: "FeatureMembership", }, Object: make(map[string]interface{}), } if r.Configmanagement != nil && r.Configmanagement != dclService.EmptyFeatureMembershipConfigmanagement { rConfigmanagement := make(map[string]interface{}) if r.Configmanagement.Binauthz != nil && r.Configmanagement.Binauthz != dclService.EmptyFeatureMembershipConfigmanagementBinauthz { rConfigmanagementBinauthz := make(map[string]interface{}) if r.Configmanagement.Binauthz.Enabled != nil { rConfigmanagementBinauthz["enabled"] = *r.Configmanagement.Binauthz.Enabled } rConfigmanagement["binauthz"] = rConfigmanagementBinauthz } if r.Configmanagement.ConfigSync != nil && r.Configmanagement.ConfigSync != dclService.EmptyFeatureMembershipConfigmanagementConfigSync { rConfigmanagementConfigSync := make(map[string]interface{}) var rConfigmanagementConfigSyncDeploymentOverrides []interface{} for _, rConfigmanagementConfigSyncDeploymentOverridesVal := range r.Configmanagement.ConfigSync.DeploymentOverrides { rConfigmanagementConfigSyncDeploymentOverridesObject := make(map[string]interface{}) var rConfigmanagementConfigSyncDeploymentOverridesValContainers []interface{} for _, rConfigmanagementConfigSyncDeploymentOverridesValContainersVal := range rConfigmanagementConfigSyncDeploymentOverridesVal.Containers { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject := make(map[string]interface{}) if rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.ContainerName != nil { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject["containerName"] = *rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.ContainerName } if rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.CpuLimit != nil { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject["cpuLimit"] = *rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.CpuLimit } if rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.CpuRequest != nil { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject["cpuRequest"] = *rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.CpuRequest } if rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.MemoryLimit != nil { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject["memoryLimit"] = *rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.MemoryLimit } if rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.MemoryRequest != nil { rConfigmanagementConfigSyncDeploymentOverridesValContainersObject["memoryRequest"] = *rConfigmanagementConfigSyncDeploymentOverridesValContainersVal.MemoryRequest } rConfigmanagementConfigSyncDeploymentOverridesValContainers = append(rConfigmanagementConfigSyncDeploymentOverridesValContainers, rConfigmanagementConfigSyncDeploymentOverridesValContainersObject) } rConfigmanagementConfigSyncDeploymentOverridesObject["containers"] = rConfigmanagementConfigSyncDeploymentOverridesValContainers if rConfigmanagementConfigSyncDeploymentOverridesVal.DeploymentName != nil { rConfigmanagementConfigSyncDeploymentOverridesObject["deploymentName"] = *rConfigmanagementConfigSyncDeploymentOverridesVal.DeploymentName } if rConfigmanagementConfigSyncDeploymentOverridesVal.DeploymentNamespace != nil { rConfigmanagementConfigSyncDeploymentOverridesObject["deploymentNamespace"] = *rConfigmanagementConfigSyncDeploymentOverridesVal.DeploymentNamespace } rConfigmanagementConfigSyncDeploymentOverrides = append(rConfigmanagementConfigSyncDeploymentOverrides, rConfigmanagementConfigSyncDeploymentOverridesObject) } rConfigmanagementConfigSync["deploymentOverrides"] = rConfigmanagementConfigSyncDeploymentOverrides if r.Configmanagement.ConfigSync.Enabled != nil { rConfigmanagementConfigSync["enabled"] = *r.Configmanagement.ConfigSync.Enabled } if r.Configmanagement.ConfigSync.Git != nil && r.Configmanagement.ConfigSync.Git != dclService.EmptyFeatureMembershipConfigmanagementConfigSyncGit { rConfigmanagementConfigSyncGit := make(map[string]interface{}) if r.Configmanagement.ConfigSync.Git.GcpServiceAccountEmail != nil { rConfigmanagementConfigSyncGit["gcpServiceAccountEmail"] = *r.Configmanagement.ConfigSync.Git.GcpServiceAccountEmail } if r.Configmanagement.ConfigSync.Git.HttpsProxy != nil { rConfigmanagementConfigSyncGit["httpsProxy"] = *r.Configmanagement.ConfigSync.Git.HttpsProxy } if r.Configmanagement.ConfigSync.Git.PolicyDir != nil { rConfigmanagementConfigSyncGit["policyDir"] = *r.Configmanagement.ConfigSync.Git.PolicyDir } if r.Configmanagement.ConfigSync.Git.SecretType != nil { rConfigmanagementConfigSyncGit["secretType"] = *r.Configmanagement.ConfigSync.Git.SecretType } if r.Configmanagement.ConfigSync.Git.SyncBranch != nil { rConfigmanagementConfigSyncGit["syncBranch"] = *r.Configmanagement.ConfigSync.Git.SyncBranch } if r.Configmanagement.ConfigSync.Git.SyncRepo != nil { rConfigmanagementConfigSyncGit["syncRepo"] = *r.Configmanagement.ConfigSync.Git.SyncRepo } if r.Configmanagement.ConfigSync.Git.SyncRev != nil { rConfigmanagementConfigSyncGit["syncRev"] = *r.Configmanagement.ConfigSync.Git.SyncRev } if r.Configmanagement.ConfigSync.Git.SyncWaitSecs != nil { rConfigmanagementConfigSyncGit["syncWaitSecs"] = *r.Configmanagement.ConfigSync.Git.SyncWaitSecs } rConfigmanagementConfigSync["git"] = rConfigmanagementConfigSyncGit } if r.Configmanagement.ConfigSync.MetricsGcpServiceAccountEmail != nil { rConfigmanagementConfigSync["metricsGcpServiceAccountEmail"] = *r.Configmanagement.ConfigSync.MetricsGcpServiceAccountEmail } if r.Configmanagement.ConfigSync.Oci != nil && r.Configmanagement.ConfigSync.Oci != dclService.EmptyFeatureMembershipConfigmanagementConfigSyncOci { rConfigmanagementConfigSyncOci := make(map[string]interface{}) if r.Configmanagement.ConfigSync.Oci.GcpServiceAccountEmail != nil { rConfigmanagementConfigSyncOci["gcpServiceAccountEmail"] = *r.Configmanagement.ConfigSync.Oci.GcpServiceAccountEmail } if r.Configmanagement.ConfigSync.Oci.PolicyDir != nil { rConfigmanagementConfigSyncOci["policyDir"] = *r.Configmanagement.ConfigSync.Oci.PolicyDir } if r.Configmanagement.ConfigSync.Oci.SecretType != nil { rConfigmanagementConfigSyncOci["secretType"] = *r.Configmanagement.ConfigSync.Oci.SecretType } if r.Configmanagement.ConfigSync.Oci.SyncRepo != nil { rConfigmanagementConfigSyncOci["syncRepo"] = *r.Configmanagement.ConfigSync.Oci.SyncRepo } if r.Configmanagement.ConfigSync.Oci.SyncWaitSecs != nil { rConfigmanagementConfigSyncOci["syncWaitSecs"] = *r.Configmanagement.ConfigSync.Oci.SyncWaitSecs } rConfigmanagementConfigSync["oci"] = rConfigmanagementConfigSyncOci } if r.Configmanagement.ConfigSync.PreventDrift != nil { rConfigmanagementConfigSync["preventDrift"] = *r.Configmanagement.ConfigSync.PreventDrift } if r.Configmanagement.ConfigSync.SourceFormat != nil { rConfigmanagementConfigSync["sourceFormat"] = *r.Configmanagement.ConfigSync.SourceFormat } if r.Configmanagement.ConfigSync.StopSyncing != nil { rConfigmanagementConfigSync["stopSyncing"] = *r.Configmanagement.ConfigSync.StopSyncing } rConfigmanagement["configSync"] = rConfigmanagementConfigSync } if r.Configmanagement.HierarchyController != nil && r.Configmanagement.HierarchyController != dclService.EmptyFeatureMembershipConfigmanagementHierarchyController { rConfigmanagementHierarchyController := make(map[string]interface{}) if r.Configmanagement.HierarchyController.EnableHierarchicalResourceQuota != nil { rConfigmanagementHierarchyController["enableHierarchicalResourceQuota"] = *r.Configmanagement.HierarchyController.EnableHierarchicalResourceQuota } if r.Configmanagement.HierarchyController.EnablePodTreeLabels != nil { rConfigmanagementHierarchyController["enablePodTreeLabels"] = *r.Configmanagement.HierarchyController.EnablePodTreeLabels } if r.Configmanagement.HierarchyController.Enabled != nil { rConfigmanagementHierarchyController["enabled"] = *r.Configmanagement.HierarchyController.Enabled } rConfigmanagement["hierarchyController"] = rConfigmanagementHierarchyController } if r.Configmanagement.Management != nil { rConfigmanagement["management"] = string(*r.Configmanagement.Management) } if r.Configmanagement.PolicyController != nil && r.Configmanagement.PolicyController != dclService.EmptyFeatureMembershipConfigmanagementPolicyController { rConfigmanagementPolicyController := make(map[string]interface{}) if r.Configmanagement.PolicyController.AuditIntervalSeconds != nil { rConfigmanagementPolicyController["auditIntervalSeconds"] = *r.Configmanagement.PolicyController.AuditIntervalSeconds } if r.Configmanagement.PolicyController.Enabled != nil { rConfigmanagementPolicyController["enabled"] = *r.Configmanagement.PolicyController.Enabled } var rConfigmanagementPolicyControllerExemptableNamespaces []interface{} for _, rConfigmanagementPolicyControllerExemptableNamespacesVal := range r.Configmanagement.PolicyController.ExemptableNamespaces { rConfigmanagementPolicyControllerExemptableNamespaces = append(rConfigmanagementPolicyControllerExemptableNamespaces, rConfigmanagementPolicyControllerExemptableNamespacesVal) } rConfigmanagementPolicyController["exemptableNamespaces"] = rConfigmanagementPolicyControllerExemptableNamespaces if r.Configmanagement.PolicyController.LogDeniesEnabled != nil { rConfigmanagementPolicyController["logDeniesEnabled"] = *r.Configmanagement.PolicyController.LogDeniesEnabled } if r.Configmanagement.PolicyController.Monitoring != nil && r.Configmanagement.PolicyController.Monitoring != dclService.EmptyFeatureMembershipConfigmanagementPolicyControllerMonitoring { rConfigmanagementPolicyControllerMonitoring := make(map[string]interface{}) var rConfigmanagementPolicyControllerMonitoringBackends []interface{} for _, rConfigmanagementPolicyControllerMonitoringBackendsVal := range r.Configmanagement.PolicyController.Monitoring.Backends { rConfigmanagementPolicyControllerMonitoringBackends = append(rConfigmanagementPolicyControllerMonitoringBackends, string(rConfigmanagementPolicyControllerMonitoringBackendsVal)) } rConfigmanagementPolicyControllerMonitoring["backends"] = rConfigmanagementPolicyControllerMonitoringBackends rConfigmanagementPolicyController["monitoring"] = rConfigmanagementPolicyControllerMonitoring } if r.Configmanagement.PolicyController.MutationEnabled != nil { rConfigmanagementPolicyController["mutationEnabled"] = *r.Configmanagement.PolicyController.MutationEnabled } if r.Configmanagement.PolicyController.ReferentialRulesEnabled != nil { rConfigmanagementPolicyController["referentialRulesEnabled"] = *r.Configmanagement.PolicyController.ReferentialRulesEnabled } if r.Configmanagement.PolicyController.TemplateLibraryInstalled != nil { rConfigmanagementPolicyController["templateLibraryInstalled"] = *r.Configmanagement.PolicyController.TemplateLibraryInstalled } rConfigmanagement["policyController"] = rConfigmanagementPolicyController } if r.Configmanagement.Version != nil { rConfigmanagement["version"] = *r.Configmanagement.Version } u.Object["configmanagement"] = rConfigmanagement } if r.Feature != nil { u.Object["feature"] = *r.Feature } if r.Location != nil { u.Object["location"] = *r.Location } if r.Membership != nil { u.Object["membership"] = *r.Membership } if r.MembershipLocation != nil { u.Object["membershipLocation"] = *r.MembershipLocation } if r.Mesh != nil && r.Mesh != dclService.EmptyFeatureMembershipMesh { rMesh := make(map[string]interface{}) if r.Mesh.ControlPlane != nil { rMesh["controlPlane"] = string(*r.Mesh.ControlPlane) } if r.Mesh.Management != nil { rMesh["management"] = string(*r.Mesh.Management) } u.Object["mesh"] = rMesh } if r.Policycontroller != nil && r.Policycontroller != dclService.EmptyFeatureMembershipPolicycontroller { rPolicycontroller := make(map[string]interface{}) if r.Policycontroller.PolicyControllerHubConfig != nil && r.Policycontroller.PolicyControllerHubConfig != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfig { rPolicycontrollerPolicyControllerHubConfig := make(map[string]interface{}) if r.Policycontroller.PolicyControllerHubConfig.AuditIntervalSeconds != nil { rPolicycontrollerPolicyControllerHubConfig["auditIntervalSeconds"] = *r.Policycontroller.PolicyControllerHubConfig.AuditIntervalSeconds } if r.Policycontroller.PolicyControllerHubConfig.ConstraintViolationLimit != nil { rPolicycontrollerPolicyControllerHubConfig["constraintViolationLimit"] = *r.Policycontroller.PolicyControllerHubConfig.ConstraintViolationLimit } if r.Policycontroller.PolicyControllerHubConfig.DeploymentConfigs != nil { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigs := make(map[string]interface{}) for k, v := range r.Policycontroller.PolicyControllerHubConfig.DeploymentConfigs { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap := make(map[string]interface{}) if v.ContainerResources != nil && v.ContainerResources != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources { vContainerResources := make(map[string]interface{}) if v.ContainerResources.Limits != nil && v.ContainerResources.Limits != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits { vContainerResourcesLimits := make(map[string]interface{}) if v.ContainerResources.Limits.Cpu != nil { vContainerResourcesLimits["cpu"] = *v.ContainerResources.Limits.Cpu } if v.ContainerResources.Limits.Memory != nil { vContainerResourcesLimits["memory"] = *v.ContainerResources.Limits.Memory } vContainerResources["limits"] = vContainerResourcesLimits } if v.ContainerResources.Requests != nil && v.ContainerResources.Requests != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests { vContainerResourcesRequests := make(map[string]interface{}) if v.ContainerResources.Requests.Cpu != nil { vContainerResourcesRequests["cpu"] = *v.ContainerResources.Requests.Cpu } if v.ContainerResources.Requests.Memory != nil { vContainerResourcesRequests["memory"] = *v.ContainerResources.Requests.Memory } vContainerResources["requests"] = vContainerResourcesRequests } rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap["containerResources"] = vContainerResources } if v.PodAffinity != nil { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap["podAffinity"] = string(*v.PodAffinity) } var vPodTolerations []interface{} for _, vPodTolerationsVal := range v.PodTolerations { vPodTolerationsObject := make(map[string]interface{}) if vPodTolerationsVal.Effect != nil { vPodTolerationsObject["effect"] = *vPodTolerationsVal.Effect } if vPodTolerationsVal.Key != nil { vPodTolerationsObject["key"] = *vPodTolerationsVal.Key } if vPodTolerationsVal.Operator != nil { vPodTolerationsObject["operator"] = *vPodTolerationsVal.Operator } if vPodTolerationsVal.Value != nil { vPodTolerationsObject["value"] = *vPodTolerationsVal.Value } vPodTolerations = append(vPodTolerations, vPodTolerationsObject) } rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap["podTolerations"] = vPodTolerations if v.ReplicaCount != nil { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap["replicaCount"] = *v.ReplicaCount } rPolicycontrollerPolicyControllerHubConfigDeploymentConfigs[k] = rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsMap } rPolicycontrollerPolicyControllerHubConfig["deploymentConfigs"] = rPolicycontrollerPolicyControllerHubConfigDeploymentConfigs } var rPolicycontrollerPolicyControllerHubConfigExemptableNamespaces []interface{} for _, rPolicycontrollerPolicyControllerHubConfigExemptableNamespacesVal := range r.Policycontroller.PolicyControllerHubConfig.ExemptableNamespaces { rPolicycontrollerPolicyControllerHubConfigExemptableNamespaces = append(rPolicycontrollerPolicyControllerHubConfigExemptableNamespaces, rPolicycontrollerPolicyControllerHubConfigExemptableNamespacesVal) } rPolicycontrollerPolicyControllerHubConfig["exemptableNamespaces"] = rPolicycontrollerPolicyControllerHubConfigExemptableNamespaces if r.Policycontroller.PolicyControllerHubConfig.InstallSpec != nil { rPolicycontrollerPolicyControllerHubConfig["installSpec"] = string(*r.Policycontroller.PolicyControllerHubConfig.InstallSpec) } if r.Policycontroller.PolicyControllerHubConfig.LogDeniesEnabled != nil { rPolicycontrollerPolicyControllerHubConfig["logDeniesEnabled"] = *r.Policycontroller.PolicyControllerHubConfig.LogDeniesEnabled } if r.Policycontroller.PolicyControllerHubConfig.Monitoring != nil && r.Policycontroller.PolicyControllerHubConfig.Monitoring != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring { rPolicycontrollerPolicyControllerHubConfigMonitoring := make(map[string]interface{}) var rPolicycontrollerPolicyControllerHubConfigMonitoringBackends []interface{} for _, rPolicycontrollerPolicyControllerHubConfigMonitoringBackendsVal := range r.Policycontroller.PolicyControllerHubConfig.Monitoring.Backends { rPolicycontrollerPolicyControllerHubConfigMonitoringBackends = append(rPolicycontrollerPolicyControllerHubConfigMonitoringBackends, string(rPolicycontrollerPolicyControllerHubConfigMonitoringBackendsVal)) } rPolicycontrollerPolicyControllerHubConfigMonitoring["backends"] = rPolicycontrollerPolicyControllerHubConfigMonitoringBackends rPolicycontrollerPolicyControllerHubConfig["monitoring"] = rPolicycontrollerPolicyControllerHubConfigMonitoring } if r.Policycontroller.PolicyControllerHubConfig.MutationEnabled != nil { rPolicycontrollerPolicyControllerHubConfig["mutationEnabled"] = *r.Policycontroller.PolicyControllerHubConfig.MutationEnabled } if r.Policycontroller.PolicyControllerHubConfig.PolicyContent != nil && r.Policycontroller.PolicyControllerHubConfig.PolicyContent != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent { rPolicycontrollerPolicyControllerHubConfigPolicyContent := make(map[string]interface{}) if r.Policycontroller.PolicyControllerHubConfig.PolicyContent.Bundles != nil { rPolicycontrollerPolicyControllerHubConfigPolicyContentBundles := make(map[string]interface{}) for k, v := range r.Policycontroller.PolicyControllerHubConfig.PolicyContent.Bundles { rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesMap := make(map[string]interface{}) var vExemptedNamespaces []interface{} for _, vExemptedNamespacesVal := range v.ExemptedNamespaces { vExemptedNamespaces = append(vExemptedNamespaces, vExemptedNamespacesVal) } rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesMap["exemptedNamespaces"] = vExemptedNamespaces rPolicycontrollerPolicyControllerHubConfigPolicyContentBundles[k] = rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesMap } rPolicycontrollerPolicyControllerHubConfigPolicyContent["bundles"] = rPolicycontrollerPolicyControllerHubConfigPolicyContentBundles } if r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary != nil && r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary != dclService.EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary { rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary := make(map[string]interface{}) if r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary.Installation != nil { rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary["installation"] = string(*r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary.Installation) } rPolicycontrollerPolicyControllerHubConfigPolicyContent["templateLibrary"] = rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary } rPolicycontrollerPolicyControllerHubConfig["policyContent"] = rPolicycontrollerPolicyControllerHubConfigPolicyContent } if r.Policycontroller.PolicyControllerHubConfig.ReferentialRulesEnabled != nil { rPolicycontrollerPolicyControllerHubConfig["referentialRulesEnabled"] = *r.Policycontroller.PolicyControllerHubConfig.ReferentialRulesEnabled } rPolicycontroller["policyControllerHubConfig"] = rPolicycontrollerPolicyControllerHubConfig } if r.Policycontroller.Version != nil { rPolicycontroller["version"] = *r.Policycontroller.Version } u.Object["policycontroller"] = rPolicycontroller } if r.Project != nil { u.Object["project"] = *r.Project } return u } func UnstructuredToFeatureMembership(u *unstructured.Resource) (*dclService.FeatureMembership, error) { r := &dclService.FeatureMembership{} if _, ok := u.Object["configmanagement"]; ok { if rConfigmanagement, ok := u.Object["configmanagement"].(map[string]interface{}); ok { r.Configmanagement = &dclService.FeatureMembershipConfigmanagement{} if _, ok := rConfigmanagement["binauthz"]; ok { if rConfigmanagementBinauthz, ok := rConfigmanagement["binauthz"].(map[string]interface{}); ok { r.Configmanagement.Binauthz = &dclService.FeatureMembershipConfigmanagementBinauthz{} if _, ok := rConfigmanagementBinauthz["enabled"]; ok { if b, ok := rConfigmanagementBinauthz["enabled"].(bool); ok { r.Configmanagement.Binauthz.Enabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.Binauthz.Enabled: expected bool") } } } else { return nil, fmt.Errorf("r.Configmanagement.Binauthz: expected map[string]interface{}") } } if _, ok := rConfigmanagement["configSync"]; ok { if rConfigmanagementConfigSync, ok := rConfigmanagement["configSync"].(map[string]interface{}); ok { r.Configmanagement.ConfigSync = &dclService.FeatureMembershipConfigmanagementConfigSync{} if _, ok := rConfigmanagementConfigSync["deploymentOverrides"]; ok { if s, ok := rConfigmanagementConfigSync["deploymentOverrides"].([]interface{}); ok { for _, o := range s { if objval, ok := o.(map[string]interface{}); ok { var rConfigmanagementConfigSyncDeploymentOverrides dclService.FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides if _, ok := objval["containers"]; ok { if s, ok := objval["containers"].([]interface{}); ok { for _, o := range s { if objval, ok := o.(map[string]interface{}); ok { var rConfigmanagementConfigSyncDeploymentOverridesContainers dclService.FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers if _, ok := objval["containerName"]; ok { if s, ok := objval["containerName"].(string); ok { rConfigmanagementConfigSyncDeploymentOverridesContainers.ContainerName = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverridesContainers.ContainerName: expected string") } } if _, ok := objval["cpuLimit"]; ok { if s, ok := objval["cpuLimit"].(string); ok { rConfigmanagementConfigSyncDeploymentOverridesContainers.CpuLimit = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverridesContainers.CpuLimit: expected string") } } if _, ok := objval["cpuRequest"]; ok { if s, ok := objval["cpuRequest"].(string); ok { rConfigmanagementConfigSyncDeploymentOverridesContainers.CpuRequest = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverridesContainers.CpuRequest: expected string") } } if _, ok := objval["memoryLimit"]; ok { if s, ok := objval["memoryLimit"].(string); ok { rConfigmanagementConfigSyncDeploymentOverridesContainers.MemoryLimit = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverridesContainers.MemoryLimit: expected string") } } if _, ok := objval["memoryRequest"]; ok { if s, ok := objval["memoryRequest"].(string); ok { rConfigmanagementConfigSyncDeploymentOverridesContainers.MemoryRequest = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverridesContainers.MemoryRequest: expected string") } } rConfigmanagementConfigSyncDeploymentOverrides.Containers = append(rConfigmanagementConfigSyncDeploymentOverrides.Containers, rConfigmanagementConfigSyncDeploymentOverridesContainers) } } } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverrides.Containers: expected []interface{}") } } if _, ok := objval["deploymentName"]; ok { if s, ok := objval["deploymentName"].(string); ok { rConfigmanagementConfigSyncDeploymentOverrides.DeploymentName = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverrides.DeploymentName: expected string") } } if _, ok := objval["deploymentNamespace"]; ok { if s, ok := objval["deploymentNamespace"].(string); ok { rConfigmanagementConfigSyncDeploymentOverrides.DeploymentNamespace = dcl.String(s) } else { return nil, fmt.Errorf("rConfigmanagementConfigSyncDeploymentOverrides.DeploymentNamespace: expected string") } } r.Configmanagement.ConfigSync.DeploymentOverrides = append(r.Configmanagement.ConfigSync.DeploymentOverrides, rConfigmanagementConfigSyncDeploymentOverrides) } } } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.DeploymentOverrides: expected []interface{}") } } if _, ok := rConfigmanagementConfigSync["enabled"]; ok { if b, ok := rConfigmanagementConfigSync["enabled"].(bool); ok { r.Configmanagement.ConfigSync.Enabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Enabled: expected bool") } } if _, ok := rConfigmanagementConfigSync["git"]; ok { if rConfigmanagementConfigSyncGit, ok := rConfigmanagementConfigSync["git"].(map[string]interface{}); ok { r.Configmanagement.ConfigSync.Git = &dclService.FeatureMembershipConfigmanagementConfigSyncGit{} if _, ok := rConfigmanagementConfigSyncGit["gcpServiceAccountEmail"]; ok { if s, ok := rConfigmanagementConfigSyncGit["gcpServiceAccountEmail"].(string); ok { r.Configmanagement.ConfigSync.Git.GcpServiceAccountEmail = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.GcpServiceAccountEmail: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["httpsProxy"]; ok { if s, ok := rConfigmanagementConfigSyncGit["httpsProxy"].(string); ok { r.Configmanagement.ConfigSync.Git.HttpsProxy = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.HttpsProxy: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["policyDir"]; ok { if s, ok := rConfigmanagementConfigSyncGit["policyDir"].(string); ok { r.Configmanagement.ConfigSync.Git.PolicyDir = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.PolicyDir: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["secretType"]; ok { if s, ok := rConfigmanagementConfigSyncGit["secretType"].(string); ok { r.Configmanagement.ConfigSync.Git.SecretType = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.SecretType: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["syncBranch"]; ok { if s, ok := rConfigmanagementConfigSyncGit["syncBranch"].(string); ok { r.Configmanagement.ConfigSync.Git.SyncBranch = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.SyncBranch: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["syncRepo"]; ok { if s, ok := rConfigmanagementConfigSyncGit["syncRepo"].(string); ok { r.Configmanagement.ConfigSync.Git.SyncRepo = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.SyncRepo: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["syncRev"]; ok { if s, ok := rConfigmanagementConfigSyncGit["syncRev"].(string); ok { r.Configmanagement.ConfigSync.Git.SyncRev = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.SyncRev: expected string") } } if _, ok := rConfigmanagementConfigSyncGit["syncWaitSecs"]; ok { if s, ok := rConfigmanagementConfigSyncGit["syncWaitSecs"].(string); ok { r.Configmanagement.ConfigSync.Git.SyncWaitSecs = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git.SyncWaitSecs: expected string") } } } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Git: expected map[string]interface{}") } } if _, ok := rConfigmanagementConfigSync["metricsGcpServiceAccountEmail"]; ok { if s, ok := rConfigmanagementConfigSync["metricsGcpServiceAccountEmail"].(string); ok { r.Configmanagement.ConfigSync.MetricsGcpServiceAccountEmail = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.MetricsGcpServiceAccountEmail: expected string") } } if _, ok := rConfigmanagementConfigSync["oci"]; ok { if rConfigmanagementConfigSyncOci, ok := rConfigmanagementConfigSync["oci"].(map[string]interface{}); ok { r.Configmanagement.ConfigSync.Oci = &dclService.FeatureMembershipConfigmanagementConfigSyncOci{} if _, ok := rConfigmanagementConfigSyncOci["gcpServiceAccountEmail"]; ok { if s, ok := rConfigmanagementConfigSyncOci["gcpServiceAccountEmail"].(string); ok { r.Configmanagement.ConfigSync.Oci.GcpServiceAccountEmail = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci.GcpServiceAccountEmail: expected string") } } if _, ok := rConfigmanagementConfigSyncOci["policyDir"]; ok { if s, ok := rConfigmanagementConfigSyncOci["policyDir"].(string); ok { r.Configmanagement.ConfigSync.Oci.PolicyDir = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci.PolicyDir: expected string") } } if _, ok := rConfigmanagementConfigSyncOci["secretType"]; ok { if s, ok := rConfigmanagementConfigSyncOci["secretType"].(string); ok { r.Configmanagement.ConfigSync.Oci.SecretType = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci.SecretType: expected string") } } if _, ok := rConfigmanagementConfigSyncOci["syncRepo"]; ok { if s, ok := rConfigmanagementConfigSyncOci["syncRepo"].(string); ok { r.Configmanagement.ConfigSync.Oci.SyncRepo = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci.SyncRepo: expected string") } } if _, ok := rConfigmanagementConfigSyncOci["syncWaitSecs"]; ok { if s, ok := rConfigmanagementConfigSyncOci["syncWaitSecs"].(string); ok { r.Configmanagement.ConfigSync.Oci.SyncWaitSecs = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci.SyncWaitSecs: expected string") } } } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.Oci: expected map[string]interface{}") } } if _, ok := rConfigmanagementConfigSync["preventDrift"]; ok { if b, ok := rConfigmanagementConfigSync["preventDrift"].(bool); ok { r.Configmanagement.ConfigSync.PreventDrift = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.PreventDrift: expected bool") } } if _, ok := rConfigmanagementConfigSync["sourceFormat"]; ok { if s, ok := rConfigmanagementConfigSync["sourceFormat"].(string); ok { r.Configmanagement.ConfigSync.SourceFormat = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.SourceFormat: expected string") } } if _, ok := rConfigmanagementConfigSync["stopSyncing"]; ok { if b, ok := rConfigmanagementConfigSync["stopSyncing"].(bool); ok { r.Configmanagement.ConfigSync.StopSyncing = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync.StopSyncing: expected bool") } } } else { return nil, fmt.Errorf("r.Configmanagement.ConfigSync: expected map[string]interface{}") } } if _, ok := rConfigmanagement["hierarchyController"]; ok { if rConfigmanagementHierarchyController, ok := rConfigmanagement["hierarchyController"].(map[string]interface{}); ok { r.Configmanagement.HierarchyController = &dclService.FeatureMembershipConfigmanagementHierarchyController{} if _, ok := rConfigmanagementHierarchyController["enableHierarchicalResourceQuota"]; ok { if b, ok := rConfigmanagementHierarchyController["enableHierarchicalResourceQuota"].(bool); ok { r.Configmanagement.HierarchyController.EnableHierarchicalResourceQuota = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.HierarchyController.EnableHierarchicalResourceQuota: expected bool") } } if _, ok := rConfigmanagementHierarchyController["enablePodTreeLabels"]; ok { if b, ok := rConfigmanagementHierarchyController["enablePodTreeLabels"].(bool); ok { r.Configmanagement.HierarchyController.EnablePodTreeLabels = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.HierarchyController.EnablePodTreeLabels: expected bool") } } if _, ok := rConfigmanagementHierarchyController["enabled"]; ok { if b, ok := rConfigmanagementHierarchyController["enabled"].(bool); ok { r.Configmanagement.HierarchyController.Enabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.HierarchyController.Enabled: expected bool") } } } else { return nil, fmt.Errorf("r.Configmanagement.HierarchyController: expected map[string]interface{}") } } if _, ok := rConfigmanagement["management"]; ok { if s, ok := rConfigmanagement["management"].(string); ok { r.Configmanagement.Management = dclService.FeatureMembershipConfigmanagementManagementEnumRef(s) } else { return nil, fmt.Errorf("r.Configmanagement.Management: expected string") } } if _, ok := rConfigmanagement["policyController"]; ok { if rConfigmanagementPolicyController, ok := rConfigmanagement["policyController"].(map[string]interface{}); ok { r.Configmanagement.PolicyController = &dclService.FeatureMembershipConfigmanagementPolicyController{} if _, ok := rConfigmanagementPolicyController["auditIntervalSeconds"]; ok { if s, ok := rConfigmanagementPolicyController["auditIntervalSeconds"].(string); ok { r.Configmanagement.PolicyController.AuditIntervalSeconds = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.AuditIntervalSeconds: expected string") } } if _, ok := rConfigmanagementPolicyController["enabled"]; ok { if b, ok := rConfigmanagementPolicyController["enabled"].(bool); ok { r.Configmanagement.PolicyController.Enabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.Enabled: expected bool") } } if _, ok := rConfigmanagementPolicyController["exemptableNamespaces"]; ok { if s, ok := rConfigmanagementPolicyController["exemptableNamespaces"].([]interface{}); ok { for _, ss := range s { if strval, ok := ss.(string); ok { r.Configmanagement.PolicyController.ExemptableNamespaces = append(r.Configmanagement.PolicyController.ExemptableNamespaces, strval) } } } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.ExemptableNamespaces: expected []interface{}") } } if _, ok := rConfigmanagementPolicyController["logDeniesEnabled"]; ok { if b, ok := rConfigmanagementPolicyController["logDeniesEnabled"].(bool); ok { r.Configmanagement.PolicyController.LogDeniesEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.LogDeniesEnabled: expected bool") } } if _, ok := rConfigmanagementPolicyController["monitoring"]; ok { if rConfigmanagementPolicyControllerMonitoring, ok := rConfigmanagementPolicyController["monitoring"].(map[string]interface{}); ok { r.Configmanagement.PolicyController.Monitoring = &dclService.FeatureMembershipConfigmanagementPolicyControllerMonitoring{} if _, ok := rConfigmanagementPolicyControllerMonitoring["backends"]; ok { if s, ok := rConfigmanagementPolicyControllerMonitoring["backends"].([]interface{}); ok { for _, ss := range s { if strval, ok := ss.(string); ok { r.Configmanagement.PolicyController.Monitoring.Backends = append(r.Configmanagement.PolicyController.Monitoring.Backends, dclService.FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum(strval)) } } } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.Monitoring.Backends: expected []interface{}") } } } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.Monitoring: expected map[string]interface{}") } } if _, ok := rConfigmanagementPolicyController["mutationEnabled"]; ok { if b, ok := rConfigmanagementPolicyController["mutationEnabled"].(bool); ok { r.Configmanagement.PolicyController.MutationEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.MutationEnabled: expected bool") } } if _, ok := rConfigmanagementPolicyController["referentialRulesEnabled"]; ok { if b, ok := rConfigmanagementPolicyController["referentialRulesEnabled"].(bool); ok { r.Configmanagement.PolicyController.ReferentialRulesEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.ReferentialRulesEnabled: expected bool") } } if _, ok := rConfigmanagementPolicyController["templateLibraryInstalled"]; ok { if b, ok := rConfigmanagementPolicyController["templateLibraryInstalled"].(bool); ok { r.Configmanagement.PolicyController.TemplateLibraryInstalled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController.TemplateLibraryInstalled: expected bool") } } } else { return nil, fmt.Errorf("r.Configmanagement.PolicyController: expected map[string]interface{}") } } if _, ok := rConfigmanagement["version"]; ok { if s, ok := rConfigmanagement["version"].(string); ok { r.Configmanagement.Version = dcl.String(s) } else { return nil, fmt.Errorf("r.Configmanagement.Version: expected string") } } } else { return nil, fmt.Errorf("r.Configmanagement: expected map[string]interface{}") } } if _, ok := u.Object["feature"]; ok { if s, ok := u.Object["feature"].(string); ok { r.Feature = dcl.String(s) } else { return nil, fmt.Errorf("r.Feature: expected string") } } if _, ok := u.Object["location"]; ok { if s, ok := u.Object["location"].(string); ok { r.Location = dcl.String(s) } else { return nil, fmt.Errorf("r.Location: expected string") } } if _, ok := u.Object["membership"]; ok { if s, ok := u.Object["membership"].(string); ok { r.Membership = dcl.String(s) } else { return nil, fmt.Errorf("r.Membership: expected string") } } if _, ok := u.Object["membershipLocation"]; ok { if s, ok := u.Object["membershipLocation"].(string); ok { r.MembershipLocation = dcl.String(s) } else { return nil, fmt.Errorf("r.MembershipLocation: expected string") } } if _, ok := u.Object["mesh"]; ok { if rMesh, ok := u.Object["mesh"].(map[string]interface{}); ok { r.Mesh = &dclService.FeatureMembershipMesh{} if _, ok := rMesh["controlPlane"]; ok { if s, ok := rMesh["controlPlane"].(string); ok { r.Mesh.ControlPlane = dclService.FeatureMembershipMeshControlPlaneEnumRef(s) } else { return nil, fmt.Errorf("r.Mesh.ControlPlane: expected string") } } if _, ok := rMesh["management"]; ok { if s, ok := rMesh["management"].(string); ok { r.Mesh.Management = dclService.FeatureMembershipMeshManagementEnumRef(s) } else { return nil, fmt.Errorf("r.Mesh.Management: expected string") } } } else { return nil, fmt.Errorf("r.Mesh: expected map[string]interface{}") } } if _, ok := u.Object["policycontroller"]; ok { if rPolicycontroller, ok := u.Object["policycontroller"].(map[string]interface{}); ok { r.Policycontroller = &dclService.FeatureMembershipPolicycontroller{} if _, ok := rPolicycontroller["policyControllerHubConfig"]; ok { if rPolicycontrollerPolicyControllerHubConfig, ok := rPolicycontroller["policyControllerHubConfig"].(map[string]interface{}); ok { r.Policycontroller.PolicyControllerHubConfig = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfig{} if _, ok := rPolicycontrollerPolicyControllerHubConfig["auditIntervalSeconds"]; ok { if i, ok := rPolicycontrollerPolicyControllerHubConfig["auditIntervalSeconds"].(int64); ok { r.Policycontroller.PolicyControllerHubConfig.AuditIntervalSeconds = dcl.Int64(i) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.AuditIntervalSeconds: expected int64") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["constraintViolationLimit"]; ok { if i, ok := rPolicycontrollerPolicyControllerHubConfig["constraintViolationLimit"].(int64); ok { r.Policycontroller.PolicyControllerHubConfig.ConstraintViolationLimit = dcl.Int64(i) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.ConstraintViolationLimit: expected int64") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["deploymentConfigs"]; ok { if rPolicycontrollerPolicyControllerHubConfigDeploymentConfigs, ok := rPolicycontrollerPolicyControllerHubConfig["deploymentConfigs"].(map[string]interface{}); ok { m := make(map[string]dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs) for k, v := range rPolicycontrollerPolicyControllerHubConfigDeploymentConfigs { if objval, ok := v.(map[string]interface{}); ok { var rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs if _, ok := objval["containerResources"]; ok { if rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResources, ok := objval["containerResources"].(map[string]interface{}); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources{} if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResources["limits"]; ok { if rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesLimits, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResources["limits"].(map[string]interface{}); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits{} if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesLimits["cpu"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesLimits["cpu"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits.Cpu = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits.Cpu: expected string") } } if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesLimits["memory"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesLimits["memory"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits.Memory = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits.Memory: expected string") } } } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Limits: expected map[string]interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResources["requests"]; ok { if rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesRequests, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResources["requests"].(map[string]interface{}); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests{} if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesRequests["cpu"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesRequests["cpu"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests.Cpu = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests.Cpu: expected string") } } if _, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesRequests["memory"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjContainerResourcesRequests["memory"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests.Memory = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests.Memory: expected string") } } } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources.Requests: expected map[string]interface{}") } } } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ContainerResources: expected map[string]interface{}") } } if _, ok := objval["podAffinity"]; ok { if s, ok := objval["podAffinity"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.PodAffinity = dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnumRef(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.PodAffinity: expected string") } } if _, ok := objval["podTolerations"]; ok { if s, ok := objval["podTolerations"].([]interface{}); ok { for _, o := range s { if objval, ok := o.(map[string]interface{}); ok { var rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations if _, ok := objval["effect"]; ok { if s, ok := objval["effect"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Effect = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Effect: expected string") } } if _, ok := objval["key"]; ok { if s, ok := objval["key"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Key = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Key: expected string") } } if _, ok := objval["operator"]; ok { if s, ok := objval["operator"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Operator = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Operator: expected string") } } if _, ok := objval["value"]; ok { if s, ok := objval["value"].(string); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Value = dcl.String(s) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations.Value: expected string") } } rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.PodTolerations = append(rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.PodTolerations, rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObjPodTolerations) } } } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.PodTolerations: expected []interface{}") } } if _, ok := objval["replicaCount"]; ok { if i, ok := objval["replicaCount"].(int64); ok { rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ReplicaCount = dcl.Int64(i) } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj.ReplicaCount: expected int64") } } m[k] = rPolicycontrollerPolicyControllerHubConfigDeploymentConfigsObj } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.DeploymentConfigs: expected map[string]interface{}") } } r.Policycontroller.PolicyControllerHubConfig.DeploymentConfigs = m } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.DeploymentConfigs: expected map[string]interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["exemptableNamespaces"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfig["exemptableNamespaces"].([]interface{}); ok { for _, ss := range s { if strval, ok := ss.(string); ok { r.Policycontroller.PolicyControllerHubConfig.ExemptableNamespaces = append(r.Policycontroller.PolicyControllerHubConfig.ExemptableNamespaces, strval) } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.ExemptableNamespaces: expected []interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["installSpec"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfig["installSpec"].(string); ok { r.Policycontroller.PolicyControllerHubConfig.InstallSpec = dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnumRef(s) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.InstallSpec: expected string") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["logDeniesEnabled"]; ok { if b, ok := rPolicycontrollerPolicyControllerHubConfig["logDeniesEnabled"].(bool); ok { r.Policycontroller.PolicyControllerHubConfig.LogDeniesEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.LogDeniesEnabled: expected bool") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["monitoring"]; ok { if rPolicycontrollerPolicyControllerHubConfigMonitoring, ok := rPolicycontrollerPolicyControllerHubConfig["monitoring"].(map[string]interface{}); ok { r.Policycontroller.PolicyControllerHubConfig.Monitoring = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring{} if _, ok := rPolicycontrollerPolicyControllerHubConfigMonitoring["backends"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigMonitoring["backends"].([]interface{}); ok { for _, ss := range s { if strval, ok := ss.(string); ok { r.Policycontroller.PolicyControllerHubConfig.Monitoring.Backends = append(r.Policycontroller.PolicyControllerHubConfig.Monitoring.Backends, dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum(strval)) } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.Monitoring.Backends: expected []interface{}") } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.Monitoring: expected map[string]interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["mutationEnabled"]; ok { if b, ok := rPolicycontrollerPolicyControllerHubConfig["mutationEnabled"].(bool); ok { r.Policycontroller.PolicyControllerHubConfig.MutationEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.MutationEnabled: expected bool") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["policyContent"]; ok { if rPolicycontrollerPolicyControllerHubConfigPolicyContent, ok := rPolicycontrollerPolicyControllerHubConfig["policyContent"].(map[string]interface{}); ok { r.Policycontroller.PolicyControllerHubConfig.PolicyContent = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent{} if _, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContent["bundles"]; ok { if rPolicycontrollerPolicyControllerHubConfigPolicyContentBundles, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContent["bundles"].(map[string]interface{}); ok { m := make(map[string]dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles) for k, v := range rPolicycontrollerPolicyControllerHubConfigPolicyContentBundles { if objval, ok := v.(map[string]interface{}); ok { var rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesObj dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles if _, ok := objval["exemptedNamespaces"]; ok { if s, ok := objval["exemptedNamespaces"].([]interface{}); ok { for _, ss := range s { if strval, ok := ss.(string); ok { rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesObj.ExemptedNamespaces = append(rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesObj.ExemptedNamespaces, strval) } } } else { return nil, fmt.Errorf("rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesObj.ExemptedNamespaces: expected []interface{}") } } m[k] = rPolicycontrollerPolicyControllerHubConfigPolicyContentBundlesObj } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.PolicyContent.Bundles: expected map[string]interface{}") } } r.Policycontroller.PolicyControllerHubConfig.PolicyContent.Bundles = m } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.PolicyContent.Bundles: expected map[string]interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContent["templateLibrary"]; ok { if rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContent["templateLibrary"].(map[string]interface{}); ok { r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary = &dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary{} if _, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary["installation"]; ok { if s, ok := rPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary["installation"].(string); ok { r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary.Installation = dclService.FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnumRef(s) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary.Installation: expected string") } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.PolicyContent.TemplateLibrary: expected map[string]interface{}") } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.PolicyContent: expected map[string]interface{}") } } if _, ok := rPolicycontrollerPolicyControllerHubConfig["referentialRulesEnabled"]; ok { if b, ok := rPolicycontrollerPolicyControllerHubConfig["referentialRulesEnabled"].(bool); ok { r.Policycontroller.PolicyControllerHubConfig.ReferentialRulesEnabled = dcl.Bool(b) } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig.ReferentialRulesEnabled: expected bool") } } } else { return nil, fmt.Errorf("r.Policycontroller.PolicyControllerHubConfig: expected map[string]interface{}") } } if _, ok := rPolicycontroller["version"]; ok { if s, ok := rPolicycontroller["version"].(string); ok { r.Policycontroller.Version = dcl.String(s) } else { return nil, fmt.Errorf("r.Policycontroller.Version: expected string") } } } else { return nil, fmt.Errorf("r.Policycontroller: expected map[string]interface{}") } } if _, ok := u.Object["project"]; ok { if s, ok := u.Object["project"].(string); ok { r.Project = dcl.String(s) } else { return nil, fmt.Errorf("r.Project: expected string") } } return r, nil } func GetFeatureMembership(ctx context.Context, config *dcl.Config, u *unstructured.Resource) (*unstructured.Resource, error) { c := dclService.NewClient(config) r, err := UnstructuredToFeatureMembership(u) if err != nil { return nil, err } r, err = c.GetFeatureMembership(ctx, r) if err != nil { return nil, err } return FeatureMembershipToUnstructured(r), nil } func ListFeatureMembership(ctx context.Context, config *dcl.Config, project string, location string, feature string) ([]*unstructured.Resource, error) { c := dclService.NewClient(config) l, err := c.ListFeatureMembership(ctx, project, location, feature) if err != nil { return nil, err } var resources []*unstructured.Resource for { for _, r := range l.Items { resources = append(resources, FeatureMembershipToUnstructured(r)) } if !l.HasNext() { break } if err := l.Next(ctx, c); err != nil { return nil, err } } return resources, nil } func ApplyFeatureMembership(ctx context.Context, config *dcl.Config, u *unstructured.Resource, opts ...dcl.ApplyOption) (*unstructured.Resource, error) { c := dclService.NewClient(config) r, err := UnstructuredToFeatureMembership(u) if err != nil { return nil, err } if ush := unstructured.FetchStateHint(opts); ush != nil { sh, err := UnstructuredToFeatureMembership(ush) if err != nil { return nil, err } opts = append(opts, dcl.WithStateHint(sh)) } r, err = c.ApplyFeatureMembership(ctx, r, opts...) if err != nil { return nil, err } return FeatureMembershipToUnstructured(r), nil } func FeatureMembershipHasDiff(ctx context.Context, config *dcl.Config, u *unstructured.Resource, opts ...dcl.ApplyOption) (bool, error) { c := dclService.NewClient(config) r, err := UnstructuredToFeatureMembership(u) if err != nil { return false, err } if ush := unstructured.FetchStateHint(opts); ush != nil { sh, err := UnstructuredToFeatureMembership(ush) if err != nil { return false, err } opts = append(opts, dcl.WithStateHint(sh)) } opts = append(opts, dcl.WithLifecycleParam(dcl.BlockDestruction), dcl.WithLifecycleParam(dcl.BlockCreation), dcl.WithLifecycleParam(dcl.BlockModification)) _, err = c.ApplyFeatureMembership(ctx, r, opts...) if err != nil { if _, ok := err.(dcl.ApplyInfeasibleError); ok { return true, nil } return false, err } return false, nil } func DeleteFeatureMembership(ctx context.Context, config *dcl.Config, u *unstructured.Resource) error { c := dclService.NewClient(config) r, err := UnstructuredToFeatureMembership(u) if err != nil { return err } return c.DeleteFeatureMembership(ctx, r) } func FeatureMembershipID(u *unstructured.Resource) (string, error) { r, err := UnstructuredToFeatureMembership(u) if err != nil { return "", err } return r.ID() } func (r *FeatureMembership) STV() unstructured.ServiceTypeVersion { return unstructured.ServiceTypeVersion{ "gkehub", "FeatureMembership", "ga", } } func (r *FeatureMembership) SetPolicyMember(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, member *unstructured.Resource) (*unstructured.Resource, error) { return nil, unstructured.ErrNoSuchMethod } func (r *FeatureMembership) GetPolicyMember(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, role, member string) (*unstructured.Resource, error) { return nil, unstructured.ErrNoSuchMethod } func (r *FeatureMembership) DeletePolicyMember(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, member *unstructured.Resource) error { return unstructured.ErrNoSuchMethod } func (r *FeatureMembership) SetPolicy(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, policy *unstructured.Resource) (*unstructured.Resource, error) { return nil, unstructured.ErrNoSuchMethod } func (r *FeatureMembership) SetPolicyWithEtag(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, policy *unstructured.Resource) (*unstructured.Resource, error) { return nil, unstructured.ErrNoSuchMethod } func (r *FeatureMembership) GetPolicy(ctx context.Context, config *dcl.Config, resource *unstructured.Resource) (*unstructured.Resource, error) { return nil, unstructured.ErrNoSuchMethod } func (r *FeatureMembership) Get(ctx context.Context, config *dcl.Config, resource *unstructured.Resource) (*unstructured.Resource, error) { return GetFeatureMembership(ctx, config, resource) } func (r *FeatureMembership) Apply(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, opts ...dcl.ApplyOption) (*unstructured.Resource, error) { return ApplyFeatureMembership(ctx, config, resource, opts...) } func (r *FeatureMembership) HasDiff(ctx context.Context, config *dcl.Config, resource *unstructured.Resource, opts ...dcl.ApplyOption) (bool, error) { return FeatureMembershipHasDiff(ctx, config, resource, opts...) } func (r *FeatureMembership) Delete(ctx context.Context, config *dcl.Config, resource *unstructured.Resource) error { return DeleteFeatureMembership(ctx, config, resource) } func (r *FeatureMembership) ID(resource *unstructured.Resource) (string, error) { return FeatureMembershipID(resource) } func init() { unstructured.Register(&FeatureMembership{}) }