/*
 * 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/compute/v1/compute.proto

package com.google.cloud.compute.v1;

public interface AllocationSpecificSKUAllocationReservedInstancePropertiesOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.compute.v1.AllocationSpecificSKUAllocationReservedInstanceProperties)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Specifies accelerator type and count.
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.AcceleratorConfig guest_accelerators = 463595119;
   * </code>
   */
  java.util.List<com.google.cloud.compute.v1.AcceleratorConfig> getGuestAcceleratorsList();
  /**
   *
   *
   * <pre>
   * Specifies accelerator type and count.
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.AcceleratorConfig guest_accelerators = 463595119;
   * </code>
   */
  com.google.cloud.compute.v1.AcceleratorConfig getGuestAccelerators(int index);
  /**
   *
   *
   * <pre>
   * Specifies accelerator type and count.
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.AcceleratorConfig guest_accelerators = 463595119;
   * </code>
   */
  int getGuestAcceleratorsCount();
  /**
   *
   *
   * <pre>
   * Specifies accelerator type and count.
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.AcceleratorConfig guest_accelerators = 463595119;
   * </code>
   */
  java.util.List<? extends com.google.cloud.compute.v1.AcceleratorConfigOrBuilder>
      getGuestAcceleratorsOrBuilderList();
  /**
   *
   *
   * <pre>
   * Specifies accelerator type and count.
   * </pre>
   *
   * <code>repeated .google.cloud.compute.v1.AcceleratorConfig guest_accelerators = 463595119;
   * </code>
   */
  com.google.cloud.compute.v1.AcceleratorConfigOrBuilder getGuestAcceleratorsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.
   * </pre>
   *
   * <code>
   * repeated .google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk local_ssds = 229951299;
   * </code>
   */
  java.util.List<
          com.google.cloud.compute.v1
              .AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk>
      getLocalSsdsList();
  /**
   *
   *
   * <pre>
   * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.
   * </pre>
   *
   * <code>
   * repeated .google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk local_ssds = 229951299;
   * </code>
   */
  com.google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
      getLocalSsds(int index);
  /**
   *
   *
   * <pre>
   * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.
   * </pre>
   *
   * <code>
   * repeated .google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk local_ssds = 229951299;
   * </code>
   */
  int getLocalSsdsCount();
  /**
   *
   *
   * <pre>
   * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.
   * </pre>
   *
   * <code>
   * repeated .google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk local_ssds = 229951299;
   * </code>
   */
  java.util.List<
          ? extends
              com.google.cloud.compute.v1
                  .AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOrBuilder>
      getLocalSsdsOrBuilderList();
  /**
   *
   *
   * <pre>
   * Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.
   * </pre>
   *
   * <code>
   * repeated .google.cloud.compute.v1.AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk local_ssds = 229951299;
   * </code>
   */
  com.google.cloud.compute.v1
          .AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDiskOrBuilder
      getLocalSsdsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.
   * </pre>
   *
   * <code>optional string location_hint = 350519505;</code>
   *
   * @return Whether the locationHint field is set.
   */
  boolean hasLocationHint();
  /**
   *
   *
   * <pre>
   * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.
   * </pre>
   *
   * <code>optional string location_hint = 350519505;</code>
   *
   * @return The locationHint.
   */
  java.lang.String getLocationHint();
  /**
   *
   *
   * <pre>
   * An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.
   * </pre>
   *
   * <code>optional string location_hint = 350519505;</code>
   *
   * @return The bytes for locationHint.
   */
  com.google.protobuf.ByteString getLocationHintBytes();

  /**
   *
   *
   * <pre>
   * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
   * </pre>
   *
   * <code>optional string machine_type = 227711026;</code>
   *
   * @return Whether the machineType field is set.
   */
  boolean hasMachineType();
  /**
   *
   *
   * <pre>
   * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
   * </pre>
   *
   * <code>optional string machine_type = 227711026;</code>
   *
   * @return The machineType.
   */
  java.lang.String getMachineType();
  /**
   *
   *
   * <pre>
   * Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
   * </pre>
   *
   * <code>optional string machine_type = 227711026;</code>
   *
   * @return The bytes for machineType.
   */
  com.google.protobuf.ByteString getMachineTypeBytes();

  /**
   *
   *
   * <pre>
   * Minimum cpu platform the reservation.
   * </pre>
   *
   * <code>optional string min_cpu_platform = 242912759;</code>
   *
   * @return Whether the minCpuPlatform field is set.
   */
  boolean hasMinCpuPlatform();
  /**
   *
   *
   * <pre>
   * Minimum cpu platform the reservation.
   * </pre>
   *
   * <code>optional string min_cpu_platform = 242912759;</code>
   *
   * @return The minCpuPlatform.
   */
  java.lang.String getMinCpuPlatform();
  /**
   *
   *
   * <pre>
   * Minimum cpu platform the reservation.
   * </pre>
   *
   * <code>optional string min_cpu_platform = 242912759;</code>
   *
   * @return The bytes for minCpuPlatform.
   */
  com.google.protobuf.ByteString getMinCpuPlatformBytes();
}
