text:
/*
 * 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.file.v1;

/**
 * Service definition for CloudFilestore (v1).
 *
 *

 * The Cloud Filestore API is used for creating and managing cloud file servers.
 *

 *
 *

 * For more information about this service, see the
 * API Documentation
 *

 *
 *

 * This service uses {@link CloudFilestoreRequestInitializer} to initialize global parameters via its
 * {@link Builder}.
 *

 *
 * @since 1.3
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public class CloudFilestore extends com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient {

  // Note: Leave this static initializer at the top of the file.
  static {
    com.google.api.client.util.Preconditions.checkState(
        com.google.api.client.googleapis.GoogleUtils.MAJOR_VERSION == 1 &&
        com.google.api.client.googleapis.GoogleUtils.MINOR_VERSION >= 15,
        "You are currently running with version %s of google-api-client. " +
        "You need at least version 1.15 of google-api-client to run version " +
        "1.27.0 of the Cloud Filestore API library.", com.google.api.client.googleapis.GoogleUtils.VERSION);
  }

  /**
   * The default encoded root URL of the service. This is determined when the library is generated
   * and normally should not be changed.
   *
   * @since 1.7
   */
  public static final String DEFAULT_ROOT_URL = "https://file.googleapis.com/";

  /**
   * The default encoded service path of the service. This is determined when the library is
   * generated and normally should not be changed.
   *
   * @since 1.7
   */
  public static final String DEFAULT_SERVICE_PATH = "";

  /**
   * The default encoded batch path of the service. This is determined when the library is
   * generated and normally should not be changed.
   *
   * @since 1.23
   */
  public static final String DEFAULT_BATCH_PATH = "batch";

  /**
   * The default encoded base URL of the service. This is determined when the library is generated
   * and normally should not be changed.
   */
  public static final String DEFAULT_BASE_URL = DEFAULT_ROOT_URL + DEFAULT_SERVICE_PATH;

  /**
   * Constructor.
   *
   *

   * Use {@link Builder} if you need to specify any of the optional parameters.
   *

   *
   * @param transport HTTP transport, which should normally be:
   *

   *
Google App Engine:
   *        {@code com.google.api.client.extensions.appengine.http.UrlFetchTransport}

   *
Android: {@code newCompatibleTransport} from
   *        {@code com.google.api.client.extensions.android.http.AndroidHttp}

   *
Java: {@link com.google.api.client.googleapis.javanet.GoogleNetHttpTransport#newTrustedTransport()}
   *

   *

   * @param jsonFactory JSON factory, which may be:
   *

   *
Jackson: {@code com.google.api.client.json.jackson2.JacksonFactory}

   *
Google GSON: {@code com.google.api.client.json.gson.GsonFactory}

   *
Android Honeycomb or higher:
   *        {@code com.google.api.client.extensions.android.json.AndroidJsonFactory}

   *

   * @param httpRequestInitializer HTTP request initializer or {@code null} for none
   * @since 1.7
   */
  public CloudFilestore(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory,
      com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
    this(new Builder(transport, jsonFactory, httpRequestInitializer));
  }

  /**
   * @param builder builder
   */
  CloudFilestore(Builder builder) {
    super(builder);
  }

  @Override
  protected void initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest<?> httpClientRequest) throws java.io.IOException {
    super.initialize(httpClientRequest);
  }

  /**
   * An accessor for creating requests from the Projects collection.
   *
   *
The typical use is:

   *

   *   {@code CloudFilestore file = new CloudFilestore(...);}
   *   {@code CloudFilestore.Projects.List request = file.projects().list(parameters ...)}
   *

   *
   * @return the resource collection
   */
  public Projects projects() {
    return new Projects();
  }

  /**
   * The "projects" collection of methods.
   */
  public class Projects {

    /**
     * An accessor for creating requests from the Locations collection.
     *
     *
The typical use is:

     *

     *   {@code CloudFilestore file = new CloudFilestore(...);}
     *   {@code CloudFilestore.Locations.List request = file.locations().list(parameters ...)}
     *

     *
     * @return the resource collection
     */
    public Locations locations() {
      return new Locations();
    }

    /**
     * The "locations" collection of methods.
     */
    public class Locations {

      /**
       * Gets information about a location.
       *
       * Create a request for the method "locations.get".
       *
       * This request holds the parameters needed by the file server.  After setting any optional
       * parameters, call the {@link Get#execute()} method to invoke the remote operation.
       *
       * @param name Resource name for the location.
       * @return the request
       */
      public Get get(java.lang.String name) throws java.io.IOException {
        Get result = new Get(name);
        initialize(result);
        return result;
      }

      public class Get extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Location> {

        private static final String REST_PATH = "v1/{+name}";

        private final java.util.regex.Pattern NAME_PATTERN =
            java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+$");

        /**
         * Gets information about a location.
         *
         * Create a request for the method "locations.get".
         *
         * This request holds the parameters needed by the the file server.  After setting any optional
         * parameters, call the {@link Get#execute()} method to invoke the remote operation.
 {@link
         * Get#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
         * called to initialize this instance immediately after invoking the constructor.

         *
         * @param name Resource name for the location.
         * @since 1.13
         */
        protected Get(java.lang.String name) {
          super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.Location.class);
          this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
          if (!getSuppressPatternChecks()) {
            com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                "Parameter name must conform to the pattern " +
                "^projects/[^/]+/locations/[^/]+$");
          }
        }

        @Override
        public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
          return super.executeUsingHead();
        }

        @Override
        public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
          return super.buildHttpRequestUsingHead();
        }

        @Override
        public Get set$Xgafv(java.lang.String $Xgafv) {
          return (Get) super.set$Xgafv($Xgafv);
        }

        @Override
        public Get setAccessToken(java.lang.String accessToken) {
          return (Get) super.setAccessToken(accessToken);
        }

        @Override
        public Get setAlt(java.lang.String alt) {
          return (Get) super.setAlt(alt);
        }

        @Override
        public Get setCallback(java.lang.String callback) {
          return (Get) super.setCallback(callback);
        }

        @Override
        public Get setFields(java.lang.String fields) {
          return (Get) super.setFields(fields);
        }

        @Override
        public Get setKey(java.lang.String key) {
          return (Get) super.setKey(key);
        }

        @Override
        public Get setOauthToken(java.lang.String oauthToken) {
          return (Get) super.setOauthToken(oauthToken);
        }

        @Override
        public Get setPrettyPrint(java.lang.Boolean prettyPrint) {
          return (Get) super.setPrettyPrint(prettyPrint);
        }

        @Override
        public Get setQuotaUser(java.lang.String quotaUser) {
          return (Get) super.setQuotaUser(quotaUser);
        }

        @Override
        public Get setUploadType(java.lang.String uploadType) {
          return (Get) super.setUploadType(uploadType);
        }

        @Override
        public Get setUploadProtocol(java.lang.String uploadProtocol) {
          return (Get) super.setUploadProtocol(uploadProtocol);
        }

        /** Resource name for the location. */
        @com.google.api.client.util.Key
        private java.lang.String name;

        /** Resource name for the location.
         */
        public java.lang.String getName() {
          return name;
        }

        /** Resource name for the location. */
        public Get setName(java.lang.String name) {
          if (!getSuppressPatternChecks()) {
            com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                "Parameter name must conform to the pattern " +
                "^projects/[^/]+/locations/[^/]+$");
          }
          this.name = name;
          return this;
        }

        @Override
        public Get set(String parameterName, Object value) {
          return (Get) super.set(parameterName, value);
        }
      }
      /**
       * Lists information about the supported locations for this service.
       *
       * Create a request for the method "locations.list".
       *
       * This request holds the parameters needed by the file server.  After setting any optional
       * parameters, call the {@link List#execute()} method to invoke the remote operation.
       *
       * @param name The resource that owns the locations collection, if applicable.
       * @return the request
       */
      public List list(java.lang.String name) throws java.io.IOException {
        List result = new List(name);
        initialize(result);
        return result;
      }

      public class List extends CloudFilestoreRequest<com.google.api.services.file.v1.model.ListLocationsResponse> {

        private static final String REST_PATH = "v1/{+name}/locations";

        private final java.util.regex.Pattern NAME_PATTERN =
            java.util.regex.Pattern.compile("^projects/[^/]+$");

        /**
         * Lists information about the supported locations for this service.
         *
         * Create a request for the method "locations.list".
         *
         * This request holds the parameters needed by the the file server.  After setting any optional
         * parameters, call the {@link List#execute()} method to invoke the remote operation.
 {@link
         * List#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
         * called to initialize this instance immediately after invoking the constructor.

         *
         * @param name The resource that owns the locations collection, if applicable.
         * @since 1.13
         */
        protected List(java.lang.String name) {
          super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.ListLocationsResponse.class);
          this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
          if (!getSuppressPatternChecks()) {
            com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                "Parameter name must conform to the pattern " +
                "^projects/[^/]+$");
          }
        }

        @Override
        public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
          return super.executeUsingHead();
        }

        @Override
        public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
          return super.buildHttpRequestUsingHead();
        }

        @Override
        public List set$Xgafv(java.lang.String $Xgafv) {
          return (List) super.set$Xgafv($Xgafv);
        }

        @Override
        public List setAccessToken(java.lang.String accessToken) {
          return (List) super.setAccessToken(accessToken);
        }

        @Override
        public List setAlt(java.lang.String alt) {
          return (List) super.setAlt(alt);
        }

        @Override
        public List setCallback(java.lang.String callback) {
          return (List) super.setCallback(callback);
        }

        @Override
        public List setFields(java.lang.String fields) {
          return (List) super.setFields(fields);
        }

        @Override
        public List setKey(java.lang.String key) {
          return (List) super.setKey(key);
        }

        @Override
        public List setOauthToken(java.lang.String oauthToken) {
          return (List) super.setOauthToken(oauthToken);
        }

        @Override
        public List setPrettyPrint(java.lang.Boolean prettyPrint) {
          return (List) super.setPrettyPrint(prettyPrint);
        }

        @Override
        public List setQuotaUser(java.lang.String quotaUser) {
          return (List) super.setQuotaUser(quotaUser);
        }

        @Override
        public List setUploadType(java.lang.String uploadType) {
          return (List) super.setUploadType(uploadType);
        }

        @Override
        public List setUploadProtocol(java.lang.String uploadProtocol) {
          return (List) super.setUploadProtocol(uploadProtocol);
        }

        /** The resource that owns the locations collection, if applicable. */
        @com.google.api.client.util.Key
        private java.lang.String name;

        /** The resource that owns the locations collection, if applicable.
         */
        public java.lang.String getName() {
          return name;
        }

        /** The resource that owns the locations collection, if applicable. */
        public List setName(java.lang.String name) {
          if (!getSuppressPatternChecks()) {
            com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                "Parameter name must conform to the pattern " +
                "^projects/[^/]+$");
          }
          this.name = name;
          return this;
        }

        /** The standard list filter. */
        @com.google.api.client.util.Key
        private java.lang.String filter;

        /** The standard list filter.
         */
        public java.lang.String getFilter() {
          return filter;
        }

        /** The standard list filter. */
        public List setFilter(java.lang.String filter) {
          this.filter = filter;
          return this;
        }

        /** The standard list page size. */
        @com.google.api.client.util.Key
        private java.lang.Integer pageSize;

        /** The standard list page size.
         */
        public java.lang.Integer getPageSize() {
          return pageSize;
        }

        /** The standard list page size. */
        public List setPageSize(java.lang.Integer pageSize) {
          this.pageSize = pageSize;
          return this;
        }

        /** The standard list page token. */
        @com.google.api.client.util.Key
        private java.lang.String pageToken;

        /** The standard list page token.
         */
        public java.lang.String getPageToken() {
          return pageToken;
        }

        /** The standard list page token. */
        public List setPageToken(java.lang.String pageToken) {
          this.pageToken = pageToken;
          return this;
        }

        @Override
        public List set(String parameterName, Object value) {
          return (List) super.set(parameterName, value);
        }
      }

      /**
       * An accessor for creating requests from the Instances collection.
       *
       *
The typical use is:

       *

       *   {@code CloudFilestore file = new CloudFilestore(...);}
       *   {@code CloudFilestore.Instances.List request = file.instances().list(parameters ...)}
       *

       *
       * @return the resource collection
       */
      public Instances instances() {
        return new Instances();
      }

      /**
       * The "instances" collection of methods.
       */
      public class Instances {

        /**
         * Creates an instance.
         *
         * Create a request for the method "instances.create".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Create#execute()} method to invoke the remote operation.
         *
         * @param parent The instance's project and location, in the format
        projects/{project_id}/locations/{location}. In
         *        Cloud Filestore,
        locations map to GCP zones, for example **us-west1-b**.
         * @param content the {@link com.google.api.services.file.v1.model.Instance}
         * @return the request
         */
        public Create create(java.lang.String parent, com.google.api.services.file.v1.model.Instance content) throws java.io.IOException {
          Create result = new Create(parent, content);
          initialize(result);
          return result;
        }

        public class Create extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Operation> {

          private static final String REST_PATH = "v1/{+parent}/instances";

          private final java.util.regex.Pattern PARENT_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+$");

          /**
           * Creates an instance.
           *
           * Create a request for the method "instances.create".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Create#execute()} method to invoke the remote operation.
 {@link
           * Create#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must
           * be called to initialize this instance immediately after invoking the constructor.

           *
           * @param parent The instance's project and location, in the format
        projects/{project_id}/locations/{location}. In
         *        Cloud Filestore,
        locations map to GCP zones, for example **us-west1-b**.
           * @param content the {@link com.google.api.services.file.v1.model.Instance}
           * @since 1.13
           */
          protected Create(java.lang.String parent, com.google.api.services.file.v1.model.Instance content) {
            super(CloudFilestore.this, "POST", REST_PATH, content, com.google.api.services.file.v1.model.Operation.class);
            this.parent = com.google.api.client.util.Preconditions.checkNotNull(parent, "Required parameter parent must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(PARENT_PATTERN.matcher(parent).matches(),
                  "Parameter parent must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
          }

          @Override
          public Create set$Xgafv(java.lang.String $Xgafv) {
            return (Create) super.set$Xgafv($Xgafv);
          }

          @Override
          public Create setAccessToken(java.lang.String accessToken) {
            return (Create) super.setAccessToken(accessToken);
          }

          @Override
          public Create setAlt(java.lang.String alt) {
            return (Create) super.setAlt(alt);
          }

          @Override
          public Create setCallback(java.lang.String callback) {
            return (Create) super.setCallback(callback);
          }

          @Override
          public Create setFields(java.lang.String fields) {
            return (Create) super.setFields(fields);
          }

          @Override
          public Create setKey(java.lang.String key) {
            return (Create) super.setKey(key);
          }

          @Override
          public Create setOauthToken(java.lang.String oauthToken) {
            return (Create) super.setOauthToken(oauthToken);
          }

          @Override
          public Create setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Create) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Create setQuotaUser(java.lang.String quotaUser) {
            return (Create) super.setQuotaUser(quotaUser);
          }

          @Override
          public Create setUploadType(java.lang.String uploadType) {
            return (Create) super.setUploadType(uploadType);
          }

          @Override
          public Create setUploadProtocol(java.lang.String uploadProtocol) {
            return (Create) super.setUploadProtocol(uploadProtocol);
          }

          /**
           * The instance's project and location, in the format
           * projects/{project_id}/locations/{location}. In Cloud Filestore, locations map to GCP
           * zones, for example **us-west1-b**.
           */
          @com.google.api.client.util.Key
          private java.lang.String parent;

          /** The instance's project and location, in the format projects/{project_id}/locations/{location}. In
         Cloud Filestore, locations map to GCP zones, for example **us-west1-b**.
           */
          public java.lang.String getParent() {
            return parent;
          }

          /**
           * The instance's project and location, in the format
           * projects/{project_id}/locations/{location}. In Cloud Filestore, locations map to GCP
           * zones, for example **us-west1-b**.
           */
          public Create setParent(java.lang.String parent) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(PARENT_PATTERN.matcher(parent).matches(),
                  "Parameter parent must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
            this.parent = parent;
            return this;
          }

          /**
           * The name of the instance to create. The name must be unique for the specified project
           * and location.
           */
          @com.google.api.client.util.Key
          private java.lang.String instanceId;

          /** The name of the instance to create. The name must be unique for the specified project and location.
           */
          public java.lang.String getInstanceId() {
            return instanceId;
          }

          /**
           * The name of the instance to create. The name must be unique for the specified project
           * and location.
           */
          public Create setInstanceId(java.lang.String instanceId) {
            this.instanceId = instanceId;
            return this;
          }

          @Override
          public Create set(String parameterName, Object value) {
            return (Create) super.set(parameterName, value);
          }
        }
        /**
         * Deletes an instance.
         *
         * Create a request for the method "instances.delete".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Delete#execute()} method to invoke the remote operation.
         *
         * @param name The instance resource name, in the format
         *        projects/{project_id}/locations/{location}/instances/{instance_id}
         * @return the request
         */
        public Delete delete(java.lang.String name) throws java.io.IOException {
          Delete result = new Delete(name);
          initialize(result);
          return result;
        }

        public class Delete extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Operation> {

          private static final String REST_PATH = "v1/{+name}";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/instances/[^/]+$");

          /**
           * Deletes an instance.
           *
           * Create a request for the method "instances.delete".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Delete#execute()} method to invoke the remote operation.
 {@link
           * Delete#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must
           * be called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The instance resource name, in the format
         *        projects/{project_id}/locations/{location}/instances/{instance_id}
           * @since 1.13
           */
          protected Delete(java.lang.String name) {
            super(CloudFilestore.this, "DELETE", REST_PATH, null, com.google.api.services.file.v1.model.Operation.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
          }

          @Override
          public Delete set$Xgafv(java.lang.String $Xgafv) {
            return (Delete) super.set$Xgafv($Xgafv);
          }

          @Override
          public Delete setAccessToken(java.lang.String accessToken) {
            return (Delete) super.setAccessToken(accessToken);
          }

          @Override
          public Delete setAlt(java.lang.String alt) {
            return (Delete) super.setAlt(alt);
          }

          @Override
          public Delete setCallback(java.lang.String callback) {
            return (Delete) super.setCallback(callback);
          }

          @Override
          public Delete setFields(java.lang.String fields) {
            return (Delete) super.setFields(fields);
          }

          @Override
          public Delete setKey(java.lang.String key) {
            return (Delete) super.setKey(key);
          }

          @Override
          public Delete setOauthToken(java.lang.String oauthToken) {
            return (Delete) super.setOauthToken(oauthToken);
          }

          @Override
          public Delete setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Delete) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Delete setQuotaUser(java.lang.String quotaUser) {
            return (Delete) super.setQuotaUser(quotaUser);
          }

          @Override
          public Delete setUploadType(java.lang.String uploadType) {
            return (Delete) super.setUploadType(uploadType);
          }

          @Override
          public Delete setUploadProtocol(java.lang.String uploadProtocol) {
            return (Delete) super.setUploadProtocol(uploadProtocol);
          }

          /**
           * The instance resource name, in the format
           * projects/{project_id}/locations/{location}/instances/{instance_id}
           */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The instance resource name, in the format
         projects/{project_id}/locations/{location}/instances/{instance_id}
           */
          public java.lang.String getName() {
            return name;
          }

          /**
           * The instance resource name, in the format
           * projects/{project_id}/locations/{location}/instances/{instance_id}
           */
          public Delete setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
            this.name = name;
            return this;
          }

          @Override
          public Delete set(String parameterName, Object value) {
            return (Delete) super.set(parameterName, value);
          }
        }
        /**
         * Gets the details of a specific instance.
         *
         * Create a request for the method "instances.get".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Get#execute()} method to invoke the remote operation.
         *
         * @param name The instance resource name, in the format
         *        projects/{project_id}/locations/{location}/instances/{instance_id}.
         * @return the request
         */
        public Get get(java.lang.String name) throws java.io.IOException {
          Get result = new Get(name);
          initialize(result);
          return result;
        }

        public class Get extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Instance> {

          private static final String REST_PATH = "v1/{+name}";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/instances/[^/]+$");

          /**
           * Gets the details of a specific instance.
           *
           * Create a request for the method "instances.get".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Get#execute()} method to invoke the remote operation.
 {@link
           * Get#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
           * called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The instance resource name, in the format
         *        projects/{project_id}/locations/{location}/instances/{instance_id}.
           * @since 1.13
           */
          protected Get(java.lang.String name) {
            super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.Instance.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
          }

          @Override
          public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
            return super.executeUsingHead();
          }

          @Override
          public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
            return super.buildHttpRequestUsingHead();
          }

          @Override
          public Get set$Xgafv(java.lang.String $Xgafv) {
            return (Get) super.set$Xgafv($Xgafv);
          }

          @Override
          public Get setAccessToken(java.lang.String accessToken) {
            return (Get) super.setAccessToken(accessToken);
          }

          @Override
          public Get setAlt(java.lang.String alt) {
            return (Get) super.setAlt(alt);
          }

          @Override
          public Get setCallback(java.lang.String callback) {
            return (Get) super.setCallback(callback);
          }

          @Override
          public Get setFields(java.lang.String fields) {
            return (Get) super.setFields(fields);
          }

          @Override
          public Get setKey(java.lang.String key) {
            return (Get) super.setKey(key);
          }

          @Override
          public Get setOauthToken(java.lang.String oauthToken) {
            return (Get) super.setOauthToken(oauthToken);
          }

          @Override
          public Get setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Get) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Get setQuotaUser(java.lang.String quotaUser) {
            return (Get) super.setQuotaUser(quotaUser);
          }

          @Override
          public Get setUploadType(java.lang.String uploadType) {
            return (Get) super.setUploadType(uploadType);
          }

          @Override
          public Get setUploadProtocol(java.lang.String uploadProtocol) {
            return (Get) super.setUploadProtocol(uploadProtocol);
          }

          /**
           * The instance resource name, in the format
           * projects/{project_id}/locations/{location}/instances/{instance_id}.
           */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The instance resource name, in the format
         projects/{project_id}/locations/{location}/instances/{instance_id}.
           */
          public java.lang.String getName() {
            return name;
          }

          /**
           * The instance resource name, in the format
           * projects/{project_id}/locations/{location}/instances/{instance_id}.
           */
          public Get setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
            this.name = name;
            return this;
          }

          @Override
          public Get set(String parameterName, Object value) {
            return (Get) super.set(parameterName, value);
          }
        }
        /**
         * Lists all instances in a project for either a specified location or for all locations.
         *
         * Create a request for the method "instances.list".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link List#execute()} method to invoke the remote operation.
         *
         * @param parent The project and location for which to retrieve instance information,
        in the format
         *        projects/{project_id}/locations/{location}. In Cloud
        Filestore, locations map to GCP
         *        zones, for example **us-west1-b**. To
        retrieve instance information for all locations, use
         *        "-" for the {location}
        value.
         * @return the request
         */
        public List list(java.lang.String parent) throws java.io.IOException {
          List result = new List(parent);
          initialize(result);
          return result;
        }

        public class List extends CloudFilestoreRequest<com.google.api.services.file.v1.model.ListInstancesResponse> {

          private static final String REST_PATH = "v1/{+parent}/instances";

          private final java.util.regex.Pattern PARENT_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+$");

          /**
           * Lists all instances in a project for either a specified location or for all locations.
           *
           * Create a request for the method "instances.list".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link List#execute()} method to invoke the remote operation.
 {@link
           * List#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
           * called to initialize this instance immediately after invoking the constructor.

           *
           * @param parent The project and location for which to retrieve instance information,
        in the format
         *        projects/{project_id}/locations/{location}. In Cloud
        Filestore, locations map to GCP
         *        zones, for example **us-west1-b**. To
        retrieve instance information for all locations, use
         *        "-" for the {location}
        value.
           * @since 1.13
           */
          protected List(java.lang.String parent) {
            super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.ListInstancesResponse.class);
            this.parent = com.google.api.client.util.Preconditions.checkNotNull(parent, "Required parameter parent must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(PARENT_PATTERN.matcher(parent).matches(),
                  "Parameter parent must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
          }

          @Override
          public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
            return super.executeUsingHead();
          }

          @Override
          public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
            return super.buildHttpRequestUsingHead();
          }

          @Override
          public List set$Xgafv(java.lang.String $Xgafv) {
            return (List) super.set$Xgafv($Xgafv);
          }

          @Override
          public List setAccessToken(java.lang.String accessToken) {
            return (List) super.setAccessToken(accessToken);
          }

          @Override
          public List setAlt(java.lang.String alt) {
            return (List) super.setAlt(alt);
          }

          @Override
          public List setCallback(java.lang.String callback) {
            return (List) super.setCallback(callback);
          }

          @Override
          public List setFields(java.lang.String fields) {
            return (List) super.setFields(fields);
          }

          @Override
          public List setKey(java.lang.String key) {
            return (List) super.setKey(key);
          }

          @Override
          public List setOauthToken(java.lang.String oauthToken) {
            return (List) super.setOauthToken(oauthToken);
          }

          @Override
          public List setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (List) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public List setQuotaUser(java.lang.String quotaUser) {
            return (List) super.setQuotaUser(quotaUser);
          }

          @Override
          public List setUploadType(java.lang.String uploadType) {
            return (List) super.setUploadType(uploadType);
          }

          @Override
          public List setUploadProtocol(java.lang.String uploadProtocol) {
            return (List) super.setUploadProtocol(uploadProtocol);
          }

          /**
           * The project and location for which to retrieve instance information, in the format
           * projects/{project_id}/locations/{location}. In Cloud Filestore, locations map to GCP
           * zones, for example **us-west1-b**. To retrieve instance information for all locations,
           * use "-" for the {location} value.
           */
          @com.google.api.client.util.Key
          private java.lang.String parent;

          /** The project and location for which to retrieve instance information, in the format
         projects/{project_id}/locations/{location}. In Cloud Filestore, locations map to GCP zones, for
         example **us-west1-b**. To retrieve instance information for all locations, use "-" for the
         {location} value.
           */
          public java.lang.String getParent() {
            return parent;
          }

          /**
           * The project and location for which to retrieve instance information, in the format
           * projects/{project_id}/locations/{location}. In Cloud Filestore, locations map to GCP
           * zones, for example **us-west1-b**. To retrieve instance information for all locations,
           * use "-" for the {location} value.
           */
          public List setParent(java.lang.String parent) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(PARENT_PATTERN.matcher(parent).matches(),
                  "Parameter parent must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
            this.parent = parent;
            return this;
          }

          /** List filter. */
          @com.google.api.client.util.Key
          private java.lang.String filter;

          /** List filter.
           */
          public java.lang.String getFilter() {
            return filter;
          }

          /** List filter. */
          public List setFilter(java.lang.String filter) {
            this.filter = filter;
            return this;
          }

          /** Sort results. Supported values are "name", "name desc" or "" (unsorted). */
          @com.google.api.client.util.Key
          private java.lang.String orderBy;

          /** Sort results. Supported values are "name", "name desc" or "" (unsorted).
           */
          public java.lang.String getOrderBy() {
            return orderBy;
          }

          /** Sort results. Supported values are "name", "name desc" or "" (unsorted). */
          public List setOrderBy(java.lang.String orderBy) {
            this.orderBy = orderBy;
            return this;
          }

          /** The maximum number of items to return. */
          @com.google.api.client.util.Key
          private java.lang.Integer pageSize;

          /** The maximum number of items to return.
           */
          public java.lang.Integer getPageSize() {
            return pageSize;
          }

          /** The maximum number of items to return. */
          public List setPageSize(java.lang.Integer pageSize) {
            this.pageSize = pageSize;
            return this;
          }

          /**
           * The next_page_token value to use if there are additional results to retrieve for this
           * list request.
           */
          @com.google.api.client.util.Key
          private java.lang.String pageToken;

          /** The next_page_token value to use if there are additional results to retrieve for this list request.
           */
          public java.lang.String getPageToken() {
            return pageToken;
          }

          /**
           * The next_page_token value to use if there are additional results to retrieve for this
           * list request.
           */
          public List setPageToken(java.lang.String pageToken) {
            this.pageToken = pageToken;
            return this;
          }

          @Override
          public List set(String parameterName, Object value) {
            return (List) super.set(parameterName, value);
          }
        }
        /**
         * Updates the settings of a specific instance.
         *
         * Create a request for the method "instances.patch".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Patch#execute()} method to invoke the remote operation.
         *
         * @param name Output only.
        The resource name of the instance, in the format
         *        projects/{project_id}/locations/{location_id}/instances/{instance_id}.
         * @param content the {@link com.google.api.services.file.v1.model.Instance}
         * @return the request
         */
        public Patch patch(java.lang.String name, com.google.api.services.file.v1.model.Instance content) throws java.io.IOException {
          Patch result = new Patch(name, content);
          initialize(result);
          return result;
        }

        public class Patch extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Operation> {

          private static final String REST_PATH = "v1/{+name}";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/instances/[^/]+$");

          /**
           * Updates the settings of a specific instance.
           *
           * Create a request for the method "instances.patch".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Patch#execute()} method to invoke the remote operation.
 {@link
           * Patch#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must
           * be called to initialize this instance immediately after invoking the constructor.

           *
           * @param name Output only.
        The resource name of the instance, in the format
         *        projects/{project_id}/locations/{location_id}/instances/{instance_id}.
           * @param content the {@link com.google.api.services.file.v1.model.Instance}
           * @since 1.13
           */
          protected Patch(java.lang.String name, com.google.api.services.file.v1.model.Instance content) {
            super(CloudFilestore.this, "PATCH", REST_PATH, content, com.google.api.services.file.v1.model.Operation.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
          }

          @Override
          public Patch set$Xgafv(java.lang.String $Xgafv) {
            return (Patch) super.set$Xgafv($Xgafv);
          }

          @Override
          public Patch setAccessToken(java.lang.String accessToken) {
            return (Patch) super.setAccessToken(accessToken);
          }

          @Override
          public Patch setAlt(java.lang.String alt) {
            return (Patch) super.setAlt(alt);
          }

          @Override
          public Patch setCallback(java.lang.String callback) {
            return (Patch) super.setCallback(callback);
          }

          @Override
          public Patch setFields(java.lang.String fields) {
            return (Patch) super.setFields(fields);
          }

          @Override
          public Patch setKey(java.lang.String key) {
            return (Patch) super.setKey(key);
          }

          @Override
          public Patch setOauthToken(java.lang.String oauthToken) {
            return (Patch) super.setOauthToken(oauthToken);
          }

          @Override
          public Patch setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Patch) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Patch setQuotaUser(java.lang.String quotaUser) {
            return (Patch) super.setQuotaUser(quotaUser);
          }

          @Override
          public Patch setUploadType(java.lang.String uploadType) {
            return (Patch) super.setUploadType(uploadType);
          }

          @Override
          public Patch setUploadProtocol(java.lang.String uploadProtocol) {
            return (Patch) super.setUploadProtocol(uploadProtocol);
          }

          /**
           * Output only. The resource name of the instance, in the format
           * projects/{project_id}/locations/{location_id}/instances/{instance_id}.
           */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** Output only. The resource name of the instance, in the format
         projects/{project_id}/locations/{location_id}/instances/{instance_id}.
           */
          public java.lang.String getName() {
            return name;
          }

          /**
           * Output only. The resource name of the instance, in the format
           * projects/{project_id}/locations/{location_id}/instances/{instance_id}.
           */
          public Patch setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/instances/[^/]+$");
            }
            this.name = name;
            return this;
          }

          /**
           * Mask of fields to update.  At least one path must be supplied in this field.  The
           * elements of the repeated paths field may only include these fields: "description"
           */
          @com.google.api.client.util.Key
          private String updateMask;

          /** Mask of fields to update.  At least one path must be supplied in this field.  The elements of the
         repeated paths field may only include these fields: "description"
           */
          public String getUpdateMask() {
            return updateMask;
          }

          /**
           * Mask of fields to update.  At least one path must be supplied in this field.  The
           * elements of the repeated paths field may only include these fields: "description"
           */
          public Patch setUpdateMask(String updateMask) {
            this.updateMask = updateMask;
            return this;
          }

          @Override
          public Patch set(String parameterName, Object value) {
            return (Patch) super.set(parameterName, value);
          }
        }

      }
      /**
       * An accessor for creating requests from the Operations collection.
       *
       *
The typical use is:

       *

       *   {@code CloudFilestore file = new CloudFilestore(...);}
       *   {@code CloudFilestore.Operations.List request = file.operations().list(parameters ...)}
       *

       *
       * @return the resource collection
       */
      public Operations operations() {
        return new Operations();
      }

      /**
       * The "operations" collection of methods.
       */
      public class Operations {

        /**
         * Starts asynchronous cancellation on a long-running operation.  The server makes a best effort to
         * cancel the operation, but success is not guaranteed.  If the server doesn't support this method,
         * it returns `google.rpc.Code.UNIMPLEMENTED`.  Clients can use Operations.GetOperation or other
         * methods to check whether the cancellation succeeded or whether the operation completed despite
         * cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an
         * operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to
         * `Code.CANCELLED`.
         *
         * Create a request for the method "operations.cancel".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Cancel#execute()} method to invoke the remote operation.
         *
         * @param name The name of the operation resource to be cancelled.
         * @param content the {@link com.google.api.services.file.v1.model.CancelOperationRequest}
         * @return the request
         */
        public Cancel cancel(java.lang.String name, com.google.api.services.file.v1.model.CancelOperationRequest content) throws java.io.IOException {
          Cancel result = new Cancel(name, content);
          initialize(result);
          return result;
        }

        public class Cancel extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Empty> {

          private static final String REST_PATH = "v1/{+name}:cancel";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/operations/[^/]+$");

          /**
           * Starts asynchronous cancellation on a long-running operation.  The server makes a best effort
           * to cancel the operation, but success is not guaranteed.  If the server doesn't support this
           * method, it returns `google.rpc.Code.UNIMPLEMENTED`.  Clients can use Operations.GetOperation or
           * other methods to check whether the cancellation succeeded or whether the operation completed
           * despite cancellation. On successful cancellation, the operation is not deleted; instead, it
           * becomes an operation with an Operation.error value with a google.rpc.Status.code of 1,
           * corresponding to `Code.CANCELLED`.
           *
           * Create a request for the method "operations.cancel".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Cancel#execute()} method to invoke the remote operation.
 {@link
           * Cancel#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must
           * be called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The name of the operation resource to be cancelled.
           * @param content the {@link com.google.api.services.file.v1.model.CancelOperationRequest}
           * @since 1.13
           */
          protected Cancel(java.lang.String name, com.google.api.services.file.v1.model.CancelOperationRequest content) {
            super(CloudFilestore.this, "POST", REST_PATH, content, com.google.api.services.file.v1.model.Empty.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
          }

          @Override
          public Cancel set$Xgafv(java.lang.String $Xgafv) {
            return (Cancel) super.set$Xgafv($Xgafv);
          }

          @Override
          public Cancel setAccessToken(java.lang.String accessToken) {
            return (Cancel) super.setAccessToken(accessToken);
          }

          @Override
          public Cancel setAlt(java.lang.String alt) {
            return (Cancel) super.setAlt(alt);
          }

          @Override
          public Cancel setCallback(java.lang.String callback) {
            return (Cancel) super.setCallback(callback);
          }

          @Override
          public Cancel setFields(java.lang.String fields) {
            return (Cancel) super.setFields(fields);
          }

          @Override
          public Cancel setKey(java.lang.String key) {
            return (Cancel) super.setKey(key);
          }

          @Override
          public Cancel setOauthToken(java.lang.String oauthToken) {
            return (Cancel) super.setOauthToken(oauthToken);
          }

          @Override
          public Cancel setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Cancel) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Cancel setQuotaUser(java.lang.String quotaUser) {
            return (Cancel) super.setQuotaUser(quotaUser);
          }

          @Override
          public Cancel setUploadType(java.lang.String uploadType) {
            return (Cancel) super.setUploadType(uploadType);
          }

          @Override
          public Cancel setUploadProtocol(java.lang.String uploadProtocol) {
            return (Cancel) super.setUploadProtocol(uploadProtocol);
          }

          /** The name of the operation resource to be cancelled. */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The name of the operation resource to be cancelled.
           */
          public java.lang.String getName() {
            return name;
          }

          /** The name of the operation resource to be cancelled. */
          public Cancel setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
            this.name = name;
            return this;
          }

          @Override
          public Cancel set(String parameterName, Object value) {
            return (Cancel) super.set(parameterName, value);
          }
        }
        /**
         * Deletes a long-running operation. This method indicates that the client is no longer interested
         * in the operation result. It does not cancel the operation. If the server doesn't support this
         * method, it returns `google.rpc.Code.UNIMPLEMENTED`.
         *
         * Create a request for the method "operations.delete".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Delete#execute()} method to invoke the remote operation.
         *
         * @param name The name of the operation resource to be deleted.
         * @return the request
         */
        public Delete delete(java.lang.String name) throws java.io.IOException {
          Delete result = new Delete(name);
          initialize(result);
          return result;
        }

        public class Delete extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Empty> {

          private static final String REST_PATH = "v1/{+name}";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/operations/[^/]+$");

          /**
           * Deletes a long-running operation. This method indicates that the client is no longer interested
           * in the operation result. It does not cancel the operation. If the server doesn't support this
           * method, it returns `google.rpc.Code.UNIMPLEMENTED`.
           *
           * Create a request for the method "operations.delete".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Delete#execute()} method to invoke the remote operation.
 {@link
           * Delete#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must
           * be called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The name of the operation resource to be deleted.
           * @since 1.13
           */
          protected Delete(java.lang.String name) {
            super(CloudFilestore.this, "DELETE", REST_PATH, null, com.google.api.services.file.v1.model.Empty.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
          }

          @Override
          public Delete set$Xgafv(java.lang.String $Xgafv) {
            return (Delete) super.set$Xgafv($Xgafv);
          }

          @Override
          public Delete setAccessToken(java.lang.String accessToken) {
            return (Delete) super.setAccessToken(accessToken);
          }

          @Override
          public Delete setAlt(java.lang.String alt) {
            return (Delete) super.setAlt(alt);
          }

          @Override
          public Delete setCallback(java.lang.String callback) {
            return (Delete) super.setCallback(callback);
          }

          @Override
          public Delete setFields(java.lang.String fields) {
            return (Delete) super.setFields(fields);
          }

          @Override
          public Delete setKey(java.lang.String key) {
            return (Delete) super.setKey(key);
          }

          @Override
          public Delete setOauthToken(java.lang.String oauthToken) {
            return (Delete) super.setOauthToken(oauthToken);
          }

          @Override
          public Delete setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Delete) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Delete setQuotaUser(java.lang.String quotaUser) {
            return (Delete) super.setQuotaUser(quotaUser);
          }

          @Override
          public Delete setUploadType(java.lang.String uploadType) {
            return (Delete) super.setUploadType(uploadType);
          }

          @Override
          public Delete setUploadProtocol(java.lang.String uploadProtocol) {
            return (Delete) super.setUploadProtocol(uploadProtocol);
          }

          /** The name of the operation resource to be deleted. */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The name of the operation resource to be deleted.
           */
          public java.lang.String getName() {
            return name;
          }

          /** The name of the operation resource to be deleted. */
          public Delete setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
            this.name = name;
            return this;
          }

          @Override
          public Delete set(String parameterName, Object value) {
            return (Delete) super.set(parameterName, value);
          }
        }
        /**
         * Gets the latest state of a long-running operation.  Clients can use this method to poll the
         * operation result at intervals as recommended by the API service.
         *
         * Create a request for the method "operations.get".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link Get#execute()} method to invoke the remote operation.
         *
         * @param name The name of the operation resource.
         * @return the request
         */
        public Get get(java.lang.String name) throws java.io.IOException {
          Get result = new Get(name);
          initialize(result);
          return result;
        }

        public class Get extends CloudFilestoreRequest<com.google.api.services.file.v1.model.Operation> {

          private static final String REST_PATH = "v1/{+name}";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+/operations/[^/]+$");

          /**
           * Gets the latest state of a long-running operation.  Clients can use this method to poll the
           * operation result at intervals as recommended by the API service.
           *
           * Create a request for the method "operations.get".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link Get#execute()} method to invoke the remote operation.
 {@link
           * Get#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
           * called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The name of the operation resource.
           * @since 1.13
           */
          protected Get(java.lang.String name) {
            super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.Operation.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
          }

          @Override
          public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
            return super.executeUsingHead();
          }

          @Override
          public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
            return super.buildHttpRequestUsingHead();
          }

          @Override
          public Get set$Xgafv(java.lang.String $Xgafv) {
            return (Get) super.set$Xgafv($Xgafv);
          }

          @Override
          public Get setAccessToken(java.lang.String accessToken) {
            return (Get) super.setAccessToken(accessToken);
          }

          @Override
          public Get setAlt(java.lang.String alt) {
            return (Get) super.setAlt(alt);
          }

          @Override
          public Get setCallback(java.lang.String callback) {
            return (Get) super.setCallback(callback);
          }

          @Override
          public Get setFields(java.lang.String fields) {
            return (Get) super.setFields(fields);
          }

          @Override
          public Get setKey(java.lang.String key) {
            return (Get) super.setKey(key);
          }

          @Override
          public Get setOauthToken(java.lang.String oauthToken) {
            return (Get) super.setOauthToken(oauthToken);
          }

          @Override
          public Get setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (Get) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public Get setQuotaUser(java.lang.String quotaUser) {
            return (Get) super.setQuotaUser(quotaUser);
          }

          @Override
          public Get setUploadType(java.lang.String uploadType) {
            return (Get) super.setUploadType(uploadType);
          }

          @Override
          public Get setUploadProtocol(java.lang.String uploadProtocol) {
            return (Get) super.setUploadProtocol(uploadProtocol);
          }

          /** The name of the operation resource. */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The name of the operation resource.
           */
          public java.lang.String getName() {
            return name;
          }

          /** The name of the operation resource. */
          public Get setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+/operations/[^/]+$");
            }
            this.name = name;
            return this;
          }

          @Override
          public Get set(String parameterName, Object value) {
            return (Get) super.set(parameterName, value);
          }
        }
        /**
         * Lists operations that match the specified filter in the request. If the server doesn't support
         * this method, it returns `UNIMPLEMENTED`.
         *
         * NOTE: the `name` binding allows API services to override the binding to use different resource
         * name schemes, such as `users/operations`. To override the binding, API services can add a binding
         * such as `"/v1/{name=users}/operations"` to their service configuration. For backwards
         * compatibility, the default name includes the operations collection id, however overriding users
         * must ensure the name binding is the parent resource, without the operations collection id.
         *
         * Create a request for the method "operations.list".
         *
         * This request holds the parameters needed by the file server.  After setting any optional
         * parameters, call the {@link List#execute()} method to invoke the remote operation.
         *
         * @param name The name of the operation's parent resource.
         * @return the request
         */
        public List list(java.lang.String name) throws java.io.IOException {
          List result = new List(name);
          initialize(result);
          return result;
        }

        public class List extends CloudFilestoreRequest<com.google.api.services.file.v1.model.ListOperationsResponse> {

          private static final String REST_PATH = "v1/{+name}/operations";

          private final java.util.regex.Pattern NAME_PATTERN =
              java.util.regex.Pattern.compile("^projects/[^/]+/locations/[^/]+$");

          /**
           * Lists operations that match the specified filter in the request. If the server doesn't support
           * this method, it returns `UNIMPLEMENTED`.
           *
           * NOTE: the `name` binding allows API services to override the binding to use different resource
           * name schemes, such as `users/operations`. To override the binding, API services can add a
           * binding such as `"/v1/{name=users}/operations"` to their service configuration. For backwards
           * compatibility, the default name includes the operations collection id, however overriding users
           * must ensure the name binding is the parent resource, without the operations collection id.
           *
           * Create a request for the method "operations.list".
           *
           * This request holds the parameters needed by the the file server.  After setting any optional
           * parameters, call the {@link List#execute()} method to invoke the remote operation.
 {@link
           * List#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)} must be
           * called to initialize this instance immediately after invoking the constructor.

           *
           * @param name The name of the operation's parent resource.
           * @since 1.13
           */
          protected List(java.lang.String name) {
            super(CloudFilestore.this, "GET", REST_PATH, null, com.google.api.services.file.v1.model.ListOperationsResponse.class);
            this.name = com.google.api.client.util.Preconditions.checkNotNull(name, "Required parameter name must be specified.");
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
          }

          @Override
          public com.google.api.client.http.HttpResponse executeUsingHead() throws java.io.IOException {
            return super.executeUsingHead();
          }

          @Override
          public com.google.api.client.http.HttpRequest buildHttpRequestUsingHead() throws java.io.IOException {
            return super.buildHttpRequestUsingHead();
          }

          @Override
          public List set$Xgafv(java.lang.String $Xgafv) {
            return (List) super.set$Xgafv($Xgafv);
          }

          @Override
          public List setAccessToken(java.lang.String accessToken) {
            return (List) super.setAccessToken(accessToken);
          }

          @Override
          public List setAlt(java.lang.String alt) {
            return (List) super.setAlt(alt);
          }

          @Override
          public List setCallback(java.lang.String callback) {
            return (List) super.setCallback(callback);
          }

          @Override
          public List setFields(java.lang.String fields) {
            return (List) super.setFields(fields);
          }

          @Override
          public List setKey(java.lang.String key) {
            return (List) super.setKey(key);
          }

          @Override
          public List setOauthToken(java.lang.String oauthToken) {
            return (List) super.setOauthToken(oauthToken);
          }

          @Override
          public List setPrettyPrint(java.lang.Boolean prettyPrint) {
            return (List) super.setPrettyPrint(prettyPrint);
          }

          @Override
          public List setQuotaUser(java.lang.String quotaUser) {
            return (List) super.setQuotaUser(quotaUser);
          }

          @Override
          public List setUploadType(java.lang.String uploadType) {
            return (List) super.setUploadType(uploadType);
          }

          @Override
          public List setUploadProtocol(java.lang.String uploadProtocol) {
            return (List) super.setUploadProtocol(uploadProtocol);
          }

          /** The name of the operation's parent resource. */
          @com.google.api.client.util.Key
          private java.lang.String name;

          /** The name of the operation's parent resource.
           */
          public java.lang.String getName() {
            return name;
          }

          /** The name of the operation's parent resource. */
          public List setName(java.lang.String name) {
            if (!getSuppressPatternChecks()) {
              com.google.api.client.util.Preconditions.checkArgument(NAME_PATTERN.matcher(name).matches(),
                  "Parameter name must conform to the pattern " +
                  "^projects/[^/]+/locations/[^/]+$");
            }
            this.name = name;
            return this;
          }

          /** The standard list filter. */
          @com.google.api.client.util.Key
          private java.lang.String filter;

          /** The standard list filter.
           */
          public java.lang.String getFilter() {
            return filter;
          }

          /** The standard list filter. */
          public List setFilter(java.lang.String filter) {
            this.filter = filter;
            return this;
          }

          /** The standard list page size. */
          @com.google.api.client.util.Key
          private java.lang.Integer pageSize;

          /** The standard list page size.
           */
          public java.lang.Integer getPageSize() {
            return pageSize;
          }

          /** The standard list page size. */
          public List setPageSize(java.lang.Integer pageSize) {
            this.pageSize = pageSize;
            return this;
          }

          /** The standard list page token. */
          @com.google.api.client.util.Key
          private java.lang.String pageToken;

          /** The standard list page token.
           */
          public java.lang.String getPageToken() {
            return pageToken;
          }

          /** The standard list page token. */
          public List setPageToken(java.lang.String pageToken) {
            this.pageToken = pageToken;
            return this;
          }

          @Override
          public List set(String parameterName, Object value) {
            return (List) super.set(parameterName, value);
          }
        }

      }
    }
  }

  /**
   * Builder for {@link CloudFilestore}.
   *
   *

   * Implementation is not thread-safe.
   *

   *
   * @since 1.3.0
   */
  public static final class Builder extends com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient.Builder {

    /**
     * Returns an instance of a new builder.
     *
     * @param transport HTTP transport, which should normally be:
     *

     *
Google App Engine:
     *        {@code com.google.api.client.extensions.appengine.http.UrlFetchTransport}

     *
Android: {@code newCompatibleTransport} from
     *        {@code com.google.api.client.extensions.android.http.AndroidHttp}

     *
Java: {@link com.google.api.client.googleapis.javanet.GoogleNetHttpTransport#newTrustedTransport()}
     *

     *

     * @param jsonFactory JSON factory, which may be:
     *

     *
Jackson: {@code com.google.api.client.json.jackson2.JacksonFactory}

     *
Google GSON: {@code com.google.api.client.json.gson.GsonFactory}

     *
Android Honeycomb or higher:
     *        {@code com.google.api.client.extensions.android.json.AndroidJsonFactory}

     *

     * @param httpRequestInitializer HTTP request initializer or {@code null} for none
     * @since 1.7
     */
    public Builder(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory,
        com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
      super(
          transport,
          jsonFactory,
          DEFAULT_ROOT_URL,
          DEFAULT_SERVICE_PATH,
          httpRequestInitializer,
          false);
      setBatchPath(DEFAULT_BATCH_PATH);
    }

    /** Builds a new instance of {@link CloudFilestore}. */
    @Override
    public CloudFilestore build() {
      return new CloudFilestore(this);
    }

    @Override
    public Builder setRootUrl(String rootUrl) {
      return (Builder) super.setRootUrl(rootUrl);
    }

    @Override
    public Builder setServicePath(String servicePath) {
      return (Builder) super.setServicePath(servicePath);
    }

    @Override
    public Builder setBatchPath(String batchPath) {
      return (Builder) super.setBatchPath(batchPath);
    }

    @Override
    public Builder setHttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
      return (Builder) super.setHttpRequestInitializer(httpRequestInitializer);
    }

    @Override
    public Builder setApplicationName(String applicationName) {
      return (Builder) super.setApplicationName(applicationName);
    }

    @Override
    public Builder setSuppressPatternChecks(boolean suppressPatternChecks) {
      return (Builder) super.setSuppressPatternChecks(suppressPatternChecks);
    }

    @Override
    public Builder setSuppressRequiredParameterChecks(boolean suppressRequiredParameterChecks) {
      return (Builder) super.setSuppressRequiredParameterChecks(suppressRequiredParameterChecks);
    }

    @Override
    public Builder setSuppressAllChecks(boolean suppressAllChecks) {
      return (Builder) super.setSuppressAllChecks(suppressAllChecks);
    }

    /**
     * Set the {@link CloudFilestoreRequestInitializer}.
     *
     * @since 1.12
     */
    public Builder setCloudFilestoreRequestInitializer(
        CloudFilestoreRequestInitializer cloudfilestoreRequestInitializer) {
      return (Builder) super.setGoogleClientRequestInitializer(cloudfilestoreRequestInitializer);
    }

    @Override
    public Builder setGoogleClientRequestInitializer(
        com.google.api.client.googleapis.services.GoogleClientRequestInitializer googleClientRequestInitializer) {
      return (Builder) super.setGoogleClientRequestInitializer(googleClientRequestInitializer);
    }
  }
}


text:
. $PSScriptRoot\..\GcloudCmdlets.ps1
Install-GcloudCmdlets

$project, $zone, $oldActiveConfig, $configName = Set-GCloudConfig
$r = Get-Random

Describe "Add-GceHealthCheck" {
    $healthCheckName = "test-add-gcehealthcheck-$r"
    # We have to do this because there are 2 types of Google.Apis.Compute.v1.Data.HttpHealthCheck:
    # One is HttpHealthCheck and the other is HTTPHealthCheck (The only difference is the case)
    # and PowerShell New-Object does not like that.
    $tempHealthCheck = "test-add-gcehealthcheck-temp-$r"
    $tempHealthCheck2 = "test-add-gcehealthcheck-temp2-$r"
    try {
        $httpHealthCheckType = (Add-GceHealthCheck $tempHealthCheck).GetType()
        $httpsHealthCheckType = (Add-GceHealthCheck $tempHealthCheck2 -Https).GetType()
    }
    finally {
        Get-GceHealthCheck | Remove-GceHealthCheck -ErrorAction SilentlyContinue
    }

    It "should fail for wrong project" {
        { Add-GceHealthCheck $healthCheckName -Project "asdf" } | Should Throw 403
    }

    Context "add success" {
        AfterEach {
            Get-GceHealthCheck | Remove-GceHealthCheck -ErrorAction SilentlyContinue
        }

        It "should set defaults" {
            $healthCheck = Add-GceHealthCheck $healthCheckName
            ($healthCheck | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpHealthCheck
            $healthCheck.Name | Should Be $healthCheckName
            $healthCheck.Port | Should Be 80
            $healthCheck.RequestPath | Should Be "/"
            $healthCheck.CheckIntervalSec | Should Be 5
            $healthCheck.TimeoutSec | Should Be 5
            $healthCheck.HealthyThreshold | Should Be 2
            $healthCheck.UnhealthyThreshold | Should Be 2
        }

        It "should set values" {
            $healthCheck = Add-GceHealthCheck $healthCheckName -Description "Test Description" `
                -HostHeader "google.com" -Port 50 -RequestPath "/some/path" -CheckInterval "0:0:2" `
                -Timeout "0:0:2" -HealthyThreshold 3 -UnhealthyThreshold 3 -Https
            ($healthCheck | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpsHealthCheck
            $healthCheck.Name | Should Be $healthCheckName
            $healthCheck.Port | Should Be 50
            $healthCheck.Host | Should Be "google.com"
            $healthCheck.RequestPath | Should Be "/some/path"
            $healthCheck.CheckIntervalSec | Should Be 2
            $healthCheck.TimeoutSec | Should Be 2
            $healthCheck.HealthyThreshold | Should Be 3
            $healthCheck.UnhealthyThreshold | Should Be 3

        }

        It "should use an HTTP object over pipeline" {
            $initHealthCheck = $httpHealthCheckType.GetConstructor(@()).Invoke(@())
            $initHealthCheck.Name = $healthCheckName
            $healthCheck = $initHealthCheck | Add-GceHealthCheck
            ($healthCheck | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpHealthCheck
            $healthCheck.Name | Should Be $healthCheckName
            $healthCheck.Port | Should Be 80
            $healthCheck.RequestPath | Should Be "/"
            $healthCheck.CheckIntervalSec | Should Be 5
            $healthCheck.TimeoutSec | Should Be 5
            $healthCheck.HealthyThreshold | Should Be 2
            $healthCheck.UnhealthyThreshold | Should Be 2
        }

        It "should use an HTTPS object over pipeline" {
            $initHealthCheck = $httpsHealthCheckType.GetConstructor(@()).Invoke(@())
            $initHealthCheck.Name = $healthCheckName
            $healthCheck = $initHealthCheck | Add-GceHealthCheck
            ($healthCheck | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpsHealthCheck
            $healthCheck.Name | Should Be $healthCheckName
            $healthCheck.Port | Should Be 443
            $healthCheck.RequestPath | Should Be "/"
            $healthCheck.CheckIntervalSec | Should Be 5
            $healthCheck.TimeoutSec | Should Be 5
            $healthCheck.HealthyThreshold | Should Be 2
            $healthCheck.UnhealthyThreshold | Should Be 2
        }
    }
}

Describe "Get-GceHealthCheck" {
    $healthCheckName = "test-get-gcehealthcheck-$r"
    $healthCheckName2 = "test-get-gcehealthcheck2-$r"

    It "should fail for wrong project" {
        { Get-GceHealthCheck -Project "asdf" } | Should Throw 403
    }

    It "should fail for non-existant health check" {
        { Get-GceHealthCheck $healthCheckName -Http } | Should Throw 404
    }

    It "should not fail when listing from project with zero health checks" {
        $noChecks = Get-GceHealthCheck
        $noChecks.Count | Should Be 0
    }

    Context "with checks" {
        BeforeAll {
            Add-GceHealthCheck $healthCheckName
            Add-GceHealthCheck $healthCheckName2
            # HTTP health checks and HTTPS health checks have separate namespaces.
            Add-GceHealthCheck $healthCheckName -Https
        }

        AfterAll {
            Get-GceHealthCheck | Remove-GceHealthCheck
        }

        It "should get all" {
            $allChecks = Get-GceHealthCheck
            $allChecks.Count | Should Be 3
        }

        It "should get all HTTP" {
            $httpChecks = Get-GceHealthCheck -Http
            $httpChecks.Count | Should Be 2
            ($httpChecks | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpHealthCheck
        }

        It "should get all HTTPS" {
            $httpChecks = Get-GceHealthCheck -Https
            $httpChecks.Count | Should Be 1
            ($httpChecks | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpsHealthCheck
        }

        It "should get both HTTP and HTTPS of name" {
            $healthChecks = Get-GceHealthCheck $healthCheckName
            $healthChecks.Count | Should Be 2
            $healthChecks.Name | Should Be $healthCheckName
        }

        It "should get HTTP by name" {
            $healthCheck = Get-GceHealthCheck $healthCheckName -Http
            $healthCheck.Count | Should Be 1
            $healthCheck.Name | Should Be $healthCheckName
            ($healthCheck | Get-Member).TypeName | Should Be Google.Apis.Compute.v1.Data.HttpHealthCheck
        }
    }
}

Describe "Remove-GceHealthCheck" {
    $healthCheckName = "test-remove-gcehealthcheck-$r"

    It "should fail for wrong project" {
        { Remove-GceHealthCheck $healthCheckName -Http -Project "asdf" } | Should Throw 403
    }

    It "should fail for non-existant health check" {
        { Remove-GceHealthCheck $healthCheckName -Http } | Should Throw 404
    }

    Context "Remove HTTP" {
        BeforeEach {
            Add-GceHealthCheck $healthCheckName
        }

        It "should work" {
            Remove-GceHealthCheck $healthCheckName -Http
            { Get-GceHealthCheck $healthCheckName -Http } | Should Throw 404
        }

        It "should use object pipeline" {
            Get-GceHealthCheck $healthCheckName -Http |
                Remove-GceHealthCheck
            { Get-GceHealthCheck $healthCheckName -Http } | Should Throw 404
        }

        It "should fail removing HTTPS health check" {
            { Remove-GceHealthCheck $healthCheckName -Https } | Should Throw 404
            Remove-GceHealthCheck $healthCheckName -Http
        }
    }

    Context "Remove HTTPS" {
        BeforeEach {
            Add-GceHealthCheck $healthCheckName -Https
        }

        It "should work" {
            Remove-GceHealthCheck $healthCheckName -Https
            { Get-GceHealthCheck $healthCheckName -Https } | Should Throw 404
        }

        It "should use object pipeline" {
            Get-GceHealthCheck $healthCheckName -Https |
                Remove-GceHealthCheck
            { Get-GceHealthCheck $healthCheckName -Https } | Should Throw 404
        }

        It "should fail removing HTTP health check" {
            { Remove-GceHealthCheck $healthCheckName -Http } | Should Throw 404
            Remove-GceHealthCheck $healthCheckName -Https
        }
    }
}

Describe "Set-GceHealthCheck" {
    $healthCheckName = "test-set-gcehealthcheck-$r"

    Add-GceHealthCheck $healthCheckName
    Add-GceHealthCheck $healthCheckName -Https

    AfterAll {
        Get-GceHealthCheck | Remove-GceHealthCheck
    }

    It "should work" {
        $healthChecks = Get-GceHealthCheck $healthCheckName | %{
            $_.Port = 50
            $_.Host = "google.com"
            $_.RequestPath = "/some/path"
            $_.CheckIntervalSec = 2
            $_.TimeoutSec = 2
            $_.HealthyThreshold = 3
            $_.UnhealthyThreshold = 3
            $_
        } | Set-GceHealthCheck

        $healthChecks.Count | Should Be 2
        $healthChecks.Name | Should Be $healthCheckName
        $healthChecks.Port | Should Be 50
        $healthChecks.Host | Should Be "google.com"
        $healthChecks.RequestPath | Should Be "/some/path"
        $healthChecks.CheckIntervalSec | Should Be 2
        $healthChecks.TimeoutSec | Should Be 2
        $healthChecks.HealthyThreshold | Should Be 3
        $healthChecks.UnhealthyThreshold | Should Be 3

        $healthChecks = Get-GceHealthCheck $healthCheckName

        $healthChecks.Count | Should Be 2
        $healthChecks.Name | Should Be $healthCheckName
        $healthChecks.Port | Should Be 50
        $healthChecks.Host | Should Be "google.com"
        $healthChecks.RequestPath | Should Be "/some/path"
        $healthChecks.CheckIntervalSec | Should Be 2
        $healthChecks.TimeoutSec | Should Be 2
        $healthChecks.HealthyThreshold | Should Be 3
        $healthChecks.UnhealthyThreshold | Should Be 3
    }
}

Reset-GCloudConfig $oldActiveConfig $configName

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE HTML>

  <title>math.js | an extensive math library for JavaScript and Node.js</title>

  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="title" content="math.js">

  <meta name="keywords" content="mathjs, math.js, math, js, javascript, node, library, expression, parser, numeric, number, bignumber, complex, matrix, unit, function, variable, string, value, node.js, mathematics, extensive, advanced">
  <meta name="description" content="Math.js is an extensive math library for JavaScript and Node.js. It features big numbers, complex numbers, matrices, units, and a flexible expression parser.">

  <meta name="author" content="Jos de Jong">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

  <link href="../../../css/style.css" rel="stylesheet" type="text/css">
  <link href="../../../css/commandline.css" rel="stylesheet" type="text/css">
  <link href="../../../css/code.css" rel="stylesheet" type="text/css">

    <gcse:search></gcse:search>

      Home

    Download

      Get started

        Docs

        Examples

Function subset #

Get or set a subset of a matrix or string.

Syntax #

math.subset(value, index)                                // retrieve a subset
math.subset(value, index, replacement [, defaultValue])  // replace a subset

Parameters #

Parameter
Type
Description

matrix
Array | Matrix | String
An array, matrix, or string

index
Index
An index containing ranges for each dimension

replacement
*
An array, matrix, or scalar. If provided, the subset is replaced with replacement. If not provided, the subset is returned

defaultValue
*
Default value, filled in on new entries when the matrix is resized. If not provided, new matrix elements will be left undefined. Default value: undefined.

Returns #

Type
Description

Array | Matrix | String
Either the retrieved subset or the updated matrix.

Examples #

// get a subset
var d = [[1, 2], [3, 4]];
math.subset(d, math.index(1, 0));        // returns 3
math.subset(d, math.index([0, 2], 1));   // returns [[2], [4]]

// replace a subset
var e = [];
var f = math.subset(e, math.index(0, [0, 2]), [5, 6]);  // f = [[5, 6]]
var g = math.subset(f, math.index(1, 1), 7, 0);         // g = [[5, 6], [0, 7]]

See also #

size,
resize,
squeeze,
index

  mathjs.org •
  copyright © 2013-2015 jos de jong •
  background by waseem dahman


text:
package com.lunatic.mlx.cuisines.mllib.trainers

import com.lunatic.mlx.cuisines.mllib.FlowData
import com.lunatic.mlx.cuisines.{Configuration, printEvaluationMetrix}
import com.lunatic.mlx.removeHdfsFile
import org.apache.spark.mllib.classification.{LogisticRegressionModel, LogisticRegressionWithLBFGS}
import org.apache.spark.{SparkConf, SparkContext}

/**
 *
 */
class LogisticRegressionTrainer() extends Trainer[LogisticRegressionModel] {

  def train(flowData: FlowData)(implicit sc: SparkContext) = {

    val numClasses = flowData.labelToIndex.size + 1

    val trainingData = flowData.data

    new LogisticRegressionWithLBFGS()
      .setNumClasses(numClasses)
      .run(trainingData)
  }

}

object LogisticRegressionTrainer {

  def apply() = new LogisticRegressionTrainer

  def main(args: Array[String]) = {

    val conf = new SparkConf(true).setAppName(this.getClass.getSimpleName).
      setMaster("local[*]")

    implicit val sc = new SparkContext(conf)
    implicit val configuration = Configuration(args)

    val flowData = FlowData.load(configuration.dataPath)

    val (model, metrics) = LogisticRegressionTrainer().trainEvaluate(flowData)

    removeHdfsFile(configuration.logisticRegPath)
    model.save(configuration.logisticRegPath)

    println(s"### ${model.self.getClass.getSimpleName} model evaluation")

    printEvaluationMetrix(metrics)

  }

}


text:
'use strict';

angular.module('core').controller('HomeController', ['$scope', 'Authentication',
	function($scope, Authentication) {
		// This provides Authentication context.
		$scope.authentication = Authentication;

		$scope.Alerts = [
			{
				icon: {
					className: 'glyphicon glyphicon-user',
					type: 'btn btn-success'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-cog',
					type: 'btn btn-success'
				},
				value: '9,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-user',
					type: 'btn btn-info'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-cog',
					type: 'btn btn-warning'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-user',
					type: 'btn btn-success'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-cog',
					type: 'btn btn-success'
				},
				value: '9,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-user',
					type: 'btn btn-info'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
			{
				icon: {
					className: 'glyphicon glyphicon-cog',
					type: 'btn btn-warning'
				},
				value: '12,345',
				mutedText: 'Total customers'
			},
		];
	}
]);


text:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Graphics2D;
import java.util.ArrayList;

public class Bullet extends GameObject {

	private double speed;
	private Player owner;

	protected double direction;

	public Bullet(Location location, double direction, double speed, int width, int height, Player owner, DoodleJump doodleJump) {
		super(location, width, height, doodleJump);
		super.health = 5;
		this.owner = owner;
		this.speed = speed;
		this.direction = direction;
	}

	private void checkCollision(Player p) {
		if (isOwner(p)) {
			return;
		}
		if (this.boundingRect().intersects(p.boundingRect())) {
			p.health -= 5;
			markRemove();
		}
	}

	public boolean isOwner(Player player) {
		return owner.equals(player);
	}

	public Player getOwner() {
		return owner;
	}

	@Override
	public void checkOffScreen() {
		markRemove();
	}

	@Override
	public void draw(Graphics2D g) {
		g.setColor(Color.BLACK);
		Rectangle bound = boundingRect();
		g.fillOval(bound.x, bound.y, bound.width, bound.height);
	}

	@Override
	public void checkCollision() {
		ArrayList<GameObject> gameObjects = doodleJump.gameObjects();
		for (int i = 0; i < gameObjects.size(); i++) {
			GameObject go = gameObjects.get(i);
			if (go.equals(this)) {
				continue;
			}
			if (go instanceof Player) {
				checkCollision((Player) go);
				continue;
			}

			if (this.boundingRect().intersects(go.boundingRect())) {
				markRemove();
			}
		}
	}

	@Override
	public void move() {
		this.location.addVector(speed, direction);
	}
}


text:
<?php
namespace Gis\Domain\Spatial\Model\Linestring;

use Gis\Core\DataProvider\IDataStruct;

/**
 * When we read the linestring from the db we leave the coordinates
 * in binary. This struct allows us to pass this record up to the
 * factory to unpack and create the regular LinestringStruct which
 * contains a SpatialObject with all of the coordinates.
 */
class LinestringBinaryStruct implements IDataStruct
{
	public $id;
	public $setId;
	public $part;
	public $latLongBin;
}


text:
package lab.chabingba.eventorganizer.Helpers.Constants;

/**
 * Created by Tsvetan on 2015-05-25.
 */
public final class GeneralConstants {
    public static final String DATE_FORMATTER = "yyyy.MM.dd";
    public static final String DATE_FORMATTER_DAY_OF_WEEK = "EEEE";
    public static final String DATE_FORMATTER_HOUR = "HH:mm";
    public static final String DATE_DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";

    public static final String EMPTY_STRING = "";

    public static final String FIRST_APP_RUN_VARIABLE = "FIRST_RUN";
    public static final String PREFS_NAME = "preferences";
}