/*
 * Copyright 2020 Google LLC
 *
 * 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
 *
 *     https://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.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/run/v2/k8s.min.proto

package com.google.cloud.run.v2;

public interface ResourceRequirementsOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.run.v2.ResourceRequirements)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Only ´memory´ and 'cpu' are supported.
   * &lt;p&gt;Notes:
   *  * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
   * CPU requires at least 2Gi of memory. For more information, go to
   * https://cloud.google.com/run/docs/configuring/cpu.
   *   * For supported 'memory' values and syntax, go to
   *  https://cloud.google.com/run/docs/configuring/memory-limits
   * </pre>
   *
   * <code>map&lt;string, string&gt; limits = 1;</code>
   */
  int getLimitsCount();
  /**
   *
   *
   * <pre>
   * Only ´memory´ and 'cpu' are supported.
   * &lt;p&gt;Notes:
   *  * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
   * CPU requires at least 2Gi of memory. For more information, go to
   * https://cloud.google.com/run/docs/configuring/cpu.
   *   * For supported 'memory' values and syntax, go to
   *  https://cloud.google.com/run/docs/configuring/memory-limits
   * </pre>
   *
   * <code>map&lt;string, string&gt; limits = 1;</code>
   */
  boolean containsLimits(java.lang.String key);
  /** Use {@link #getLimitsMap()} instead. */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, java.lang.String> getLimits();
  /**
   *
   *
   * <pre>
   * Only ´memory´ and 'cpu' are supported.
   * &lt;p&gt;Notes:
   *  * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
   * CPU requires at least 2Gi of memory. For more information, go to
   * https://cloud.google.com/run/docs/configuring/cpu.
   *   * For supported 'memory' values and syntax, go to
   *  https://cloud.google.com/run/docs/configuring/memory-limits
   * </pre>
   *
   * <code>map&lt;string, string&gt; limits = 1;</code>
   */
  java.util.Map<java.lang.String, java.lang.String> getLimitsMap();
  /**
   *
   *
   * <pre>
   * Only ´memory´ and 'cpu' are supported.
   * &lt;p&gt;Notes:
   *  * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
   * CPU requires at least 2Gi of memory. For more information, go to
   * https://cloud.google.com/run/docs/configuring/cpu.
   *   * For supported 'memory' values and syntax, go to
   *  https://cloud.google.com/run/docs/configuring/memory-limits
   * </pre>
   *
   * <code>map&lt;string, string&gt; limits = 1;</code>
   */
  /* nullable */
  java.lang.String getLimitsOrDefault(
      java.lang.String key,
      /* nullable */
      java.lang.String defaultValue);
  /**
   *
   *
   * <pre>
   * Only ´memory´ and 'cpu' are supported.
   * &lt;p&gt;Notes:
   *  * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4
   * CPU requires at least 2Gi of memory. For more information, go to
   * https://cloud.google.com/run/docs/configuring/cpu.
   *   * For supported 'memory' values and syntax, go to
   *  https://cloud.google.com/run/docs/configuring/memory-limits
   * </pre>
   *
   * <code>map&lt;string, string&gt; limits = 1;</code>
   */
  java.lang.String getLimitsOrThrow(java.lang.String key);

  /**
   *
   *
   * <pre>
   * Determines whether CPU should be throttled or not outside of requests.
   * </pre>
   *
   * <code>bool cpu_idle = 2;</code>
   *
   * @return The cpuIdle.
   */
  boolean getCpuIdle();

  /**
   *
   *
   * <pre>
   * Determines whether CPU should be boosted on startup of a new container
   * instance above the requested CPU threshold, this can help reduce cold-start
   * latency.
   * </pre>
   *
   * <code>bool startup_cpu_boost = 3;</code>
   *
   * @return The startupCpuBoost.
   */
  boolean getStartupCpuBoost();
}
