services/google/gkehub/beta/feature_membership.go (1,169 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 beta
import (
"context"
"crypto/sha256"
"encoding/json"
"fmt"
"time"
"github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl"
)
type FeatureMembership struct {
Mesh *FeatureMembershipMesh `json:"mesh"`
Configmanagement *FeatureMembershipConfigmanagement `json:"configmanagement"`
Policycontroller *FeatureMembershipPolicycontroller `json:"policycontroller"`
Project *string `json:"project"`
Location *string `json:"location"`
Feature *string `json:"feature"`
Membership *string `json:"membership"`
MembershipLocation *string `json:"membershipLocation"`
}
func (r *FeatureMembership) String() string {
return dcl.SprintResource(r)
}
// The enum FeatureMembershipMeshManagementEnum.
type FeatureMembershipMeshManagementEnum string
// FeatureMembershipMeshManagementEnumRef returns a *FeatureMembershipMeshManagementEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipMeshManagementEnumRef(s string) *FeatureMembershipMeshManagementEnum {
v := FeatureMembershipMeshManagementEnum(s)
return &v
}
func (v FeatureMembershipMeshManagementEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"MANAGEMENT_UNSPECIFIED", "MANAGEMENT_AUTOMATIC", "MANAGEMENT_MANUAL"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipMeshManagementEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipMeshControlPlaneEnum.
type FeatureMembershipMeshControlPlaneEnum string
// FeatureMembershipMeshControlPlaneEnumRef returns a *FeatureMembershipMeshControlPlaneEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipMeshControlPlaneEnumRef(s string) *FeatureMembershipMeshControlPlaneEnum {
v := FeatureMembershipMeshControlPlaneEnum(s)
return &v
}
func (v FeatureMembershipMeshControlPlaneEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", "AUTOMATIC", "MANUAL"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipMeshControlPlaneEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum.
type FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum string
// FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnumRef returns a *FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnumRef(s string) *FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum {
v := FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum(s)
return &v
}
func (v FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"MONITORING_BACKEND_UNSPECIFIED", "PROMETHEUS", "CLOUD_MONITORING"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipConfigmanagementManagementEnum.
type FeatureMembershipConfigmanagementManagementEnum string
// FeatureMembershipConfigmanagementManagementEnumRef returns a *FeatureMembershipConfigmanagementManagementEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipConfigmanagementManagementEnumRef(s string) *FeatureMembershipConfigmanagementManagementEnum {
v := FeatureMembershipConfigmanagementManagementEnum(s)
return &v
}
func (v FeatureMembershipConfigmanagementManagementEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"MANAGEMENT_UNSPECIFIED", "MANAGEMENT_AUTOMATIC", "MANAGEMENT_MANUAL"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipConfigmanagementManagementEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum.
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum string
// FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnumRef returns a *FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnumRef(s string) *FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum {
v := FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum(s)
return &v
}
func (v FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"INSTALL_SPEC_UNSPECIFIED", "INSTALL_SPEC_NOT_INSTALLED", "INSTALL_SPEC_ENABLED", "INSTALL_SPEC_SUSPENDED", "INSTALL_SPEC_DETACHED"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum.
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum string
// FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnumRef returns a *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnumRef(s string) *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum {
v := FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum(s)
return &v
}
func (v FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"MONITORING_BACKEND_UNSPECIFIED", "PROMETHEUS", "CLOUD_MONITORING"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum.
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum string
// FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnumRef returns a *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnumRef(s string) *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum {
v := FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum(s)
return &v
}
func (v FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"INSTALLATION_UNSPECIFIED", "NOT_INSTALLED", "ALL"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum",
Value: string(v),
Valid: []string{},
}
}
// The enum FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum.
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum string
// FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnumRef returns a *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum with the value of string s
// If the empty string is provided, nil is returned.
func FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnumRef(s string) *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum {
v := FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum(s)
return &v
}
func (v FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum) Validate() error {
if string(v) == "" {
// Empty enum is okay.
return nil
}
for _, s := range []string{"AFFINITY_UNSPECIFIED", "NO_AFFINITY", "ANTI_AFFINITY"} {
if string(v) == s {
return nil
}
}
return &dcl.EnumInvalidError{
Enum: "FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum",
Value: string(v),
Valid: []string{},
}
}
type FeatureMembershipMesh struct {
empty bool `json:"-"`
Management *FeatureMembershipMeshManagementEnum `json:"management"`
ControlPlane *FeatureMembershipMeshControlPlaneEnum `json:"controlPlane"`
}
type jsonFeatureMembershipMesh FeatureMembershipMesh
func (r *FeatureMembershipMesh) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipMesh
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipMesh
} else {
r.Management = res.Management
r.ControlPlane = res.ControlPlane
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipMesh is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipMesh *FeatureMembershipMesh = &FeatureMembershipMesh{empty: true}
func (r *FeatureMembershipMesh) Empty() bool {
return r.empty
}
func (r *FeatureMembershipMesh) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipMesh) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagement struct {
empty bool `json:"-"`
ConfigSync *FeatureMembershipConfigmanagementConfigSync `json:"configSync"`
PolicyController *FeatureMembershipConfigmanagementPolicyController `json:"policyController"`
Binauthz *FeatureMembershipConfigmanagementBinauthz `json:"binauthz"`
HierarchyController *FeatureMembershipConfigmanagementHierarchyController `json:"hierarchyController"`
Version *string `json:"version"`
Management *FeatureMembershipConfigmanagementManagementEnum `json:"management"`
}
type jsonFeatureMembershipConfigmanagement FeatureMembershipConfigmanagement
func (r *FeatureMembershipConfigmanagement) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagement
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagement
} else {
r.ConfigSync = res.ConfigSync
r.PolicyController = res.PolicyController
r.Binauthz = res.Binauthz
r.HierarchyController = res.HierarchyController
r.Version = res.Version
r.Management = res.Management
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagement is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagement *FeatureMembershipConfigmanagement = &FeatureMembershipConfigmanagement{empty: true}
func (r *FeatureMembershipConfigmanagement) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagement) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagement) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementConfigSync struct {
empty bool `json:"-"`
DeploymentOverrides []FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides `json:"deploymentOverrides"`
Git *FeatureMembershipConfigmanagementConfigSyncGit `json:"git"`
SourceFormat *string `json:"sourceFormat"`
Enabled *bool `json:"enabled"`
StopSyncing *bool `json:"stopSyncing"`
PreventDrift *bool `json:"preventDrift"`
MetricsGcpServiceAccountEmail *string `json:"metricsGcpServiceAccountEmail"`
Oci *FeatureMembershipConfigmanagementConfigSyncOci `json:"oci"`
}
type jsonFeatureMembershipConfigmanagementConfigSync FeatureMembershipConfigmanagementConfigSync
func (r *FeatureMembershipConfigmanagementConfigSync) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementConfigSync
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementConfigSync
} else {
r.DeploymentOverrides = res.DeploymentOverrides
r.Git = res.Git
r.SourceFormat = res.SourceFormat
r.Enabled = res.Enabled
r.StopSyncing = res.StopSyncing
r.PreventDrift = res.PreventDrift
r.MetricsGcpServiceAccountEmail = res.MetricsGcpServiceAccountEmail
r.Oci = res.Oci
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementConfigSync is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementConfigSync *FeatureMembershipConfigmanagementConfigSync = &FeatureMembershipConfigmanagementConfigSync{empty: true}
func (r *FeatureMembershipConfigmanagementConfigSync) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementConfigSync) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementConfigSync) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides struct {
empty bool `json:"-"`
DeploymentName *string `json:"deploymentName"`
DeploymentNamespace *string `json:"deploymentNamespace"`
Containers []FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers `json:"containers"`
}
type jsonFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides
} else {
r.DeploymentName = res.DeploymentName
r.DeploymentNamespace = res.DeploymentNamespace
r.Containers = res.Containers
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementConfigSyncDeploymentOverrides *FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides = &FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides{empty: true}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverrides) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers struct {
empty bool `json:"-"`
ContainerName *string `json:"containerName"`
CpuRequest *string `json:"cpuRequest"`
MemoryRequest *string `json:"memoryRequest"`
CpuLimit *string `json:"cpuLimit"`
MemoryLimit *string `json:"memoryLimit"`
}
type jsonFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers
} else {
r.ContainerName = res.ContainerName
r.CpuRequest = res.CpuRequest
r.MemoryRequest = res.MemoryRequest
r.CpuLimit = res.CpuLimit
r.MemoryLimit = res.MemoryLimit
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers *FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers = &FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers{empty: true}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementConfigSyncDeploymentOverridesContainers) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementConfigSyncGit struct {
empty bool `json:"-"`
SyncRepo *string `json:"syncRepo"`
SyncBranch *string `json:"syncBranch"`
PolicyDir *string `json:"policyDir"`
SyncWaitSecs *string `json:"syncWaitSecs"`
SyncRev *string `json:"syncRev"`
SecretType *string `json:"secretType"`
HttpsProxy *string `json:"httpsProxy"`
GcpServiceAccountEmail *string `json:"gcpServiceAccountEmail"`
}
type jsonFeatureMembershipConfigmanagementConfigSyncGit FeatureMembershipConfigmanagementConfigSyncGit
func (r *FeatureMembershipConfigmanagementConfigSyncGit) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementConfigSyncGit
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementConfigSyncGit
} else {
r.SyncRepo = res.SyncRepo
r.SyncBranch = res.SyncBranch
r.PolicyDir = res.PolicyDir
r.SyncWaitSecs = res.SyncWaitSecs
r.SyncRev = res.SyncRev
r.SecretType = res.SecretType
r.HttpsProxy = res.HttpsProxy
r.GcpServiceAccountEmail = res.GcpServiceAccountEmail
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementConfigSyncGit is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementConfigSyncGit *FeatureMembershipConfigmanagementConfigSyncGit = &FeatureMembershipConfigmanagementConfigSyncGit{empty: true}
func (r *FeatureMembershipConfigmanagementConfigSyncGit) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementConfigSyncGit) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementConfigSyncGit) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementConfigSyncOci struct {
empty bool `json:"-"`
SyncRepo *string `json:"syncRepo"`
PolicyDir *string `json:"policyDir"`
SyncWaitSecs *string `json:"syncWaitSecs"`
SecretType *string `json:"secretType"`
GcpServiceAccountEmail *string `json:"gcpServiceAccountEmail"`
}
type jsonFeatureMembershipConfigmanagementConfigSyncOci FeatureMembershipConfigmanagementConfigSyncOci
func (r *FeatureMembershipConfigmanagementConfigSyncOci) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementConfigSyncOci
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementConfigSyncOci
} else {
r.SyncRepo = res.SyncRepo
r.PolicyDir = res.PolicyDir
r.SyncWaitSecs = res.SyncWaitSecs
r.SecretType = res.SecretType
r.GcpServiceAccountEmail = res.GcpServiceAccountEmail
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementConfigSyncOci is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementConfigSyncOci *FeatureMembershipConfigmanagementConfigSyncOci = &FeatureMembershipConfigmanagementConfigSyncOci{empty: true}
func (r *FeatureMembershipConfigmanagementConfigSyncOci) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementConfigSyncOci) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementConfigSyncOci) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementPolicyController struct {
empty bool `json:"-"`
Enabled *bool `json:"enabled"`
ExemptableNamespaces []string `json:"exemptableNamespaces"`
ReferentialRulesEnabled *bool `json:"referentialRulesEnabled"`
LogDeniesEnabled *bool `json:"logDeniesEnabled"`
MutationEnabled *bool `json:"mutationEnabled"`
Monitoring *FeatureMembershipConfigmanagementPolicyControllerMonitoring `json:"monitoring"`
TemplateLibraryInstalled *bool `json:"templateLibraryInstalled"`
AuditIntervalSeconds *string `json:"auditIntervalSeconds"`
}
type jsonFeatureMembershipConfigmanagementPolicyController FeatureMembershipConfigmanagementPolicyController
func (r *FeatureMembershipConfigmanagementPolicyController) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementPolicyController
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementPolicyController
} else {
r.Enabled = res.Enabled
r.ExemptableNamespaces = res.ExemptableNamespaces
r.ReferentialRulesEnabled = res.ReferentialRulesEnabled
r.LogDeniesEnabled = res.LogDeniesEnabled
r.MutationEnabled = res.MutationEnabled
r.Monitoring = res.Monitoring
r.TemplateLibraryInstalled = res.TemplateLibraryInstalled
r.AuditIntervalSeconds = res.AuditIntervalSeconds
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementPolicyController is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementPolicyController *FeatureMembershipConfigmanagementPolicyController = &FeatureMembershipConfigmanagementPolicyController{empty: true}
func (r *FeatureMembershipConfigmanagementPolicyController) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementPolicyController) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementPolicyController) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementPolicyControllerMonitoring struct {
empty bool `json:"-"`
Backends []FeatureMembershipConfigmanagementPolicyControllerMonitoringBackendsEnum `json:"backends"`
}
type jsonFeatureMembershipConfigmanagementPolicyControllerMonitoring FeatureMembershipConfigmanagementPolicyControllerMonitoring
func (r *FeatureMembershipConfigmanagementPolicyControllerMonitoring) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementPolicyControllerMonitoring
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementPolicyControllerMonitoring
} else {
r.Backends = res.Backends
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementPolicyControllerMonitoring is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementPolicyControllerMonitoring *FeatureMembershipConfigmanagementPolicyControllerMonitoring = &FeatureMembershipConfigmanagementPolicyControllerMonitoring{empty: true}
func (r *FeatureMembershipConfigmanagementPolicyControllerMonitoring) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementPolicyControllerMonitoring) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementPolicyControllerMonitoring) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementBinauthz struct {
empty bool `json:"-"`
Enabled *bool `json:"enabled"`
}
type jsonFeatureMembershipConfigmanagementBinauthz FeatureMembershipConfigmanagementBinauthz
func (r *FeatureMembershipConfigmanagementBinauthz) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementBinauthz
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementBinauthz
} else {
r.Enabled = res.Enabled
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementBinauthz is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementBinauthz *FeatureMembershipConfigmanagementBinauthz = &FeatureMembershipConfigmanagementBinauthz{empty: true}
func (r *FeatureMembershipConfigmanagementBinauthz) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementBinauthz) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementBinauthz) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipConfigmanagementHierarchyController struct {
empty bool `json:"-"`
Enabled *bool `json:"enabled"`
EnablePodTreeLabels *bool `json:"enablePodTreeLabels"`
EnableHierarchicalResourceQuota *bool `json:"enableHierarchicalResourceQuota"`
}
type jsonFeatureMembershipConfigmanagementHierarchyController FeatureMembershipConfigmanagementHierarchyController
func (r *FeatureMembershipConfigmanagementHierarchyController) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipConfigmanagementHierarchyController
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipConfigmanagementHierarchyController
} else {
r.Enabled = res.Enabled
r.EnablePodTreeLabels = res.EnablePodTreeLabels
r.EnableHierarchicalResourceQuota = res.EnableHierarchicalResourceQuota
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipConfigmanagementHierarchyController is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipConfigmanagementHierarchyController *FeatureMembershipConfigmanagementHierarchyController = &FeatureMembershipConfigmanagementHierarchyController{empty: true}
func (r *FeatureMembershipConfigmanagementHierarchyController) Empty() bool {
return r.empty
}
func (r *FeatureMembershipConfigmanagementHierarchyController) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipConfigmanagementHierarchyController) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontroller struct {
empty bool `json:"-"`
Version *string `json:"version"`
PolicyControllerHubConfig *FeatureMembershipPolicycontrollerPolicyControllerHubConfig `json:"policyControllerHubConfig"`
}
type jsonFeatureMembershipPolicycontroller FeatureMembershipPolicycontroller
func (r *FeatureMembershipPolicycontroller) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontroller
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontroller
} else {
r.Version = res.Version
r.PolicyControllerHubConfig = res.PolicyControllerHubConfig
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontroller is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontroller *FeatureMembershipPolicycontroller = &FeatureMembershipPolicycontroller{empty: true}
func (r *FeatureMembershipPolicycontroller) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontroller) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontroller) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfig struct {
empty bool `json:"-"`
InstallSpec *FeatureMembershipPolicycontrollerPolicyControllerHubConfigInstallSpecEnum `json:"installSpec"`
ExemptableNamespaces []string `json:"exemptableNamespaces"`
ReferentialRulesEnabled *bool `json:"referentialRulesEnabled"`
LogDeniesEnabled *bool `json:"logDeniesEnabled"`
MutationEnabled *bool `json:"mutationEnabled"`
Monitoring *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring `json:"monitoring"`
AuditIntervalSeconds *int64 `json:"auditIntervalSeconds"`
ConstraintViolationLimit *int64 `json:"constraintViolationLimit"`
PolicyContent *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent `json:"policyContent"`
DeploymentConfigs map[string]FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs `json:"deploymentConfigs"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfig FeatureMembershipPolicycontrollerPolicyControllerHubConfig
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfig) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfig
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfig
} else {
r.InstallSpec = res.InstallSpec
r.ExemptableNamespaces = res.ExemptableNamespaces
r.ReferentialRulesEnabled = res.ReferentialRulesEnabled
r.LogDeniesEnabled = res.LogDeniesEnabled
r.MutationEnabled = res.MutationEnabled
r.Monitoring = res.Monitoring
r.AuditIntervalSeconds = res.AuditIntervalSeconds
r.ConstraintViolationLimit = res.ConstraintViolationLimit
r.PolicyContent = res.PolicyContent
r.DeploymentConfigs = res.DeploymentConfigs
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfig is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfig *FeatureMembershipPolicycontrollerPolicyControllerHubConfig = &FeatureMembershipPolicycontrollerPolicyControllerHubConfig{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfig) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfig) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfig) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring struct {
empty bool `json:"-"`
Backends []FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoringBackendsEnum `json:"backends"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring
} else {
r.Backends = res.Backends
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigMonitoring) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent struct {
empty bool `json:"-"`
TemplateLibrary *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary `json:"templateLibrary"`
Bundles map[string]FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles `json:"bundles"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent
} else {
r.TemplateLibrary = res.TemplateLibrary
r.Bundles = res.Bundles
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContent) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary struct {
empty bool `json:"-"`
Installation *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibraryInstallationEnum `json:"installation"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary
} else {
r.Installation = res.Installation
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentTemplateLibrary) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles struct {
empty bool `json:"-"`
ExemptedNamespaces []string `json:"exemptedNamespaces"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles
} else {
r.ExemptedNamespaces = res.ExemptedNamespaces
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigPolicyContentBundles) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs struct {
empty bool `json:"-"`
ReplicaCount *int64 `json:"replicaCount"`
ContainerResources *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources `json:"containerResources"`
PodAffinity *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodAffinityEnum `json:"podAffinity"`
PodTolerations []FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations `json:"podTolerations"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs
} else {
r.ReplicaCount = res.ReplicaCount
r.ContainerResources = res.ContainerResources
r.PodAffinity = res.PodAffinity
r.PodTolerations = res.PodTolerations
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigs) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources struct {
empty bool `json:"-"`
Limits *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits `json:"limits"`
Requests *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests `json:"requests"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources
} else {
r.Limits = res.Limits
r.Requests = res.Requests
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResources) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits struct {
empty bool `json:"-"`
Memory *string `json:"memory"`
Cpu *string `json:"cpu"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits
} else {
r.Memory = res.Memory
r.Cpu = res.Cpu
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesLimits) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests struct {
empty bool `json:"-"`
Memory *string `json:"memory"`
Cpu *string `json:"cpu"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests
} else {
r.Memory = res.Memory
r.Cpu = res.Cpu
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsContainerResourcesRequests) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
type FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations struct {
empty bool `json:"-"`
Key *string `json:"key"`
Operator *string `json:"operator"`
Value *string `json:"value"`
Effect *string `json:"effect"`
}
type jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations) UnmarshalJSON(data []byte) error {
var res jsonFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations
if err := json.Unmarshal(data, &res); err != nil {
return err
}
var m map[string]interface{}
json.Unmarshal(data, &m)
if len(m) == 0 {
*r = *EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations
} else {
r.Key = res.Key
r.Operator = res.Operator
r.Value = res.Value
r.Effect = res.Effect
}
return nil
}
// This object is used to assert a desired state where this FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations is
// empty. Go lacks global const objects, but this object should be treated
// as one. Modifying this object will have undesirable results.
var EmptyFeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations = &FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations{empty: true}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations) Empty() bool {
return r.empty
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations) String() string {
return dcl.SprintResource(r)
}
func (r *FeatureMembershipPolicycontrollerPolicyControllerHubConfigDeploymentConfigsPodTolerations) HashCode() string {
// Placeholder for a more complex hash method that handles ordering, etc
// Hash resource body for easy comparison later
hash := sha256.Sum256([]byte(r.String()))
return fmt.Sprintf("%x", hash)
}
// Describe returns a simple description of this resource to ensure that automated tools
// can identify it.
func (r *FeatureMembership) Describe() dcl.ServiceTypeVersion {
return dcl.ServiceTypeVersion{
Service: "gke_hub",
Type: "FeatureMembership",
Version: "beta",
}
}
func (r *FeatureMembership) ID() (string, error) {
if err := extractFeatureMembershipFields(r); err != nil {
return "", err
}
nr := r.urlNormalized()
params := map[string]interface{}{
"mesh": dcl.ValueOrEmptyString(nr.Mesh),
"configmanagement": dcl.ValueOrEmptyString(nr.Configmanagement),
"policycontroller": dcl.ValueOrEmptyString(nr.Policycontroller),
"project": dcl.ValueOrEmptyString(nr.Project),
"location": dcl.ValueOrEmptyString(nr.Location),
"feature": dcl.ValueOrEmptyString(nr.Feature),
"membership": dcl.ValueOrEmptyString(nr.Membership),
"membership_location": dcl.ValueOrEmptyString(nr.MembershipLocation),
}
return dcl.Nprintf("projects/{{project}}/locations/{{location}}/features/{{feature}}/memberships/{{membership}}", params), nil
}
const FeatureMembershipMaxPage = -1
type FeatureMembershipList struct {
Items []*FeatureMembership
nextToken string
resource *FeatureMembership
}
func (c *Client) DeleteFeatureMembership(ctx context.Context, r *FeatureMembership) error {
ctx = dcl.ContextWithRequestID(ctx)
c = NewClient(c.Config.Clone(dcl.WithCodeRetryability(map[int]dcl.Retryability{
409: dcl.Retryability{
Retryable: true,
Pattern: "",
Timeout: 60000000000,
},
})))
ctx, cancel := context.WithTimeout(ctx, c.Config.TimeoutOr(0*time.Second))
defer cancel()
if r == nil {
return fmt.Errorf("FeatureMembership resource is nil")
}
c.Config.Logger.InfoWithContext(ctx, "Deleting FeatureMembership...")
deleteOp := deleteFeatureMembershipOperation{}
return deleteOp.do(ctx, r, c)
}
// DeleteAllFeatureMembership deletes all resources that the filter functions returns true on.
func (c *Client) DeleteAllFeatureMembership(ctx context.Context, project, location, feature string, filter func(*FeatureMembership) bool) error {
listObj, err := c.ListFeatureMembership(ctx, project, location, feature)
if err != nil {
return err
}
err = c.deleteAllFeatureMembership(ctx, filter, listObj.Items)
if err != nil {
return err
}
for listObj.HasNext() {
err = listObj.Next(ctx, c)
if err != nil {
return nil
}
err = c.deleteAllFeatureMembership(ctx, filter, listObj.Items)
if err != nil {
return err
}
}
return nil
}
func (c *Client) ApplyFeatureMembership(ctx context.Context, rawDesired *FeatureMembership, opts ...dcl.ApplyOption) (*FeatureMembership, error) {
ctx, cancel := context.WithTimeout(ctx, c.Config.TimeoutOr(0*time.Second))
defer cancel()
ctx = dcl.ContextWithRequestID(ctx)
c = NewClient(c.Config.Clone(dcl.WithCodeRetryability(map[int]dcl.Retryability{
409: dcl.Retryability{
Retryable: true,
Pattern: "",
Timeout: 60000000000,
},
})))
var resultNewState *FeatureMembership
err := dcl.Do(ctx, func(ctx context.Context) (*dcl.RetryDetails, error) {
newState, err := applyFeatureMembershipHelper(c, ctx, rawDesired, opts...)
resultNewState = newState
if err != nil {
// If the error is 409, there is conflict in resource update.
// Here we want to apply changes based on latest state.
if dcl.IsConflictError(err) {
return &dcl.RetryDetails{}, dcl.OperationNotDone{Err: err}
}
return nil, err
}
return nil, nil
}, c.Config.RetryProvider)
return resultNewState, err
}
func applyFeatureMembershipHelper(c *Client, ctx context.Context, rawDesired *FeatureMembership, opts ...dcl.ApplyOption) (*FeatureMembership, error) {
c.Config.Logger.InfoWithContext(ctx, "Beginning ApplyFeatureMembership...")
c.Config.Logger.InfoWithContextf(ctx, "User specified desired state: %v", rawDesired)
// 1.1: Validation of user-specified fields in desired state.
if err := rawDesired.validate(); err != nil {
return nil, err
}
if err := extractFeatureMembershipFields(rawDesired); err != nil {
return nil, err
}
initial, desired, fieldDiffs, err := c.featureMembershipDiffsForRawDesired(ctx, rawDesired, opts...)
if err != nil {
return nil, fmt.Errorf("failed to create a diff: %w", err)
}
diffs, err := convertFieldDiffsToFeatureMembershipDiffs(c.Config, fieldDiffs, opts)
if err != nil {
return nil, err
}
// TODO(magic-modules-eng): 2.2 Feasibility check (all updates are feasible so far).
// 2.3: Lifecycle Directive Check
var create bool
lp := dcl.FetchLifecycleParams(opts)
if initial == nil {
if dcl.HasLifecycleParam(lp, dcl.BlockCreation) {
return nil, dcl.ApplyInfeasibleError{Message: fmt.Sprintf("Creation blocked by lifecycle params: %#v.", desired)}
}
create = true
} else if dcl.HasLifecycleParam(lp, dcl.BlockAcquire) {
return nil, dcl.ApplyInfeasibleError{
Message: fmt.Sprintf("Resource already exists - apply blocked by lifecycle params: %#v.", initial),
}
} else {
for _, d := range diffs {
if d.RequiresRecreate {
return nil, dcl.ApplyInfeasibleError{
Message: fmt.Sprintf("infeasible update: (%v) would require recreation", d),
}
}
if dcl.HasLifecycleParam(lp, dcl.BlockModification) {
return nil, dcl.ApplyInfeasibleError{Message: fmt.Sprintf("Modification blocked, diff (%v) unresolvable.", d)}
}
}
}
// 2.4 Imperative Request Planning
var ops []featureMembershipApiOperation
if create {
ops = append(ops, &createFeatureMembershipOperation{})
} else {
for _, d := range diffs {
ops = append(ops, d.UpdateOp)
}
}
c.Config.Logger.InfoWithContextf(ctx, "Created plan: %#v", ops)
// 2.5 Request Actuation
for _, op := range ops {
c.Config.Logger.InfoWithContextf(ctx, "Performing operation %T %+v", op, op)
if err := op.do(ctx, desired, c); err != nil {
c.Config.Logger.InfoWithContextf(ctx, "Failed operation %T %+v: %v", op, op, err)
return nil, err
}
c.Config.Logger.InfoWithContextf(ctx, "Finished operation %T %+v", op, op)
}
return applyFeatureMembershipDiff(c, ctx, desired, rawDesired, ops, opts...)
}
func applyFeatureMembershipDiff(c *Client, ctx context.Context, desired *FeatureMembership, rawDesired *FeatureMembership, ops []featureMembershipApiOperation, opts ...dcl.ApplyOption) (*FeatureMembership, error) {
// 3.1, 3.2a Retrieval of raw new state & canonicalization with desired state
c.Config.Logger.InfoWithContext(ctx, "Retrieving raw new state...")
rawNew, err := c.GetFeatureMembership(ctx, desired)
if err != nil {
return nil, err
}
// Get additional values from the first response.
// These values should be merged into the newState above.
if len(ops) > 0 {
lastOp := ops[len(ops)-1]
if o, ok := lastOp.(*createFeatureMembershipOperation); ok {
if r, hasR := o.FirstResponse(); hasR {
c.Config.Logger.InfoWithContext(ctx, "Retrieving raw new state from operation...")
fullResp, err := unmarshalMapFeatureMembership(r, c, rawDesired)
if err != nil {
return nil, err
}
rawNew, err = canonicalizeFeatureMembershipNewState(c, rawNew, fullResp)
if err != nil {
return nil, err
}
}
}
}
c.Config.Logger.InfoWithContextf(ctx, "Canonicalizing with raw desired state: %v", rawDesired)
// 3.2b Canonicalization of raw new state using raw desired state
newState, err := canonicalizeFeatureMembershipNewState(c, rawNew, rawDesired)
if err != nil {
return rawNew, err
}
c.Config.Logger.InfoWithContextf(ctx, "Created canonical new state: %v", newState)
// 3.3 Comparison of the new state and raw desired state.
// TODO(magic-modules-eng): EVENTUALLY_CONSISTENT_UPDATE
newDesired, err := canonicalizeFeatureMembershipDesiredState(rawDesired, newState)
if err != nil {
return newState, err
}
if err := postReadExtractFeatureMembershipFields(newState); err != nil {
return newState, err
}
// Need to ensure any transformations made here match acceptably in differ.
if err := postReadExtractFeatureMembershipFields(newDesired); err != nil {
return newState, err
}
c.Config.Logger.InfoWithContextf(ctx, "Diffing using canonicalized desired state: %v", newDesired)
newDiffs, err := diffFeatureMembership(c, newDesired, newState)
if err != nil {
return newState, err
}
if len(newDiffs) == 0 {
c.Config.Logger.InfoWithContext(ctx, "No diffs found. Apply was successful.")
} else {
c.Config.Logger.InfoWithContextf(ctx, "Found diffs: %v", newDiffs)
diffMessages := make([]string, len(newDiffs))
for i, d := range newDiffs {
diffMessages[i] = fmt.Sprintf("%v", d)
}
return newState, dcl.DiffAfterApplyError{Diffs: diffMessages}
}
c.Config.Logger.InfoWithContext(ctx, "Done Apply.")
return newState, nil
}