<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="gkehub_v2.html">GKE Hub API</a> . <a href="gkehub_v2.projects.html">projects</a> . <a href="gkehub_v2.projects.locations.html">locations</a> . <a href="gkehub_v2.projects.locations.memberships.html">memberships</a> . <a href="gkehub_v2.projects.locations.memberships.features.html">features</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates membershipFeature under a given parent.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Removes a membershipFeature.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">========= MembershipFeature Services ========= Gets details of a membershipFeature.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists MembershipFeatures in a given project and location.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, allowMissing=None, body=None, requestId=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing MembershipFeature.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, featureId=None, requestId=None, x__xgafv=None)</code>
  <pre>Creates membershipFeature under a given parent.

Args:
  parent: string, Required. The name of parent where the MembershipFeature will be created. Specified in the format `projects/*/locations/*/memberships/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # MembershipFeature represents the settings and status of a Fleet Feature enabled on a single Fleet Membership.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was deleted.
  &quot;labels&quot;: { # GCP labels for this MembershipFeature.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifecycleState&quot;: { # LifecycleState describes the state of a MembershipFeature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the MembershipFeature. # Output only. Lifecycle information of the resource itself.
    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the Feature resource in the Hub API.
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)
  &quot;spec&quot;: { # FeatureSpec contains user input per-feature spec information. # Optional. Spec of this membershipFeature.
    &quot;cloudbuild&quot;: { # **Cloud Build**: Configurations for each Cloud Build enabled cluster. # Cloudbuild-specific FeatureSpec.
      &quot;securityPolicy&quot;: &quot;A String&quot;, # Whether it is allowed to run the privileged builds on the cluster or not.
      &quot;version&quot;: &quot;A String&quot;, # Version of the cloud build software on the cluster.
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management FeatureSpec.
      &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
        &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
      },
      &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
      &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
        &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
          { # Configuration for a deployment override.
            &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
              { # Configuration for a container override.
                &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
              },
            ],
            &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
            &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
          },
        ],
        &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
        &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
          &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
          &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
        &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
        &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
        &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
      },
      &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
        &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
        &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
        &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
      },
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
      &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
        &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
    },
    &quot;identityservice&quot;: { # **IdentityService**: Configuration for a single membership. # IdentityService FeatureSpec.
      &quot;authMethods&quot;: [ # A member may support multiple auth methods.
        { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
          &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
            &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
            &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
            &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
          },
          &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
            &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
          },
          &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
            &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
            },
            &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
              &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
              &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
            },
            &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
              &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
              },
            },
            &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
              &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
            },
          },
          &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
          &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
            &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
            &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
            &quot;enableAccessToken&quot;: True or False, # Enable access token.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
            &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
            &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
            &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
            &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
            &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
            &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
          },
          &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
          &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
            &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
            &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
            &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
              &quot;A String&quot;,
            ],
            &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
            &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
            &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
            &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
          },
        },
      ],
      &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
        &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
          &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
          &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
        },
        &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
      },
    },
    &quot;origin&quot;: { # Origin defines where this FeatureSpec originated from. # Whether this per-Feature spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Feature config (updated to USER implicitly) or setting to FLEET explicitly.
      &quot;type&quot;: &quot;A String&quot;, # Type specifies which type of origin is set.
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. # Policycontroller-specific FeatureSpec.
      &quot;policyControllerHubConfig&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;constraintViolationLimit&quot;: &quot;A String&quot;, # The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.
        &quot;deploymentConfigs&quot;: { # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
          &quot;a_key&quot;: { # Deployment-specific configuration.
            &quot;containerResources&quot;: { # ResourceRequirements describes the compute resource requirements. # Container resource requirements.
              &quot;limits&quot;: { # ResourceList contains container resource requirements. # Limits describes the maximum amount of compute resources allowed for use by the running container.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
              &quot;requests&quot;: { # ResourceList contains container resource requirements. # Requests describes the amount of compute resources reserved for the container by the kube-scheduler.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
            },
            &quot;podAffinity&quot;: &quot;A String&quot;, # Pod affinity configuration.
            &quot;podAntiAffinity&quot;: True or False, # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
            &quot;podTolerations&quot;: [ # Pod tolerations of node taints.
              { # Toleration of a node taint.
                &quot;effect&quot;: &quot;A String&quot;, # Matches a taint effect.
                &quot;key&quot;: &quot;A String&quot;, # Matches a taint key (not necessarily unique).
                &quot;operator&quot;: &quot;A String&quot;, # Matches a taint operator.
                &quot;value&quot;: &quot;A String&quot;, # Matches a taint value.
              },
            ],
            &quot;replicaCount&quot;: &quot;A String&quot;, # Pod replica count.
          },
        },
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;installSpec&quot;: &quot;A String&quot;, # The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enables the ability to mutate resources using Policy Controller.
        &quot;policyContent&quot;: { # PolicyContentSpec defines the user&#x27;s desired content configuration on the cluster. # Specifies the desired policy content on the cluster
          &quot;bundles&quot;: { # map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.
            &quot;a_key&quot;: { # BundleInstallSpec is the specification configuration for a single managed bundle.
              &quot;exemptedNamespaces&quot;: [ # the set of namespaces to be exempted from the bundle
                &quot;A String&quot;,
              ],
            },
          },
          &quot;templateLibrary&quot;: { # The config specifying which default library templates to install. # Configures the installation of the Template Library.
            &quot;installation&quot;: &quot;A String&quot;, # Configures the manner in which the template library is installed on the cluster.
          },
        },
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Version of Policy Controller installed.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: The membership-specific input for RBACRoleBindingActuation feature. # Rbacrolebindingactuation-specific FeatureSpec.
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: Spec for a single Membership for the servicemesh feature # ServiceMesh Feature Spec.
      &quot;configApi&quot;: &quot;A String&quot;, # Optional. Specifies the API that will be used for configuring the mesh workloads.
      &quot;controlPlane&quot;: &quot;A String&quot;, # Deprecated: use `management` instead Enables automatic control plane management.
      &quot;defaultChannel&quot;: &quot;A String&quot;, # Determines which release channel to use for default injection and service mesh APIs.
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Service Mesh management.
    },
    &quot;workloadcertificate&quot;: { # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate feature. # Workloadcertificate-specific FeatureSpec.
      &quot;certificateManagement&quot;: &quot;A String&quot;, # CertificateManagement specifies workload certificate management.
    },
  },
  &quot;state&quot;: { # FeatureState contains high-level state information and per-feature state information for this MembershipFeature. # Output only. State of the this membershipFeature.
    &quot;appdevexperience&quot;: { # State for App Dev Exp Feature. # Appdevexperience specific state.
      &quot;networkingInstallSucceeded&quot;: { # Status specifies state for the subcomponent. # Status of subcomponent that detects configured Service Mesh resources.
        &quot;code&quot;: &quot;A String&quot;, # Code specifies AppDevExperienceFeature&#x27;s subcomponent ready state.
        &quot;description&quot;: &quot;A String&quot;, # Description is populated if Code is Failed, explaining why it has failed.
      },
    },
    &quot;clusterupgrade&quot;: { # Per-membership state for this feature. # Cluster upgrade state.
      &quot;ignored&quot;: { # IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default. # Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel.
        &quot;ignoredTime&quot;: &quot;A String&quot;, # Time when the membership was first set to ignored.
        &quot;reason&quot;: &quot;A String&quot;, # Reason why the membership is ignored.
      },
      &quot;upgrades&quot;: [ # Actual upgrade state against desired.
        { # MembershipGKEUpgradeState is a GKEUpgrade and its state per-membership.
          &quot;status&quot;: { # UpgradeStatus provides status information for each upgrade. # Status of the upgrade.
            &quot;code&quot;: &quot;A String&quot;, # Status code of the upgrade.
            &quot;reason&quot;: &quot;A String&quot;, # Reason for this status.
            &quot;updateTime&quot;: &quot;A String&quot;, # Last timestamp the status was updated.
          },
          &quot;upgrade&quot;: { # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. # Which upgrade to track the state.
            &quot;name&quot;: &quot;A String&quot;, # Name of the upgrade, e.g., &quot;k8s_control_plane&quot;.
            &quot;version&quot;: &quot;A String&quot;, # Version of the upgrade, e.g., &quot;1.22.1-gke.100&quot;.
          },
        },
      ],
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management state
      &quot;binauthzState&quot;: { # State for Binauthz. # Output only. Binauthz status.
        &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
          &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
        },
        &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
      },
      &quot;clusterName&quot;: &quot;A String&quot;, # Output only. This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster&#x27;s fleet membership name.
      &quot;configSyncState&quot;: { # State information for ConfigSync. # Output only. Current sync status.
        &quot;clusterLevelStopSyncingState&quot;: &quot;A String&quot;, # Output only. Whether syncing resources to the cluster is stopped at the cluster level.
        &quot;crCount&quot;: 42, # Output only. The number of RootSync and RepoSync CRs in the cluster.
        &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster. # Output only. Information about the deployment of ConfigSync, including the version. of the various Pods deployed
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Deployment state of admission-webhook.
          &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Deployment state of otel-collector
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Deployment state of resource-group-controller-manager
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler.
          &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod.
        },
        &quot;errors&quot;: [ # Output only. Errors pertaining to the installation of Config Sync.
          { # Errors pertaining to the installation of Config Sync
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
          },
        ],
        &quot;reposyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the Reposync CRD
        &quot;rootsyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the RootSync CRD
        &quot;state&quot;: &quot;A String&quot;, # Output only. The state of CS This field summarizes the other fields in this message.
        &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster. # Output only. The state of ConfigSync&#x27;s process to sync configs to a cluster.
          &quot;code&quot;: &quot;A String&quot;, # Sync status code.
          &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
            { # An ACM created error representing a problem syncing configurations.
              &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
              &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
              &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
                { # Model for a config file in the git repo with an associated Sync error.
                  &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK. # Group/version/kind of the resource that is causing an error
                    &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
                    &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
                    &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
                  },
                  &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
                  &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
                  &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
                },
              ],
            },
          ],
          &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
          &quot;lastSync&quot;: &quot;A String&quot;, # Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo. The time format is specified in https://golang.org/pkg/time/#Time.String
          &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo.
          &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
          &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
        },
        &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods. # Output only. The version of ConfigSync deployed.
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Version of the deployed admission-webhook pod.
          &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Version of the deployed otel-collector pod
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Version of the deployed resource-group-controller-manager pod
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod.
          &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod.
        },
      },
      &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller. # Output only. Hierarchy Controller status.
        &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1).
          &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0).
        },
        &quot;version&quot;: { # Version for Hierarchy Controller. # The version for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension.
          &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC.
        },
      },
      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. The Kubernetes API server version of the cluster.
      &quot;membershipSpec&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Output only. Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state.
        &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
        },
        &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
        &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
          &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
            { # Configuration for a deployment override.
              &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
                { # Configuration for a container override.
                  &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                  &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                  &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                  &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                  &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
                },
              ],
              &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
              &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
            },
          ],
          &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
          &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
            &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
            &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
          &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
          &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
          &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
        },
        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
        },
        &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
        &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
            &quot;A String&quot;,
          ],
          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
          &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
            &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
              &quot;A String&quot;,
            ],
          },
          &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
        },
        &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
      },
      &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator. # Output only. Current install status of ACM&#x27;s Operator.
        &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment.
        &quot;errors&quot;: [ # Install errors.
          { # Errors pertaining to the installation of ACM.
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message.
          },
        ],
        &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator.
      },
      &quot;policyControllerState&quot;: { # State for PolicyControllerState. # Output only. PolicyController status.
        &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
          &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
          &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
          &quot;gatekeeperMutation&quot;: &quot;A String&quot;, # Status of the pod serving the mutation webhook.
        },
        &quot;migration&quot;: { # State for the migration of PolicyController from ACM -&gt; PoCo Hub. # Record state of ACM -&gt; PoCo Hub migration for this feature.
          &quot;copyTime&quot;: &quot;A String&quot;, # Last time this membership spec was copied to PoCo feature.
          &quot;stage&quot;: &quot;A String&quot;, # Stage of the migration.
        },
        &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
          &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
        },
      },
    },
    &quot;identityservice&quot;: { # **IdentityService**: State for a single membership, analyzed and reported by feature controller. # Identity service state
      &quot;failureReason&quot;: &quot;A String&quot;, # The reason of the failure.
      &quot;installedVersion&quot;: &quot;A String&quot;, # Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.
      &quot;memberConfig&quot;: { # **IdentityService**: Configuration for a single membership. # Last reconciled membership configuration
        &quot;authMethods&quot;: [ # A member may support multiple auth methods.
          { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
            &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
              &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
              &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
              &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
            },
            &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
              &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
            },
            &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
              &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
              },
              &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
                &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
                &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
                &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
              },
              &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
                &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                  &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                  &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                  &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
                },
              },
              &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
                &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
              },
            },
            &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
            &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
              &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
              &quot;enableAccessToken&quot;: True or False, # Enable access token.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
              &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
              &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
              &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
              &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
              &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
              &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
            },
            &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
            &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
              &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
              &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
              &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
                &quot;A String&quot;,
              ],
              &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
              &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
              &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
              &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
            },
          },
        ],
        &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
          &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
            &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
            &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
          },
          &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # Deployment state on this member
    },
    &quot;metering&quot;: { # **Metering**: State for a single membership, analyzed and reported by feature controller. # Metering state
      &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
      &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: State for a single cluster. # Policy Controller state
      &quot;componentStates&quot;: { # Currently these include (also serving as map keys): 1. &quot;admission&quot; 2. &quot;audit&quot; 3. &quot;mutation&quot;
        &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;policyContentState&quot;: { # The state of the policy controller policy content # The overall content state observed by the Hub Feature controller.
        &quot;bundleStates&quot;: { # The state of the any bundles included in the chosen version of the manifest
          &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
            &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
            &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
          },
        },
        &quot;referentialSyncConfigState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
        &quot;templateLibraryState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the template library
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # The overall Policy Controller lifecycle state observed by the Hub Feature controller.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: A membership-specific Feature state for the RBACRoleBindingActuation fleet feature. # RBAC Role Binding Actuation state
      &quot;rbacrolebindingStates&quot;: { # Output only. The state of RBACRoleBindings using custom roles that exist on the cluster, keyed by RBACRoleBinding resource name with format: projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}.
        &quot;a_key&quot;: { # RBACRoleBindingState is the status of an RBACRoleBinding which exists on a membership.
          &quot;description&quot;: &quot;A String&quot;, # The reason for the failure.
          &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the RBACRoleBinding.
          &quot;updateTime&quot;: &quot;A String&quot;, # The time the RBACRoleBinding status was last updated.
        },
      },
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller. # Service mesh state
      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
            },
          },
          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;conditions&quot;: [ # Output only. List of conditions reported for this membership.
        { # Condition being reported.
          &quot;code&quot;: &quot;A String&quot;, # Unique identifier of the condition which describes the condition recognizable to the user.
          &quot;details&quot;: &quot;A String&quot;, # A short summary about the issue.
          &quot;documentationLink&quot;: &quot;A String&quot;, # Links contains actionable information.
          &quot;severity&quot;: &quot;A String&quot;, # Severity level of the condition.
        },
      ],
      &quot;configApiVersion&quot;: &quot;A String&quot;, # The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.
      &quot;controlPlaneManagement&quot;: { # Status of control plane management. # Output only. Status of control plane management
        &quot;details&quot;: [ # Explanation of state.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;implementation&quot;: &quot;A String&quot;, # Output only. Implementation of managed control plane.
        &quot;state&quot;: &quot;A String&quot;, # LifecycleState of control plane management.
      },
      &quot;dataPlaneManagement&quot;: { # Status of data plane management. Only reported per-member. # Output only. Status of data plane management.
        &quot;details&quot;: [ # Explanation of the status.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Lifecycle status of data plane management.
      },
    },
    &quot;state&quot;: { # High-level state of a MembershipFeature. # The high-level state of this MembershipFeature.
      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this MembershipFeature.
      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
    },
  },
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was last updated.
}

  featureId: string, Required. The ID of the membership_feature to create.
  requestId: string, Idempotent request UUID.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
  <pre>Removes a membershipFeature.

Args:
  name: string, Required. The name of the membershipFeature to be deleted. Specified in the format `projects/*/locations/*/memberships/*/features/*`. (required)
  requestId: string, Idempotent request UUID.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>========= MembershipFeature Services ========= Gets details of a membershipFeature.

Args:
  name: string, Required. The MembershipFeature resource name in the format `projects/*/locations/*/memberships/*/features/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # MembershipFeature represents the settings and status of a Fleet Feature enabled on a single Fleet Membership.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was deleted.
  &quot;labels&quot;: { # GCP labels for this MembershipFeature.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifecycleState&quot;: { # LifecycleState describes the state of a MembershipFeature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the MembershipFeature. # Output only. Lifecycle information of the resource itself.
    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the Feature resource in the Hub API.
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)
  &quot;spec&quot;: { # FeatureSpec contains user input per-feature spec information. # Optional. Spec of this membershipFeature.
    &quot;cloudbuild&quot;: { # **Cloud Build**: Configurations for each Cloud Build enabled cluster. # Cloudbuild-specific FeatureSpec.
      &quot;securityPolicy&quot;: &quot;A String&quot;, # Whether it is allowed to run the privileged builds on the cluster or not.
      &quot;version&quot;: &quot;A String&quot;, # Version of the cloud build software on the cluster.
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management FeatureSpec.
      &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
        &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
      },
      &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
      &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
        &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
          { # Configuration for a deployment override.
            &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
              { # Configuration for a container override.
                &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
              },
            ],
            &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
            &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
          },
        ],
        &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
        &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
          &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
          &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
        &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
        &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
        &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
      },
      &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
        &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
        &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
        &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
      },
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
      &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
        &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
    },
    &quot;identityservice&quot;: { # **IdentityService**: Configuration for a single membership. # IdentityService FeatureSpec.
      &quot;authMethods&quot;: [ # A member may support multiple auth methods.
        { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
          &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
            &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
            &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
            &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
          },
          &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
            &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
          },
          &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
            &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
            },
            &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
              &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
              &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
            },
            &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
              &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
              },
            },
            &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
              &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
            },
          },
          &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
          &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
            &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
            &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
            &quot;enableAccessToken&quot;: True or False, # Enable access token.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
            &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
            &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
            &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
            &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
            &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
            &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
          },
          &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
          &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
            &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
            &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
            &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
              &quot;A String&quot;,
            ],
            &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
            &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
            &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
            &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
          },
        },
      ],
      &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
        &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
          &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
          &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
        },
        &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
      },
    },
    &quot;origin&quot;: { # Origin defines where this FeatureSpec originated from. # Whether this per-Feature spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Feature config (updated to USER implicitly) or setting to FLEET explicitly.
      &quot;type&quot;: &quot;A String&quot;, # Type specifies which type of origin is set.
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. # Policycontroller-specific FeatureSpec.
      &quot;policyControllerHubConfig&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;constraintViolationLimit&quot;: &quot;A String&quot;, # The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.
        &quot;deploymentConfigs&quot;: { # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
          &quot;a_key&quot;: { # Deployment-specific configuration.
            &quot;containerResources&quot;: { # ResourceRequirements describes the compute resource requirements. # Container resource requirements.
              &quot;limits&quot;: { # ResourceList contains container resource requirements. # Limits describes the maximum amount of compute resources allowed for use by the running container.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
              &quot;requests&quot;: { # ResourceList contains container resource requirements. # Requests describes the amount of compute resources reserved for the container by the kube-scheduler.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
            },
            &quot;podAffinity&quot;: &quot;A String&quot;, # Pod affinity configuration.
            &quot;podAntiAffinity&quot;: True or False, # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
            &quot;podTolerations&quot;: [ # Pod tolerations of node taints.
              { # Toleration of a node taint.
                &quot;effect&quot;: &quot;A String&quot;, # Matches a taint effect.
                &quot;key&quot;: &quot;A String&quot;, # Matches a taint key (not necessarily unique).
                &quot;operator&quot;: &quot;A String&quot;, # Matches a taint operator.
                &quot;value&quot;: &quot;A String&quot;, # Matches a taint value.
              },
            ],
            &quot;replicaCount&quot;: &quot;A String&quot;, # Pod replica count.
          },
        },
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;installSpec&quot;: &quot;A String&quot;, # The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enables the ability to mutate resources using Policy Controller.
        &quot;policyContent&quot;: { # PolicyContentSpec defines the user&#x27;s desired content configuration on the cluster. # Specifies the desired policy content on the cluster
          &quot;bundles&quot;: { # map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.
            &quot;a_key&quot;: { # BundleInstallSpec is the specification configuration for a single managed bundle.
              &quot;exemptedNamespaces&quot;: [ # the set of namespaces to be exempted from the bundle
                &quot;A String&quot;,
              ],
            },
          },
          &quot;templateLibrary&quot;: { # The config specifying which default library templates to install. # Configures the installation of the Template Library.
            &quot;installation&quot;: &quot;A String&quot;, # Configures the manner in which the template library is installed on the cluster.
          },
        },
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Version of Policy Controller installed.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: The membership-specific input for RBACRoleBindingActuation feature. # Rbacrolebindingactuation-specific FeatureSpec.
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: Spec for a single Membership for the servicemesh feature # ServiceMesh Feature Spec.
      &quot;configApi&quot;: &quot;A String&quot;, # Optional. Specifies the API that will be used for configuring the mesh workloads.
      &quot;controlPlane&quot;: &quot;A String&quot;, # Deprecated: use `management` instead Enables automatic control plane management.
      &quot;defaultChannel&quot;: &quot;A String&quot;, # Determines which release channel to use for default injection and service mesh APIs.
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Service Mesh management.
    },
    &quot;workloadcertificate&quot;: { # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate feature. # Workloadcertificate-specific FeatureSpec.
      &quot;certificateManagement&quot;: &quot;A String&quot;, # CertificateManagement specifies workload certificate management.
    },
  },
  &quot;state&quot;: { # FeatureState contains high-level state information and per-feature state information for this MembershipFeature. # Output only. State of the this membershipFeature.
    &quot;appdevexperience&quot;: { # State for App Dev Exp Feature. # Appdevexperience specific state.
      &quot;networkingInstallSucceeded&quot;: { # Status specifies state for the subcomponent. # Status of subcomponent that detects configured Service Mesh resources.
        &quot;code&quot;: &quot;A String&quot;, # Code specifies AppDevExperienceFeature&#x27;s subcomponent ready state.
        &quot;description&quot;: &quot;A String&quot;, # Description is populated if Code is Failed, explaining why it has failed.
      },
    },
    &quot;clusterupgrade&quot;: { # Per-membership state for this feature. # Cluster upgrade state.
      &quot;ignored&quot;: { # IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default. # Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel.
        &quot;ignoredTime&quot;: &quot;A String&quot;, # Time when the membership was first set to ignored.
        &quot;reason&quot;: &quot;A String&quot;, # Reason why the membership is ignored.
      },
      &quot;upgrades&quot;: [ # Actual upgrade state against desired.
        { # MembershipGKEUpgradeState is a GKEUpgrade and its state per-membership.
          &quot;status&quot;: { # UpgradeStatus provides status information for each upgrade. # Status of the upgrade.
            &quot;code&quot;: &quot;A String&quot;, # Status code of the upgrade.
            &quot;reason&quot;: &quot;A String&quot;, # Reason for this status.
            &quot;updateTime&quot;: &quot;A String&quot;, # Last timestamp the status was updated.
          },
          &quot;upgrade&quot;: { # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. # Which upgrade to track the state.
            &quot;name&quot;: &quot;A String&quot;, # Name of the upgrade, e.g., &quot;k8s_control_plane&quot;.
            &quot;version&quot;: &quot;A String&quot;, # Version of the upgrade, e.g., &quot;1.22.1-gke.100&quot;.
          },
        },
      ],
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management state
      &quot;binauthzState&quot;: { # State for Binauthz. # Output only. Binauthz status.
        &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
          &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
        },
        &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
      },
      &quot;clusterName&quot;: &quot;A String&quot;, # Output only. This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster&#x27;s fleet membership name.
      &quot;configSyncState&quot;: { # State information for ConfigSync. # Output only. Current sync status.
        &quot;clusterLevelStopSyncingState&quot;: &quot;A String&quot;, # Output only. Whether syncing resources to the cluster is stopped at the cluster level.
        &quot;crCount&quot;: 42, # Output only. The number of RootSync and RepoSync CRs in the cluster.
        &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster. # Output only. Information about the deployment of ConfigSync, including the version. of the various Pods deployed
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Deployment state of admission-webhook.
          &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Deployment state of otel-collector
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Deployment state of resource-group-controller-manager
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler.
          &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod.
        },
        &quot;errors&quot;: [ # Output only. Errors pertaining to the installation of Config Sync.
          { # Errors pertaining to the installation of Config Sync
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
          },
        ],
        &quot;reposyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the Reposync CRD
        &quot;rootsyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the RootSync CRD
        &quot;state&quot;: &quot;A String&quot;, # Output only. The state of CS This field summarizes the other fields in this message.
        &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster. # Output only. The state of ConfigSync&#x27;s process to sync configs to a cluster.
          &quot;code&quot;: &quot;A String&quot;, # Sync status code.
          &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
            { # An ACM created error representing a problem syncing configurations.
              &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
              &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
              &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
                { # Model for a config file in the git repo with an associated Sync error.
                  &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK. # Group/version/kind of the resource that is causing an error
                    &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
                    &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
                    &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
                  },
                  &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
                  &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
                  &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
                },
              ],
            },
          ],
          &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
          &quot;lastSync&quot;: &quot;A String&quot;, # Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo. The time format is specified in https://golang.org/pkg/time/#Time.String
          &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo.
          &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
          &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
        },
        &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods. # Output only. The version of ConfigSync deployed.
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Version of the deployed admission-webhook pod.
          &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Version of the deployed otel-collector pod
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Version of the deployed resource-group-controller-manager pod
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod.
          &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod.
        },
      },
      &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller. # Output only. Hierarchy Controller status.
        &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1).
          &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0).
        },
        &quot;version&quot;: { # Version for Hierarchy Controller. # The version for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension.
          &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC.
        },
      },
      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. The Kubernetes API server version of the cluster.
      &quot;membershipSpec&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Output only. Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state.
        &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
        },
        &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
        &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
          &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
            { # Configuration for a deployment override.
              &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
                { # Configuration for a container override.
                  &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                  &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                  &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                  &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                  &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
                },
              ],
              &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
              &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
            },
          ],
          &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
          &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
            &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
            &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
          &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
          &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
          &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
        },
        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
        },
        &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
        &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
            &quot;A String&quot;,
          ],
          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
          &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
            &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
              &quot;A String&quot;,
            ],
          },
          &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
        },
        &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
      },
      &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator. # Output only. Current install status of ACM&#x27;s Operator.
        &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment.
        &quot;errors&quot;: [ # Install errors.
          { # Errors pertaining to the installation of ACM.
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message.
          },
        ],
        &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator.
      },
      &quot;policyControllerState&quot;: { # State for PolicyControllerState. # Output only. PolicyController status.
        &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
          &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
          &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
          &quot;gatekeeperMutation&quot;: &quot;A String&quot;, # Status of the pod serving the mutation webhook.
        },
        &quot;migration&quot;: { # State for the migration of PolicyController from ACM -&gt; PoCo Hub. # Record state of ACM -&gt; PoCo Hub migration for this feature.
          &quot;copyTime&quot;: &quot;A String&quot;, # Last time this membership spec was copied to PoCo feature.
          &quot;stage&quot;: &quot;A String&quot;, # Stage of the migration.
        },
        &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
          &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
        },
      },
    },
    &quot;identityservice&quot;: { # **IdentityService**: State for a single membership, analyzed and reported by feature controller. # Identity service state
      &quot;failureReason&quot;: &quot;A String&quot;, # The reason of the failure.
      &quot;installedVersion&quot;: &quot;A String&quot;, # Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.
      &quot;memberConfig&quot;: { # **IdentityService**: Configuration for a single membership. # Last reconciled membership configuration
        &quot;authMethods&quot;: [ # A member may support multiple auth methods.
          { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
            &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
              &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
              &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
              &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
            },
            &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
              &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
            },
            &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
              &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
              },
              &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
                &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
                &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
                &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
              },
              &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
                &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                  &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                  &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                  &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
                },
              },
              &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
                &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
              },
            },
            &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
            &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
              &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
              &quot;enableAccessToken&quot;: True or False, # Enable access token.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
              &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
              &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
              &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
              &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
              &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
              &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
            },
            &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
            &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
              &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
              &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
              &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
                &quot;A String&quot;,
              ],
              &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
              &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
              &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
              &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
            },
          },
        ],
        &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
          &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
            &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
            &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
          },
          &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # Deployment state on this member
    },
    &quot;metering&quot;: { # **Metering**: State for a single membership, analyzed and reported by feature controller. # Metering state
      &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
      &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: State for a single cluster. # Policy Controller state
      &quot;componentStates&quot;: { # Currently these include (also serving as map keys): 1. &quot;admission&quot; 2. &quot;audit&quot; 3. &quot;mutation&quot;
        &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;policyContentState&quot;: { # The state of the policy controller policy content # The overall content state observed by the Hub Feature controller.
        &quot;bundleStates&quot;: { # The state of the any bundles included in the chosen version of the manifest
          &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
            &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
            &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
          },
        },
        &quot;referentialSyncConfigState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
        &quot;templateLibraryState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the template library
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # The overall Policy Controller lifecycle state observed by the Hub Feature controller.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: A membership-specific Feature state for the RBACRoleBindingActuation fleet feature. # RBAC Role Binding Actuation state
      &quot;rbacrolebindingStates&quot;: { # Output only. The state of RBACRoleBindings using custom roles that exist on the cluster, keyed by RBACRoleBinding resource name with format: projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}.
        &quot;a_key&quot;: { # RBACRoleBindingState is the status of an RBACRoleBinding which exists on a membership.
          &quot;description&quot;: &quot;A String&quot;, # The reason for the failure.
          &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the RBACRoleBinding.
          &quot;updateTime&quot;: &quot;A String&quot;, # The time the RBACRoleBinding status was last updated.
        },
      },
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller. # Service mesh state
      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
            },
          },
          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;conditions&quot;: [ # Output only. List of conditions reported for this membership.
        { # Condition being reported.
          &quot;code&quot;: &quot;A String&quot;, # Unique identifier of the condition which describes the condition recognizable to the user.
          &quot;details&quot;: &quot;A String&quot;, # A short summary about the issue.
          &quot;documentationLink&quot;: &quot;A String&quot;, # Links contains actionable information.
          &quot;severity&quot;: &quot;A String&quot;, # Severity level of the condition.
        },
      ],
      &quot;configApiVersion&quot;: &quot;A String&quot;, # The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.
      &quot;controlPlaneManagement&quot;: { # Status of control plane management. # Output only. Status of control plane management
        &quot;details&quot;: [ # Explanation of state.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;implementation&quot;: &quot;A String&quot;, # Output only. Implementation of managed control plane.
        &quot;state&quot;: &quot;A String&quot;, # LifecycleState of control plane management.
      },
      &quot;dataPlaneManagement&quot;: { # Status of data plane management. Only reported per-member. # Output only. Status of data plane management.
        &quot;details&quot;: [ # Explanation of the status.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Lifecycle status of data plane management.
      },
    },
    &quot;state&quot;: { # High-level state of a MembershipFeature. # The high-level state of this MembershipFeature.
      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this MembershipFeature.
      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
    },
  },
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was last updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists MembershipFeatures in a given project and location.

Args:
  parent: string, Required. The parent where the MembershipFeature will be listed. In the format: `projects/*/locations/*/memberships/*`. (required)
  filter: string, Lists MembershipFeatures that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name &quot;helloworld&quot; in project &quot;foo-proj&quot; and membership &quot;member-bar&quot;: name = &quot;projects/foo-proj/locations/global/memberships/member-bar/features/helloworld&quot; - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar
  orderBy: string, One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.
  pageSize: integer, When requesting a &#x27;page&#x27; of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.
  pageToken: string, Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for the `GkeHubFeature.ListMembershipFeatures` method.
  &quot;membershipFeatures&quot;: [ # The list of matching MembershipFeatures.
    { # MembershipFeature represents the settings and status of a Fleet Feature enabled on a single Fleet Membership.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was created.
      &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was deleted.
      &quot;labels&quot;: { # GCP labels for this MembershipFeature.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;lifecycleState&quot;: { # LifecycleState describes the state of a MembershipFeature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the MembershipFeature. # Output only. Lifecycle information of the resource itself.
        &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the Feature resource in the Hub API.
      },
      &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)
      &quot;spec&quot;: { # FeatureSpec contains user input per-feature spec information. # Optional. Spec of this membershipFeature.
        &quot;cloudbuild&quot;: { # **Cloud Build**: Configurations for each Cloud Build enabled cluster. # Cloudbuild-specific FeatureSpec.
          &quot;securityPolicy&quot;: &quot;A String&quot;, # Whether it is allowed to run the privileged builds on the cluster or not.
          &quot;version&quot;: &quot;A String&quot;, # Version of the cloud build software on the cluster.
        },
        &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management FeatureSpec.
          &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
            &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
          },
          &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
          &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
            &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
              { # Configuration for a deployment override.
                &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
                  { # Configuration for a container override.
                    &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                    &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                    &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                    &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                    &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
                  },
                ],
                &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
                &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
              },
            ],
            &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
            &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
              &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
              &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
              &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
              &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
              &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
              &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
            },
            &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
            &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
              &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
              &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
              &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
              &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
              &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
            },
            &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
            &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
            &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
          },
          &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
            &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
            &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
            &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
          },
          &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
          &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
            &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
              &quot;A String&quot;,
            ],
            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
            &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
              &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
                &quot;A String&quot;,
              ],
            },
            &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
            &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
            &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
          },
          &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
        },
        &quot;identityservice&quot;: { # **IdentityService**: Configuration for a single membership. # IdentityService FeatureSpec.
          &quot;authMethods&quot;: [ # A member may support multiple auth methods.
            { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
              &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
                &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
                &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
                &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
                &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
                &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
                &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
                &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
              },
              &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
                &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
              },
              &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
                &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
                  &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
                  &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
                  &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
                },
                &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
                  &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
                  &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
                  &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
                },
                &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
                  &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                    &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                    &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                    &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
                  },
                },
                &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
                  &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
                  &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
                  &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
                  &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
                },
              },
              &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
              &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
                &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
                &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
                &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
                &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
                &quot;enableAccessToken&quot;: True or False, # Enable access token.
                &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
                &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
                &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
                &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
                &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
                &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
                &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
                &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
                &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
              },
              &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
              &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
                &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
                  &quot;a_key&quot;: &quot;A String&quot;,
                },
                &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
                &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
                &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
                  &quot;A String&quot;,
                ],
                &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
                &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
                &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
                &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
              },
            },
          ],
          &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
            &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
              &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
              &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
            },
            &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
          },
        },
        &quot;origin&quot;: { # Origin defines where this FeatureSpec originated from. # Whether this per-Feature spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Feature config (updated to USER implicitly) or setting to FLEET explicitly.
          &quot;type&quot;: &quot;A String&quot;, # Type specifies which type of origin is set.
        },
        &quot;policycontroller&quot;: { # **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. # Policycontroller-specific FeatureSpec.
          &quot;policyControllerHubConfig&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
            &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
            &quot;constraintViolationLimit&quot;: &quot;A String&quot;, # The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.
            &quot;deploymentConfigs&quot;: { # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
              &quot;a_key&quot;: { # Deployment-specific configuration.
                &quot;containerResources&quot;: { # ResourceRequirements describes the compute resource requirements. # Container resource requirements.
                  &quot;limits&quot;: { # ResourceList contains container resource requirements. # Limits describes the maximum amount of compute resources allowed for use by the running container.
                    &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                    &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
                  },
                  &quot;requests&quot;: { # ResourceList contains container resource requirements. # Requests describes the amount of compute resources reserved for the container by the kube-scheduler.
                    &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                    &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
                  },
                },
                &quot;podAffinity&quot;: &quot;A String&quot;, # Pod affinity configuration.
                &quot;podAntiAffinity&quot;: True or False, # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
                &quot;podTolerations&quot;: [ # Pod tolerations of node taints.
                  { # Toleration of a node taint.
                    &quot;effect&quot;: &quot;A String&quot;, # Matches a taint effect.
                    &quot;key&quot;: &quot;A String&quot;, # Matches a taint key (not necessarily unique).
                    &quot;operator&quot;: &quot;A String&quot;, # Matches a taint operator.
                    &quot;value&quot;: &quot;A String&quot;, # Matches a taint value.
                  },
                ],
                &quot;replicaCount&quot;: &quot;A String&quot;, # Pod replica count.
              },
            },
            &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
              &quot;A String&quot;,
            ],
            &quot;installSpec&quot;: &quot;A String&quot;, # The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.
            &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
            &quot;monitoring&quot;: { # MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
              &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
                &quot;A String&quot;,
              ],
            },
            &quot;mutationEnabled&quot;: True or False, # Enables the ability to mutate resources using Policy Controller.
            &quot;policyContent&quot;: { # PolicyContentSpec defines the user&#x27;s desired content configuration on the cluster. # Specifies the desired policy content on the cluster
              &quot;bundles&quot;: { # map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.
                &quot;a_key&quot;: { # BundleInstallSpec is the specification configuration for a single managed bundle.
                  &quot;exemptedNamespaces&quot;: [ # the set of namespaces to be exempted from the bundle
                    &quot;A String&quot;,
                  ],
                },
              },
              &quot;templateLibrary&quot;: { # The config specifying which default library templates to install. # Configures the installation of the Template Library.
                &quot;installation&quot;: &quot;A String&quot;, # Configures the manner in which the template library is installed on the cluster.
              },
            },
            &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
          },
          &quot;version&quot;: &quot;A String&quot;, # Version of Policy Controller installed.
        },
        &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: The membership-specific input for RBACRoleBindingActuation feature. # Rbacrolebindingactuation-specific FeatureSpec.
        },
        &quot;servicemesh&quot;: { # **Service Mesh**: Spec for a single Membership for the servicemesh feature # ServiceMesh Feature Spec.
          &quot;configApi&quot;: &quot;A String&quot;, # Optional. Specifies the API that will be used for configuring the mesh workloads.
          &quot;controlPlane&quot;: &quot;A String&quot;, # Deprecated: use `management` instead Enables automatic control plane management.
          &quot;defaultChannel&quot;: &quot;A String&quot;, # Determines which release channel to use for default injection and service mesh APIs.
          &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Service Mesh management.
        },
        &quot;workloadcertificate&quot;: { # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate feature. # Workloadcertificate-specific FeatureSpec.
          &quot;certificateManagement&quot;: &quot;A String&quot;, # CertificateManagement specifies workload certificate management.
        },
      },
      &quot;state&quot;: { # FeatureState contains high-level state information and per-feature state information for this MembershipFeature. # Output only. State of the this membershipFeature.
        &quot;appdevexperience&quot;: { # State for App Dev Exp Feature. # Appdevexperience specific state.
          &quot;networkingInstallSucceeded&quot;: { # Status specifies state for the subcomponent. # Status of subcomponent that detects configured Service Mesh resources.
            &quot;code&quot;: &quot;A String&quot;, # Code specifies AppDevExperienceFeature&#x27;s subcomponent ready state.
            &quot;description&quot;: &quot;A String&quot;, # Description is populated if Code is Failed, explaining why it has failed.
          },
        },
        &quot;clusterupgrade&quot;: { # Per-membership state for this feature. # Cluster upgrade state.
          &quot;ignored&quot;: { # IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default. # Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel.
            &quot;ignoredTime&quot;: &quot;A String&quot;, # Time when the membership was first set to ignored.
            &quot;reason&quot;: &quot;A String&quot;, # Reason why the membership is ignored.
          },
          &quot;upgrades&quot;: [ # Actual upgrade state against desired.
            { # MembershipGKEUpgradeState is a GKEUpgrade and its state per-membership.
              &quot;status&quot;: { # UpgradeStatus provides status information for each upgrade. # Status of the upgrade.
                &quot;code&quot;: &quot;A String&quot;, # Status code of the upgrade.
                &quot;reason&quot;: &quot;A String&quot;, # Reason for this status.
                &quot;updateTime&quot;: &quot;A String&quot;, # Last timestamp the status was updated.
              },
              &quot;upgrade&quot;: { # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. # Which upgrade to track the state.
                &quot;name&quot;: &quot;A String&quot;, # Name of the upgrade, e.g., &quot;k8s_control_plane&quot;.
                &quot;version&quot;: &quot;A String&quot;, # Version of the upgrade, e.g., &quot;1.22.1-gke.100&quot;.
              },
            },
          ],
        },
        &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management state
          &quot;binauthzState&quot;: { # State for Binauthz. # Output only. Binauthz status.
            &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
              &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
            },
            &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
          },
          &quot;clusterName&quot;: &quot;A String&quot;, # Output only. This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster&#x27;s fleet membership name.
          &quot;configSyncState&quot;: { # State information for ConfigSync. # Output only. Current sync status.
            &quot;clusterLevelStopSyncingState&quot;: &quot;A String&quot;, # Output only. Whether syncing resources to the cluster is stopped at the cluster level.
            &quot;crCount&quot;: 42, # Output only. The number of RootSync and RepoSync CRs in the cluster.
            &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster. # Output only. Information about the deployment of ConfigSync, including the version. of the various Pods deployed
              &quot;admissionWebhook&quot;: &quot;A String&quot;, # Deployment state of admission-webhook.
              &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod.
              &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod.
              &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod.
              &quot;otelCollector&quot;: &quot;A String&quot;, # Deployment state of otel-collector
              &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod.
              &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Deployment state of resource-group-controller-manager
              &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler.
              &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod.
            },
            &quot;errors&quot;: [ # Output only. Errors pertaining to the installation of Config Sync.
              { # Errors pertaining to the installation of Config Sync
                &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
              },
            ],
            &quot;reposyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the Reposync CRD
            &quot;rootsyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the RootSync CRD
            &quot;state&quot;: &quot;A String&quot;, # Output only. The state of CS This field summarizes the other fields in this message.
            &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster. # Output only. The state of ConfigSync&#x27;s process to sync configs to a cluster.
              &quot;code&quot;: &quot;A String&quot;, # Sync status code.
              &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
                { # An ACM created error representing a problem syncing configurations.
                  &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
                  &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
                  &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
                    { # Model for a config file in the git repo with an associated Sync error.
                      &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK. # Group/version/kind of the resource that is causing an error
                        &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
                        &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
                        &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
                      },
                      &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
                      &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
                      &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
                    },
                  ],
                },
              ],
              &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
              &quot;lastSync&quot;: &quot;A String&quot;, # Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo. The time format is specified in https://golang.org/pkg/time/#Time.String
              &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo.
              &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
              &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
            },
            &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods. # Output only. The version of ConfigSync deployed.
              &quot;admissionWebhook&quot;: &quot;A String&quot;, # Version of the deployed admission-webhook pod.
              &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod.
              &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod.
              &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod.
              &quot;otelCollector&quot;: &quot;A String&quot;, # Version of the deployed otel-collector pod
              &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod.
              &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Version of the deployed resource-group-controller-manager pod
              &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod.
              &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod.
            },
          },
          &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller. # Output only. Hierarchy Controller status.
            &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller.
              &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1).
              &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0).
            },
            &quot;version&quot;: { # Version for Hierarchy Controller. # The version for Hierarchy Controller.
              &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension.
              &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC.
            },
          },
          &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. The Kubernetes API server version of the cluster.
          &quot;membershipSpec&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Output only. Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state.
            &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
              &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
            },
            &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
            &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
              &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
                { # Configuration for a deployment override.
                  &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
                    { # Configuration for a container override.
                      &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                      &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                      &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                      &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                      &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
                    },
                  ],
                  &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
                  &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
                },
              ],
              &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
              &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
                &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
                &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
                &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
                &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
                &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
                &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
                &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
                &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
              },
              &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
              &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
                &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
                &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
                &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
                &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
                &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
              },
              &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
              &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
              &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
            },
            &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
              &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
              &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
              &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
            },
            &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
            &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
              &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
              &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
              &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
                &quot;A String&quot;,
              ],
              &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
              &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
                &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
                  &quot;A String&quot;,
                ],
              },
              &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
              &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
              &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
              &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
            },
            &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
          },
          &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator. # Output only. Current install status of ACM&#x27;s Operator.
            &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment.
            &quot;errors&quot;: [ # Install errors.
              { # Errors pertaining to the installation of ACM.
                &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message.
              },
            ],
            &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator.
          },
          &quot;policyControllerState&quot;: { # State for PolicyControllerState. # Output only. PolicyController status.
            &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
              &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
              &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
              &quot;gatekeeperMutation&quot;: &quot;A String&quot;, # Status of the pod serving the mutation webhook.
            },
            &quot;migration&quot;: { # State for the migration of PolicyController from ACM -&gt; PoCo Hub. # Record state of ACM -&gt; PoCo Hub migration for this feature.
              &quot;copyTime&quot;: &quot;A String&quot;, # Last time this membership spec was copied to PoCo feature.
              &quot;stage&quot;: &quot;A String&quot;, # Stage of the migration.
            },
            &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
              &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
            },
          },
        },
        &quot;identityservice&quot;: { # **IdentityService**: State for a single membership, analyzed and reported by feature controller. # Identity service state
          &quot;failureReason&quot;: &quot;A String&quot;, # The reason of the failure.
          &quot;installedVersion&quot;: &quot;A String&quot;, # Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.
          &quot;memberConfig&quot;: { # **IdentityService**: Configuration for a single membership. # Last reconciled membership configuration
            &quot;authMethods&quot;: [ # A member may support multiple auth methods.
              { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
                &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
                  &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
                  &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
                  &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
                  &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
                  &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
                  &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
                  &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
                },
                &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
                  &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
                },
                &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
                  &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
                    &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
                    &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
                    &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
                  },
                  &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
                    &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
                    &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
                    &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
                  },
                  &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
                    &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                      &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                      &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                      &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
                    },
                  },
                  &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
                    &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
                    &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
                    &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
                    &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
                  },
                },
                &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
                &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
                  &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
                  &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
                  &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
                  &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
                  &quot;enableAccessToken&quot;: True or False, # Enable access token.
                  &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
                  &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
                  &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
                  &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
                  &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
                  &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
                  &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
                  &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
                  &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
                },
                &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
                &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
                  &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
                    &quot;a_key&quot;: &quot;A String&quot;,
                  },
                  &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
                  &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
                  &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
                    &quot;A String&quot;,
                  ],
                  &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
                  &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
                  &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
                  &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
                },
              },
            ],
            &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
              &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
                &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
                &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
              },
              &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
            },
          },
          &quot;state&quot;: &quot;A String&quot;, # Deployment state on this member
        },
        &quot;metering&quot;: { # **Metering**: State for a single membership, analyzed and reported by feature controller. # Metering state
          &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
          &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
        },
        &quot;policycontroller&quot;: { # **Policy Controller**: State for a single cluster. # Policy Controller state
          &quot;componentStates&quot;: { # Currently these include (also serving as map keys): 1. &quot;admission&quot; 2. &quot;audit&quot; 3. &quot;mutation&quot;
            &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
              &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
              &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
            },
          },
          &quot;policyContentState&quot;: { # The state of the policy controller policy content # The overall content state observed by the Hub Feature controller.
            &quot;bundleStates&quot;: { # The state of the any bundles included in the chosen version of the manifest
              &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
                &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
                &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
              },
            },
            &quot;referentialSyncConfigState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user.
              &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
              &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
            },
            &quot;templateLibraryState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the template library
              &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
              &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
            },
          },
          &quot;state&quot;: &quot;A String&quot;, # The overall Policy Controller lifecycle state observed by the Hub Feature controller.
        },
        &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: A membership-specific Feature state for the RBACRoleBindingActuation fleet feature. # RBAC Role Binding Actuation state
          &quot;rbacrolebindingStates&quot;: { # Output only. The state of RBACRoleBindings using custom roles that exist on the cluster, keyed by RBACRoleBinding resource name with format: projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}.
            &quot;a_key&quot;: { # RBACRoleBindingState is the status of an RBACRoleBinding which exists on a membership.
              &quot;description&quot;: &quot;A String&quot;, # The reason for the failure.
              &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the RBACRoleBinding.
              &quot;updateTime&quot;: &quot;A String&quot;, # The time the RBACRoleBinding status was last updated.
            },
          },
        },
        &quot;servicemesh&quot;: { # **Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller. # Service mesh state
          &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
            { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
              &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
                &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
              },
              &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
              &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
                &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
                &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
                &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
                  &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
                  &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
                },
              },
              &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
                &quot;A String&quot;,
              ],
            },
          ],
          &quot;conditions&quot;: [ # Output only. List of conditions reported for this membership.
            { # Condition being reported.
              &quot;code&quot;: &quot;A String&quot;, # Unique identifier of the condition which describes the condition recognizable to the user.
              &quot;details&quot;: &quot;A String&quot;, # A short summary about the issue.
              &quot;documentationLink&quot;: &quot;A String&quot;, # Links contains actionable information.
              &quot;severity&quot;: &quot;A String&quot;, # Severity level of the condition.
            },
          ],
          &quot;configApiVersion&quot;: &quot;A String&quot;, # The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.
          &quot;controlPlaneManagement&quot;: { # Status of control plane management. # Output only. Status of control plane management
            &quot;details&quot;: [ # Explanation of state.
              { # Structured and human-readable details for a status.
                &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
                &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
              },
            ],
            &quot;implementation&quot;: &quot;A String&quot;, # Output only. Implementation of managed control plane.
            &quot;state&quot;: &quot;A String&quot;, # LifecycleState of control plane management.
          },
          &quot;dataPlaneManagement&quot;: { # Status of data plane management. Only reported per-member. # Output only. Status of data plane management.
            &quot;details&quot;: [ # Explanation of the status.
              { # Structured and human-readable details for a status.
                &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
                &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
              },
            ],
            &quot;state&quot;: &quot;A String&quot;, # Lifecycle status of data plane management.
          },
        },
        &quot;state&quot;: { # High-level state of a MembershipFeature. # The high-level state of this MembershipFeature.
          &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this MembershipFeature.
          &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
          &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
        },
      },
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was last updated.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to request the next page of resources from the `ListMembershipFeatures` method. The value of an empty string means that there are no more resources to return.
  &quot;unreachable&quot;: [ # List of locations that could not be reached while fetching this list.
    &quot;A String&quot;,
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, allowMissing=None, body=None, requestId=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates an existing MembershipFeature.

Args:
  name: string, Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers) (required)
  body: object, The request body.
    The object takes the form of:

{ # MembershipFeature represents the settings and status of a Fleet Feature enabled on a single Fleet Membership.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was created.
  &quot;deleteTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was deleted.
  &quot;labels&quot;: { # GCP labels for this MembershipFeature.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;lifecycleState&quot;: { # LifecycleState describes the state of a MembershipFeature *resource* in the GkeHub API. See `FeatureState` for the &quot;running state&quot; of the MembershipFeature. # Output only. Lifecycle information of the resource itself.
    &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the Feature resource in the Hub API.
  },
  &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the membershipFeature, in the format: `projects/{project}/locations/{location}/memberships/{membership}/features/{feature}`. Note that `membershipFeatures` is shortened to `features` in the resource name. (see http://go/aip/122#collection-identifiers)
  &quot;spec&quot;: { # FeatureSpec contains user input per-feature spec information. # Optional. Spec of this membershipFeature.
    &quot;cloudbuild&quot;: { # **Cloud Build**: Configurations for each Cloud Build enabled cluster. # Cloudbuild-specific FeatureSpec.
      &quot;securityPolicy&quot;: &quot;A String&quot;, # Whether it is allowed to run the privileged builds on the cluster or not.
      &quot;version&quot;: &quot;A String&quot;, # Version of the cloud build software on the cluster.
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management FeatureSpec.
      &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
        &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
      },
      &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
      &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
        &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
          { # Configuration for a deployment override.
            &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
              { # Configuration for a container override.
                &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
              },
            ],
            &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
            &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
          },
        ],
        &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
        &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
          &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
          &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
        &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
          &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
          &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
          &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
          &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
          &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
        },
        &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
        &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
        &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
      },
      &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
        &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
        &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
        &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
      },
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
      &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
        &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
    },
    &quot;identityservice&quot;: { # **IdentityService**: Configuration for a single membership. # IdentityService FeatureSpec.
      &quot;authMethods&quot;: [ # A member may support multiple auth methods.
        { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
          &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
            &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
            &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
            &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
          },
          &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
            &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
          },
          &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
            &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
            },
            &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
              &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
              &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
            },
            &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
              &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
              },
            },
            &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
              &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
              &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
              &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
              &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
            },
          },
          &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
          &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
            &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
            &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
            &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
            &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
            &quot;enableAccessToken&quot;: True or False, # Enable access token.
            &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
            &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
            &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
            &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
            &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
            &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
            &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
            &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
          },
          &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
          &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
            &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
            &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
            &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
              &quot;A String&quot;,
            ],
            &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
            &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
            &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
            &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
          },
        },
      ],
      &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
        &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
          &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
          &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
        },
        &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
      },
    },
    &quot;origin&quot;: { # Origin defines where this FeatureSpec originated from. # Whether this per-Feature spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Feature config (updated to USER implicitly) or setting to FLEET explicitly.
      &quot;type&quot;: &quot;A String&quot;, # Type specifies which type of origin is set.
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR. # Policycontroller-specific FeatureSpec.
      &quot;policyControllerHubConfig&quot;: { # Configuration for Policy Controller # Policy Controller configuration for the cluster.
        &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
        &quot;constraintViolationLimit&quot;: &quot;A String&quot;, # The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.
        &quot;deploymentConfigs&quot;: { # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
          &quot;a_key&quot;: { # Deployment-specific configuration.
            &quot;containerResources&quot;: { # ResourceRequirements describes the compute resource requirements. # Container resource requirements.
              &quot;limits&quot;: { # ResourceList contains container resource requirements. # Limits describes the maximum amount of compute resources allowed for use by the running container.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
              &quot;requests&quot;: { # ResourceList contains container resource requirements. # Requests describes the amount of compute resources reserved for the container by the kube-scheduler.
                &quot;cpu&quot;: &quot;A String&quot;, # CPU requirement expressed in Kubernetes resource units.
                &quot;memory&quot;: &quot;A String&quot;, # Memory requirement expressed in Kubernetes resource units.
              },
            },
            &quot;podAffinity&quot;: &quot;A String&quot;, # Pod affinity configuration.
            &quot;podAntiAffinity&quot;: True or False, # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
            &quot;podTolerations&quot;: [ # Pod tolerations of node taints.
              { # Toleration of a node taint.
                &quot;effect&quot;: &quot;A String&quot;, # Matches a taint effect.
                &quot;key&quot;: &quot;A String&quot;, # Matches a taint key (not necessarily unique).
                &quot;operator&quot;: &quot;A String&quot;, # Matches a taint operator.
                &quot;value&quot;: &quot;A String&quot;, # Matches a taint value.
              },
            ],
            &quot;replicaCount&quot;: &quot;A String&quot;, # Pod replica count.
          },
        },
        &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
          &quot;A String&quot;,
        ],
        &quot;installSpec&quot;: &quot;A String&quot;, # The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.
        &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
        &quot;monitoring&quot;: { # MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
          &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
            &quot;A String&quot;,
          ],
        },
        &quot;mutationEnabled&quot;: True or False, # Enables the ability to mutate resources using Policy Controller.
        &quot;policyContent&quot;: { # PolicyContentSpec defines the user&#x27;s desired content configuration on the cluster. # Specifies the desired policy content on the cluster
          &quot;bundles&quot;: { # map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.
            &quot;a_key&quot;: { # BundleInstallSpec is the specification configuration for a single managed bundle.
              &quot;exemptedNamespaces&quot;: [ # the set of namespaces to be exempted from the bundle
                &quot;A String&quot;,
              ],
            },
          },
          &quot;templateLibrary&quot;: { # The config specifying which default library templates to install. # Configures the installation of the Template Library.
            &quot;installation&quot;: &quot;A String&quot;, # Configures the manner in which the template library is installed on the cluster.
          },
        },
        &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
      },
      &quot;version&quot;: &quot;A String&quot;, # Version of Policy Controller installed.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: The membership-specific input for RBACRoleBindingActuation feature. # Rbacrolebindingactuation-specific FeatureSpec.
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: Spec for a single Membership for the servicemesh feature # ServiceMesh Feature Spec.
      &quot;configApi&quot;: &quot;A String&quot;, # Optional. Specifies the API that will be used for configuring the mesh workloads.
      &quot;controlPlane&quot;: &quot;A String&quot;, # Deprecated: use `management` instead Enables automatic control plane management.
      &quot;defaultChannel&quot;: &quot;A String&quot;, # Determines which release channel to use for default injection and service mesh APIs.
      &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Service Mesh management.
    },
    &quot;workloadcertificate&quot;: { # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate feature. # Workloadcertificate-specific FeatureSpec.
      &quot;certificateManagement&quot;: &quot;A String&quot;, # CertificateManagement specifies workload certificate management.
    },
  },
  &quot;state&quot;: { # FeatureState contains high-level state information and per-feature state information for this MembershipFeature. # Output only. State of the this membershipFeature.
    &quot;appdevexperience&quot;: { # State for App Dev Exp Feature. # Appdevexperience specific state.
      &quot;networkingInstallSucceeded&quot;: { # Status specifies state for the subcomponent. # Status of subcomponent that detects configured Service Mesh resources.
        &quot;code&quot;: &quot;A String&quot;, # Code specifies AppDevExperienceFeature&#x27;s subcomponent ready state.
        &quot;description&quot;: &quot;A String&quot;, # Description is populated if Code is Failed, explaining why it has failed.
      },
    },
    &quot;clusterupgrade&quot;: { # Per-membership state for this feature. # Cluster upgrade state.
      &quot;ignored&quot;: { # IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default. # Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel.
        &quot;ignoredTime&quot;: &quot;A String&quot;, # Time when the membership was first set to ignored.
        &quot;reason&quot;: &quot;A String&quot;, # Reason why the membership is ignored.
      },
      &quot;upgrades&quot;: [ # Actual upgrade state against desired.
        { # MembershipGKEUpgradeState is a GKEUpgrade and its state per-membership.
          &quot;status&quot;: { # UpgradeStatus provides status information for each upgrade. # Status of the upgrade.
            &quot;code&quot;: &quot;A String&quot;, # Status code of the upgrade.
            &quot;reason&quot;: &quot;A String&quot;, # Reason for this status.
            &quot;updateTime&quot;: &quot;A String&quot;, # Last timestamp the status was updated.
          },
          &quot;upgrade&quot;: { # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade. # Which upgrade to track the state.
            &quot;name&quot;: &quot;A String&quot;, # Name of the upgrade, e.g., &quot;k8s_control_plane&quot;.
            &quot;version&quot;: &quot;A String&quot;, # Version of the upgrade, e.g., &quot;1.22.1-gke.100&quot;.
          },
        },
      ],
    },
    &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management state
      &quot;binauthzState&quot;: { # State for Binauthz. # Output only. Binauthz status.
        &quot;version&quot;: { # The version of binauthz. # The version of binauthz that is installed.
          &quot;webhookVersion&quot;: &quot;A String&quot;, # The version of the binauthz webhook.
        },
        &quot;webhook&quot;: &quot;A String&quot;, # The state of the binauthz webhook.
      },
      &quot;clusterName&quot;: &quot;A String&quot;, # Output only. This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster&#x27;s fleet membership name.
      &quot;configSyncState&quot;: { # State information for ConfigSync. # Output only. Current sync status.
        &quot;clusterLevelStopSyncingState&quot;: &quot;A String&quot;, # Output only. Whether syncing resources to the cluster is stopped at the cluster level.
        &quot;crCount&quot;: 42, # Output only. The number of RootSync and RepoSync CRs in the cluster.
        &quot;deploymentState&quot;: { # The state of ConfigSync&#x27;s deployment on a cluster. # Output only. Information about the deployment of ConfigSync, including the version. of the various Pods deployed
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Deployment state of admission-webhook.
          &quot;gitSync&quot;: &quot;A String&quot;, # Deployment state of the git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Deployment state of the importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Deployment state of the monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Deployment state of otel-collector
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Deployment state of reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Deployment state of resource-group-controller-manager
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Deployment state of root-reconciler.
          &quot;syncer&quot;: &quot;A String&quot;, # Deployment state of the syncer pod.
        },
        &quot;errors&quot;: [ # Output only. Errors pertaining to the installation of Config Sync.
          { # Errors pertaining to the installation of Config Sync
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message
          },
        ],
        &quot;reposyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the Reposync CRD
        &quot;rootsyncCrd&quot;: &quot;A String&quot;, # Output only. The state of the RootSync CRD
        &quot;state&quot;: &quot;A String&quot;, # Output only. The state of CS This field summarizes the other fields in this message.
        &quot;syncState&quot;: { # State indicating an ACM&#x27;s progress syncing configurations to a cluster. # Output only. The state of ConfigSync&#x27;s process to sync configs to a cluster.
          &quot;code&quot;: &quot;A String&quot;, # Sync status code.
          &quot;errors&quot;: [ # A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.
            { # An ACM created error representing a problem syncing configurations.
              &quot;code&quot;: &quot;A String&quot;, # An ACM defined error code
              &quot;errorMessage&quot;: &quot;A String&quot;, # A description of the error
              &quot;errorResources&quot;: [ # A list of config(s) associated with the error, if any
                { # Model for a config file in the git repo with an associated Sync error.
                  &quot;resourceGvk&quot;: { # A Kubernetes object&#x27;s GVK. # Group/version/kind of the resource that is causing an error
                    &quot;group&quot;: &quot;A String&quot;, # Kubernetes Group
                    &quot;kind&quot;: &quot;A String&quot;, # Kubernetes Kind
                    &quot;version&quot;: &quot;A String&quot;, # Kubernetes Version
                  },
                  &quot;resourceName&quot;: &quot;A String&quot;, # Metadata name of the resource that is causing an error
                  &quot;resourceNamespace&quot;: &quot;A String&quot;, # Namespace of the resource that is causing an error
                  &quot;sourcePath&quot;: &quot;A String&quot;, # Path in the git repo of the erroneous config
                },
              ],
            },
          ],
          &quot;importToken&quot;: &quot;A String&quot;, # Token indicating the state of the importer.
          &quot;lastSync&quot;: &quot;A String&quot;, # Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo. The time format is specified in https://golang.org/pkg/time/#Time.String
          &quot;lastSyncTime&quot;: &quot;A String&quot;, # Timestamp type of when ACM last successfully synced the repo.
          &quot;sourceToken&quot;: &quot;A String&quot;, # Token indicating the state of the repo.
          &quot;syncToken&quot;: &quot;A String&quot;, # Token indicating the state of the syncer.
        },
        &quot;version&quot;: { # Specific versioning information pertaining to ConfigSync&#x27;s Pods. # Output only. The version of ConfigSync deployed.
          &quot;admissionWebhook&quot;: &quot;A String&quot;, # Version of the deployed admission-webhook pod.
          &quot;gitSync&quot;: &quot;A String&quot;, # Version of the deployed git-sync pod.
          &quot;importer&quot;: &quot;A String&quot;, # Version of the deployed importer pod.
          &quot;monitor&quot;: &quot;A String&quot;, # Version of the deployed monitor pod.
          &quot;otelCollector&quot;: &quot;A String&quot;, # Version of the deployed otel-collector pod
          &quot;reconcilerManager&quot;: &quot;A String&quot;, # Version of the deployed reconciler-manager pod.
          &quot;resourceGroupControllerManager&quot;: &quot;A String&quot;, # Version of the deployed resource-group-controller-manager pod
          &quot;rootReconciler&quot;: &quot;A String&quot;, # Version of the deployed reconciler container in root-reconciler pod.
          &quot;syncer&quot;: &quot;A String&quot;, # Version of the deployed syncer pod.
        },
      },
      &quot;hierarchyControllerState&quot;: { # State for Hierarchy Controller. # Output only. Hierarchy Controller status.
        &quot;state&quot;: { # Deployment state for Hierarchy Controller # The deployment state for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1).
          &quot;hnc&quot;: &quot;A String&quot;, # The deployment state for open source HNC (e.g. v0.7.0-hc.0).
        },
        &quot;version&quot;: { # Version for Hierarchy Controller. # The version for Hierarchy Controller.
          &quot;extension&quot;: &quot;A String&quot;, # Version for Hierarchy Controller extension.
          &quot;hnc&quot;: &quot;A String&quot;, # Version for open source HNC.
        },
      },
      &quot;kubernetesApiServerVersion&quot;: &quot;A String&quot;, # Output only. The Kubernetes API server version of the cluster.
      &quot;membershipSpec&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Output only. Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state.
        &quot;binauthz&quot;: { # Configuration for Binauthz. # Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set.
          &quot;enabled&quot;: True or False, # Whether binauthz is enabled in this cluster.
        },
        &quot;cluster&quot;: &quot;A String&quot;, # Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster&#x27;s fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.
        &quot;configSync&quot;: { # Configuration for Config Sync # Optional. Config Sync configuration for the cluster.
          &quot;deploymentOverrides&quot;: [ # Optional. Configuration for deployment overrides.
            { # Configuration for a deployment override.
              &quot;containers&quot;: [ # Optional. The containers of the deployment resource to be overridden.
                { # Configuration for a container override.
                  &quot;containerName&quot;: &quot;A String&quot;, # Required. The name of the container.
                  &quot;cpuLimit&quot;: &quot;A String&quot;, # Optional. The cpu limit of the container.
                  &quot;cpuRequest&quot;: &quot;A String&quot;, # Optional. The cpu request of the container.
                  &quot;memoryLimit&quot;: &quot;A String&quot;, # Optional. The memory limit of the container.
                  &quot;memoryRequest&quot;: &quot;A String&quot;, # Optional. The memory request of the container.
                },
              ],
              &quot;deploymentName&quot;: &quot;A String&quot;, # Required. The name of the deployment resource to be overridden.
              &quot;deploymentNamespace&quot;: &quot;A String&quot;, # Required. The namespace of the deployment resource to be overridden.
            },
          ],
          &quot;enabled&quot;: True or False, # Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
          &quot;git&quot;: { # Git repo configuration for a single cluster. # Optional. Git repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;httpsProxy&quot;: &quot;A String&quot;, # Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount, githubapp or none. The validation of this is case-sensitive.
            &quot;syncBranch&quot;: &quot;A String&quot;, # Optional. The branch of the repository to sync from. Default: master.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The URL of the Git repository to use as the source of truth.
            &quot;syncRev&quot;: &quot;A String&quot;, # Optional. Git revision (tag or hash) to check out. Default HEAD.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;metricsGcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.
          &quot;oci&quot;: { # OCI repo configuration for a single cluster. # Optional. OCI repo configuration for the cluster.
            &quot;gcpServiceAccountEmail&quot;: &quot;A String&quot;, # Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.
            &quot;policyDir&quot;: &quot;A String&quot;, # Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.
            &quot;secretType&quot;: &quot;A String&quot;, # Required. Type of secret configured for access to the OCI repo. Must be one of gcenode, gcpserviceaccount, k8sserviceaccount or none. The validation of this is case-sensitive.
            &quot;syncRepo&quot;: &quot;A String&quot;, # Required. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
            &quot;syncWaitSecs&quot;: &quot;A String&quot;, # Optional. Period in seconds between consecutive syncs. Default: 15.
          },
          &quot;preventDrift&quot;: True or False, # Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
          &quot;sourceFormat&quot;: &quot;A String&quot;, # Optional. Specifies whether the Config Sync Repo is in &quot;hierarchical&quot; or &quot;unstructured&quot; mode.
          &quot;stopSyncing&quot;: True or False, # Optional. Set to true to stop syncing configs for a single cluster. Default to false.
        },
        &quot;hierarchyController&quot;: { # Configuration for Hierarchy Controller. # Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead.
          &quot;enableHierarchicalResourceQuota&quot;: True or False, # Whether hierarchical resource quota is enabled in this cluster.
          &quot;enablePodTreeLabels&quot;: True or False, # Whether pod tree labels are enabled in this cluster.
          &quot;enabled&quot;: True or False, # Whether Hierarchy Controller is enabled in this cluster.
        },
        &quot;management&quot;: &quot;A String&quot;, # Optional. Enables automatic Feature management.
        &quot;policyController&quot;: { # Configuration for Policy Controller # Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead.
          &quot;auditIntervalSeconds&quot;: &quot;A String&quot;, # Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.
          &quot;enabled&quot;: True or False, # Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.
          &quot;exemptableNamespaces&quot;: [ # The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.
            &quot;A String&quot;,
          ],
          &quot;logDeniesEnabled&quot;: True or False, # Logs all denies and dry run failures.
          &quot;monitoring&quot;: { # PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [&quot;cloudmonitoring&quot;, &quot;prometheus&quot;] # Monitoring specifies the configuration of monitoring.
            &quot;backends&quot;: [ # Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.
              &quot;A String&quot;,
            ],
          },
          &quot;mutationEnabled&quot;: True or False, # Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.
          &quot;referentialRulesEnabled&quot;: True or False, # Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.
          &quot;templateLibraryInstalled&quot;: True or False, # Installs the default template library along with Policy Controller.
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last time this membership spec was updated.
        },
        &quot;version&quot;: &quot;A String&quot;, # Optional. Version of ACM installed.
      },
      &quot;operatorState&quot;: { # State information for an ACM&#x27;s Operator. # Output only. Current install status of ACM&#x27;s Operator.
        &quot;deploymentState&quot;: &quot;A String&quot;, # The state of the Operator&#x27;s deployment.
        &quot;errors&quot;: [ # Install errors.
          { # Errors pertaining to the installation of ACM.
            &quot;errorMessage&quot;: &quot;A String&quot;, # A string representing the user facing error message.
          },
        ],
        &quot;version&quot;: &quot;A String&quot;, # The semenatic version number of the operator.
      },
      &quot;policyControllerState&quot;: { # State for PolicyControllerState. # Output only. PolicyController status.
        &quot;deploymentState&quot;: { # State of Policy Controller installation. # The state about the policy controller installation.
          &quot;gatekeeperAudit&quot;: &quot;A String&quot;, # Status of gatekeeper-audit deployment.
          &quot;gatekeeperControllerManagerState&quot;: &quot;A String&quot;, # Status of gatekeeper-controller-manager pod.
          &quot;gatekeeperMutation&quot;: &quot;A String&quot;, # Status of the pod serving the mutation webhook.
        },
        &quot;migration&quot;: { # State for the migration of PolicyController from ACM -&gt; PoCo Hub. # Record state of ACM -&gt; PoCo Hub migration for this feature.
          &quot;copyTime&quot;: &quot;A String&quot;, # Last time this membership spec was copied to PoCo feature.
          &quot;stage&quot;: &quot;A String&quot;, # Stage of the migration.
        },
        &quot;version&quot;: { # The build version of Gatekeeper Policy Controller is using. # The version of Gatekeeper Policy Controller deployed.
          &quot;version&quot;: &quot;A String&quot;, # The gatekeeper image tag that is composed of ACM version, git tag, build number.
        },
      },
    },
    &quot;identityservice&quot;: { # **IdentityService**: State for a single membership, analyzed and reported by feature controller. # Identity service state
      &quot;failureReason&quot;: &quot;A String&quot;, # The reason of the failure.
      &quot;installedVersion&quot;: &quot;A String&quot;, # Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.
      &quot;memberConfig&quot;: { # **IdentityService**: Configuration for a single membership. # Last reconciled membership configuration
        &quot;authMethods&quot;: [ # A member may support multiple auth methods.
          { # Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.
            &quot;azureadConfig&quot;: { # Configuration for the AzureAD Auth flow. # AzureAD specific Configuration.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for the registered client application that makes authentication requests to the Azure AD identity provider.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted AzureAD client secret.
              &quot;groupFormat&quot;: &quot;A String&quot;, # Optional. Format of the AzureAD groups that the client wants for auth.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # The redirect URL that kubectl uses for authorization.
              &quot;tenant&quot;: &quot;A String&quot;, # Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.
              &quot;userClaim&quot;: &quot;A String&quot;, # Optional. Claim in the AzureAD ID Token that holds the user details.
            },
            &quot;googleConfig&quot;: { # Configuration for the Google Plugin Auth flow. # GoogleConfig specific configuration
              &quot;disable&quot;: True or False, # Disable automatic configuration of Google Plugin on supported platforms.
            },
            &quot;ldapConfig&quot;: { # Configuration for the LDAP Auth flow. # LDAP specific configuration.
              &quot;group&quot;: { # Contains the properties for locating and authenticating groups in the directory. # Optional. Contains the properties for locating and authenticating groups in the directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for group entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to &quot;(objectClass=Group)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. The identifying name of each group a user belongs to. For example, if this is set to &quot;distinguishedName&quot; then RBACs and other group expectations should be written as full DNs. This defaults to &quot;distinguishedName&quot;.
              },
              &quot;server&quot;: { # Server settings for the external LDAP server. # Required. Server settings for the external LDAP server.
                &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the &quot;ldaps&quot; and &quot;startTLS&quot; connections.
                &quot;connectionType&quot;: &quot;A String&quot;, # Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.
                &quot;host&quot;: &quot;A String&quot;, # Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, &quot;ldap.server.example&quot; or &quot;10.10.10.10:389&quot;.
              },
              &quot;serviceAccount&quot;: { # Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate. # Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.
                &quot;simpleBindCredentials&quot;: { # The structure holds the LDAP simple binding credential. # Credentials for basic auth.
                  &quot;dn&quot;: &quot;A String&quot;, # Required. The distinguished name(DN) of the service account object/user.
                  &quot;encryptedPassword&quot;: &quot;A String&quot;, # Output only. The encrypted password of the service account object/user.
                  &quot;password&quot;: &quot;A String&quot;, # Required. Input only. The password of the service account object/user.
                },
              },
              &quot;user&quot;: { # Defines where users exist in the LDAP directory. # Required. Defines where users exist in the LDAP directory.
                &quot;baseDn&quot;: &quot;A String&quot;, # Required. The location of the subtree in the LDAP directory to search for user entries.
                &quot;filter&quot;: &quot;A String&quot;, # Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to &quot;(objectClass=User)&quot;.
                &quot;idAttribute&quot;: &quot;A String&quot;, # Optional. Determines which attribute to use as the user&#x27;s identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to &quot;sAMAccountName&quot; and identifierAttribute to &quot;userPrincipalName&quot; would allow a user to login as &quot;bsmith&quot;, but actual RBAC policies for the user would be written as &quot;bsmith@example.com&quot;. Using &quot;userPrincipalName&quot; is recommended since this will be unique for each user. This defaults to &quot;userPrincipalName&quot;.
                &quot;loginAttribute&quot;: &quot;A String&quot;, # Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. &quot;(=)&quot; and is combined with the optional filter field. This defaults to &quot;userPrincipalName&quot;.
              },
            },
            &quot;name&quot;: &quot;A String&quot;, # Identifier for auth config.
            &quot;oidcConfig&quot;: { # Configuration for OIDC Auth flow. # OIDC specific configuration.
              &quot;certificateAuthorityData&quot;: &quot;A String&quot;, # PEM-encoded CA for OIDC provider.
              &quot;clientId&quot;: &quot;A String&quot;, # ID for OIDC client application.
              &quot;clientSecret&quot;: &quot;A String&quot;, # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
              &quot;deployCloudConsoleProxy&quot;: True or False, # Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.
              &quot;enableAccessToken&quot;: True or False, # Enable access token.
              &quot;encryptedClientSecret&quot;: &quot;A String&quot;, # Output only. Encrypted OIDC Client secret
              &quot;extraParams&quot;: &quot;A String&quot;, # Comma-separated list of key-value pairs.
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to group name.
              &quot;groupsClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds group information.
              &quot;issuerUri&quot;: &quot;A String&quot;, # URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.
              &quot;kubectlRedirectUri&quot;: &quot;A String&quot;, # Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.
              &quot;scopes&quot;: &quot;A String&quot;, # Comma-separated list of identifiers.
              &quot;userClaim&quot;: &quot;A String&quot;, # Claim in OIDC ID token that holds username.
              &quot;userPrefix&quot;: &quot;A String&quot;, # Prefix to prepend to user name.
            },
            &quot;proxy&quot;: &quot;A String&quot;, # Proxy server address to use for auth method.
            &quot;samlConfig&quot;: { # Configuration for the SAML Auth flow. # SAML specific configuration.
              &quot;attributeMapping&quot;: { # Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is &quot;attribute.nickname&quot; and `value` is &quot;assertion.nickname&quot;.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;groupPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to group name.
              &quot;groupsAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).
              &quot;identityProviderCertificates&quot;: [ # Required. The list of IdP certificates to validate the SAML response against.
                &quot;A String&quot;,
              ],
              &quot;identityProviderId&quot;: &quot;A String&quot;, # Required. The entity ID of the SAML IdP.
              &quot;identityProviderSsoUri&quot;: &quot;A String&quot;, # Required. The URI where the SAML IdP exposes the SSO service.
              &quot;userAttribute&quot;: &quot;A String&quot;, # Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).
              &quot;userPrefix&quot;: &quot;A String&quot;, # Optional. Prefix to prepend to user name.
            },
          },
        ],
        &quot;identityServiceOptions&quot;: { # Holds non-protocol-related configuration options. # Optional. non-protocol-related configuration options.
          &quot;diagnosticInterface&quot;: { # Configuration options for the AIS diagnostic interface. # Configuration options for the AIS diagnostic interface.
            &quot;enabled&quot;: True or False, # Determines whether to enable the diagnostic interface.
            &quot;expirationTime&quot;: &quot;A String&quot;, # Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.
          },
          &quot;sessionDuration&quot;: &quot;A String&quot;, # Determines the lifespan of STS tokens issued by Anthos Identity Service.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # Deployment state on this member
    },
    &quot;metering&quot;: { # **Metering**: State for a single membership, analyzed and reported by feature controller. # Metering state
      &quot;lastMeasurementTime&quot;: &quot;A String&quot;, # The time stamp of the most recent measurement of the number of vCPUs in the cluster.
      &quot;preciseLastMeasuredClusterVcpuCapacity&quot;: 3.14, # The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).
    },
    &quot;policycontroller&quot;: { # **Policy Controller**: State for a single cluster. # Policy Controller state
      &quot;componentStates&quot;: { # Currently these include (also serving as map keys): 1. &quot;admission&quot; 2. &quot;audit&quot; 3. &quot;mutation&quot;
        &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;policyContentState&quot;: { # The state of the policy controller policy content # The overall content state observed by the Hub Feature controller.
        &quot;bundleStates&quot;: { # The state of the any bundles included in the chosen version of the manifest
          &quot;a_key&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller.
            &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
            &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
          },
        },
        &quot;referentialSyncConfigState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user.
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
        &quot;templateLibraryState&quot;: { # OnClusterState represents the state of a sub-component of Policy Controller. # The state of the template library
          &quot;details&quot;: &quot;A String&quot;, # Surface potential errors or information logs.
          &quot;state&quot;: &quot;A String&quot;, # The lifecycle state of this component.
        },
      },
      &quot;state&quot;: &quot;A String&quot;, # The overall Policy Controller lifecycle state observed by the Hub Feature controller.
    },
    &quot;rbacrolebindingactuation&quot;: { # **RBAC RoleBinding Actuation**: A membership-specific Feature state for the RBACRoleBindingActuation fleet feature. # RBAC Role Binding Actuation state
      &quot;rbacrolebindingStates&quot;: { # Output only. The state of RBACRoleBindings using custom roles that exist on the cluster, keyed by RBACRoleBinding resource name with format: projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}.
        &quot;a_key&quot;: { # RBACRoleBindingState is the status of an RBACRoleBinding which exists on a membership.
          &quot;description&quot;: &quot;A String&quot;, # The reason for the failure.
          &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the RBACRoleBinding.
          &quot;updateTime&quot;: &quot;A String&quot;, # The time the RBACRoleBinding status was last updated.
        },
      },
    },
    &quot;servicemesh&quot;: { # **Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller. # Service mesh state
      &quot;analysisMessages&quot;: [ # Output only. Results of running Service Mesh analyzers.
        { # AnalysisMessage is a single message produced by an analyzer, and it used to communicate to the end user about the state of their Service Mesh configuration.
          &quot;args&quot;: { # A UI can combine these args with a template (based on message_base.type) to produce an internationalized message.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;description&quot;: &quot;A String&quot;, # A human readable description of what the error means. It is suitable for non-internationalize display purposes.
          &quot;messageBase&quot;: { # AnalysisMessageBase describes some common information that is needed for all messages. # Details common to all types of Istio and ServiceMesh analysis messages.
            &quot;documentationUrl&quot;: &quot;A String&quot;, # A url pointing to the Service Mesh or Istio documentation for this specific error type.
            &quot;level&quot;: &quot;A String&quot;, # Represents how severe a message is.
            &quot;type&quot;: { # A unique identifier for the type of message. Display_name is intended to be human-readable, code is intended to be machine readable. There should be a one-to-one mapping between display_name and code. (i.e. do not re-use display_names or codes between message types.) See istio.analysis.v1alpha1.AnalysisMessageBase.Type # Represents the specific type of a message.
              &quot;code&quot;: &quot;A String&quot;, # A 7 character code matching `^IST[0-9]{4}$` or `^ASM[0-9]{4}$`, intended to uniquely identify the message type. (e.g. &quot;IST0001&quot; is mapped to the &quot;InternalError&quot; message type.)
              &quot;displayName&quot;: &quot;A String&quot;, # A human-readable name for the message type. e.g. &quot;InternalError&quot;, &quot;PodMissingProxy&quot;. This should be the same for all messages of the same type. (This corresponds to the `name` field in open-source Istio.)
            },
          },
          &quot;resourcePaths&quot;: [ # A list of strings specifying the resource identifiers that were the cause of message generation. A &quot;path&quot; here may be: * MEMBERSHIP_ID if the cause is a specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the cause is a resource in a cluster
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;conditions&quot;: [ # Output only. List of conditions reported for this membership.
        { # Condition being reported.
          &quot;code&quot;: &quot;A String&quot;, # Unique identifier of the condition which describes the condition recognizable to the user.
          &quot;details&quot;: &quot;A String&quot;, # A short summary about the issue.
          &quot;documentationLink&quot;: &quot;A String&quot;, # Links contains actionable information.
          &quot;severity&quot;: &quot;A String&quot;, # Severity level of the condition.
        },
      ],
      &quot;configApiVersion&quot;: &quot;A String&quot;, # The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.
      &quot;controlPlaneManagement&quot;: { # Status of control plane management. # Output only. Status of control plane management
        &quot;details&quot;: [ # Explanation of state.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;implementation&quot;: &quot;A String&quot;, # Output only. Implementation of managed control plane.
        &quot;state&quot;: &quot;A String&quot;, # LifecycleState of control plane management.
      },
      &quot;dataPlaneManagement&quot;: { # Status of data plane management. Only reported per-member. # Output only. Status of data plane management.
        &quot;details&quot;: [ # Explanation of the status.
          { # Structured and human-readable details for a status.
            &quot;code&quot;: &quot;A String&quot;, # A machine-readable code that further describes a broad status.
            &quot;details&quot;: &quot;A String&quot;, # Human-readable explanation of code.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # Lifecycle status of data plane management.
      },
    },
    &quot;state&quot;: { # High-level state of a MembershipFeature. # The high-level state of this MembershipFeature.
      &quot;code&quot;: &quot;A String&quot;, # The high-level, machine-readable status of this MembershipFeature.
      &quot;description&quot;: &quot;A String&quot;, # A human-readable description of the current status.
      &quot;updateTime&quot;: &quot;A String&quot;, # The time this status and any related Feature-specific details were updated.
    },
  },
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. When the MembershipFeature resource was last updated.
}

  allowMissing: boolean, Optional. If set to true, and the MembershipFeature is not found, a new MembershipFeature will be created. In this situation, `update_mask` is ignored.
  requestId: string, Idempotent request UUID.
  updateMask: string, Required. Mask of fields to update.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

</body></html>