// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/redis/v1/cloud_redis.proto

package com.google.cloud.redis.v1;

public interface LocationMetadataOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.cloud.redis.v1.LocationMetadata)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Output only. The set of available zones in the location. The map is keyed
   * by the lowercase ID of each zone, as defined by GCE. These keys can be
   * specified in `location_id` or `alternative_location_id` fields when
   * creating a Redis instance.
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.redis.v1.ZoneMetadata&gt; available_zones = 1;</code>
   */
  int getAvailableZonesCount();
  /**
   * <pre>
   * Output only. The set of available zones in the location. The map is keyed
   * by the lowercase ID of each zone, as defined by GCE. These keys can be
   * specified in `location_id` or `alternative_location_id` fields when
   * creating a Redis instance.
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.redis.v1.ZoneMetadata&gt; available_zones = 1;</code>
   */
  boolean containsAvailableZones(
      java.lang.String key);
  /**
   * Use {@link #getAvailableZonesMap()} instead.
   */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, com.google.cloud.redis.v1.ZoneMetadata>
  getAvailableZones();
  /**
   * <pre>
   * Output only. The set of available zones in the location. The map is keyed
   * by the lowercase ID of each zone, as defined by GCE. These keys can be
   * specified in `location_id` or `alternative_location_id` fields when
   * creating a Redis instance.
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.redis.v1.ZoneMetadata&gt; available_zones = 1;</code>
   */
  java.util.Map<java.lang.String, com.google.cloud.redis.v1.ZoneMetadata>
  getAvailableZonesMap();
  /**
   * <pre>
   * Output only. The set of available zones in the location. The map is keyed
   * by the lowercase ID of each zone, as defined by GCE. These keys can be
   * specified in `location_id` or `alternative_location_id` fields when
   * creating a Redis instance.
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.redis.v1.ZoneMetadata&gt; available_zones = 1;</code>
   */

  com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
      java.lang.String key,
      com.google.cloud.redis.v1.ZoneMetadata defaultValue);
  /**
   * <pre>
   * Output only. The set of available zones in the location. The map is keyed
   * by the lowercase ID of each zone, as defined by GCE. These keys can be
   * specified in `location_id` or `alternative_location_id` fields when
   * creating a Redis instance.
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.redis.v1.ZoneMetadata&gt; available_zones = 1;</code>
   */

  com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrThrow(
      java.lang.String key);
}
