All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.api.services.gkebackup.v1.model.SubstitutionRule Maven / Gradle / Ivy

There is a newer version: v1-rev20250101-2.0.0
Show newest version
/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.gkebackup.v1.model;

/**
 * A transformation rule to be applied against Kubernetes resources as they are selected for
 * restoration from a Backup. A rule contains both filtering logic (which resources are subject to
 * substitution) and substitution logic.
 *
 * 

This is the Java data model class that specifies how to parse/serialize into the JSON that is * transmitted over HTTP when working with the Backup for GKE API. For a detailed explanation see: * https://developers.google.com/api-client-library/java/google-http-java-client/json *

* * @author Google, Inc. */ @SuppressWarnings("javadoc") public final class SubstitutionRule extends com.google.api.client.json.GenericJson { /** * Optional. This is the new value to set for any fields that pass the filtering and selection * criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or * set it to the empty string (""). * The value may be {@code null}. */ @com.google.api.client.util.Key private java.lang.String newValue; /** * Optional. (Filtering parameter) This is a [regular expression] * (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched * by the target_json_path expression (and must also have passed the previous filters). * Substitution will not be performed against fields whose value does not match this expression. * If this field is NOT specified, then ALL fields matched by the target_json_path expression will * undergo substitution. Note that an empty (e.g., "", rather than unspecified) value for this * field will only match empty fields. * The value may be {@code null}. */ @com.google.api.client.util.Key private java.lang.String originalValuePattern; /** * Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the * listed "types". If this field is not provided, no type filtering will be performed (all * resources of all types matching previous filtering parameters will be candidates for * substitution). * The value may be {@code null}. */ @com.google.api.client.util.Key private java.util.List targetGroupKinds; static { // hack to force ProGuard to consider GroupKind used, since otherwise it would be stripped out // see https://github.com/google/google-api-java-client/issues/543 com.google.api.client.util.Data.nullOf(GroupKind.class); } /** * Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) * expression that matches specific fields of candidate resources and it operates as both a * filtering parameter (resources that are not matched with this expression will not be candidates * for substitution) as well as a field identifier (identifies exactly which fields out of the * candidate resources will be modified). * The value may be {@code null}. */ @com.google.api.client.util.Key private java.lang.String targetJsonPath; /** * Optional. (Filtering parameter) Any resource subject to substitution must be contained within * one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no * namespace filtering will be performed (all resources in all Namespaces, including all cluster- * scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced * resources in the same rule, use an empty string ("") as one of the target namespaces. * The value may be {@code null}. */ @com.google.api.client.util.Key private java.util.List targetNamespaces; /** * Optional. This is the new value to set for any fields that pass the filtering and selection * criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or * set it to the empty string (""). * @return value or {@code null} for none */ public java.lang.String getNewValue() { return newValue; } /** * Optional. This is the new value to set for any fields that pass the filtering and selection * criteria. To remove a value from a Kubernetes resource, either leave this field unspecified, or * set it to the empty string (""). * @param newValue newValue or {@code null} for none */ public SubstitutionRule setNewValue(java.lang.String newValue) { this.newValue = newValue; return this; } /** * Optional. (Filtering parameter) This is a [regular expression] * (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched * by the target_json_path expression (and must also have passed the previous filters). * Substitution will not be performed against fields whose value does not match this expression. * If this field is NOT specified, then ALL fields matched by the target_json_path expression will * undergo substitution. Note that an empty (e.g., "", rather than unspecified) value for this * field will only match empty fields. * @return value or {@code null} for none */ public java.lang.String getOriginalValuePattern() { return originalValuePattern; } /** * Optional. (Filtering parameter) This is a [regular expression] * (https://en.wikipedia.org/wiki/Regular_expression) that is compared against the fields matched * by the target_json_path expression (and must also have passed the previous filters). * Substitution will not be performed against fields whose value does not match this expression. * If this field is NOT specified, then ALL fields matched by the target_json_path expression will * undergo substitution. Note that an empty (e.g., "", rather than unspecified) value for this * field will only match empty fields. * @param originalValuePattern originalValuePattern or {@code null} for none */ public SubstitutionRule setOriginalValuePattern(java.lang.String originalValuePattern) { this.originalValuePattern = originalValuePattern; return this; } /** * Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the * listed "types". If this field is not provided, no type filtering will be performed (all * resources of all types matching previous filtering parameters will be candidates for * substitution). * @return value or {@code null} for none */ public java.util.List getTargetGroupKinds() { return targetGroupKinds; } /** * Optional. (Filtering parameter) Any resource subject to substitution must belong to one of the * listed "types". If this field is not provided, no type filtering will be performed (all * resources of all types matching previous filtering parameters will be candidates for * substitution). * @param targetGroupKinds targetGroupKinds or {@code null} for none */ public SubstitutionRule setTargetGroupKinds(java.util.List targetGroupKinds) { this.targetGroupKinds = targetGroupKinds; return this; } /** * Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) * expression that matches specific fields of candidate resources and it operates as both a * filtering parameter (resources that are not matched with this expression will not be candidates * for substitution) as well as a field identifier (identifies exactly which fields out of the * candidate resources will be modified). * @return value or {@code null} for none */ public java.lang.String getTargetJsonPath() { return targetJsonPath; } /** * Required. This is a [JSONPath] (https://kubernetes.io/docs/reference/kubectl/jsonpath/) * expression that matches specific fields of candidate resources and it operates as both a * filtering parameter (resources that are not matched with this expression will not be candidates * for substitution) as well as a field identifier (identifies exactly which fields out of the * candidate resources will be modified). * @param targetJsonPath targetJsonPath or {@code null} for none */ public SubstitutionRule setTargetJsonPath(java.lang.String targetJsonPath) { this.targetJsonPath = targetJsonPath; return this; } /** * Optional. (Filtering parameter) Any resource subject to substitution must be contained within * one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no * namespace filtering will be performed (all resources in all Namespaces, including all cluster- * scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced * resources in the same rule, use an empty string ("") as one of the target namespaces. * @return value or {@code null} for none */ public java.util.List getTargetNamespaces() { return targetNamespaces; } /** * Optional. (Filtering parameter) Any resource subject to substitution must be contained within * one of the listed Kubernetes Namespace in the Backup. If this field is not provided, no * namespace filtering will be performed (all resources in all Namespaces, including all cluster- * scoped resources, will be candidates for substitution). To mix cluster-scoped and namespaced * resources in the same rule, use an empty string ("") as one of the target namespaces. * @param targetNamespaces targetNamespaces or {@code null} for none */ public SubstitutionRule setTargetNamespaces(java.util.List targetNamespaces) { this.targetNamespaces = targetNamespaces; return this; } @Override public SubstitutionRule set(String fieldName, Object value) { return (SubstitutionRule) super.set(fieldName, value); } @Override public SubstitutionRule clone() { return (SubstitutionRule) super.clone(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy