408 lines
13 KiB
PHP
408 lines
13 KiB
PHP
<?php
|
|
/*
|
|
* Copyright 2014 Google Inc.
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
namespace Google\Service\Dataproc;
|
|
|
|
class InstanceGroupConfig extends \Google\Collection
|
|
{
|
|
/**
|
|
* Preemptibility is unspecified, the system will choose the appropriate
|
|
* setting for each instance group.
|
|
*/
|
|
public const PREEMPTIBILITY_PREEMPTIBILITY_UNSPECIFIED = 'PREEMPTIBILITY_UNSPECIFIED';
|
|
/**
|
|
* Instances are non-preemptible.This option is allowed for all instance
|
|
* groups and is the only valid value for Master and Worker instance groups.
|
|
*/
|
|
public const PREEMPTIBILITY_NON_PREEMPTIBLE = 'NON_PREEMPTIBLE';
|
|
/**
|
|
* Instances are preemptible
|
|
* (https://cloud.google.com/compute/docs/instances/preemptible).This option
|
|
* is allowed only for secondary worker
|
|
* (https://cloud.google.com/dataproc/docs/concepts/compute/secondary-vms)
|
|
* groups.
|
|
*/
|
|
public const PREEMPTIBILITY_PREEMPTIBLE = 'PREEMPTIBLE';
|
|
/**
|
|
* Instances are Spot VMs
|
|
* (https://cloud.google.com/compute/docs/instances/spot).This option is
|
|
* allowed only for secondary worker
|
|
* (https://cloud.google.com/dataproc/docs/concepts/compute/secondary-vms)
|
|
* groups. Spot VMs are the latest version of preemptible VMs
|
|
* (https://cloud.google.com/compute/docs/instances/preemptible), and provide
|
|
* additional features.
|
|
*/
|
|
public const PREEMPTIBILITY_SPOT = 'SPOT';
|
|
protected $collection_key = 'instanceReferences';
|
|
protected $acceleratorsType = AcceleratorConfig::class;
|
|
protected $acceleratorsDataType = 'array';
|
|
protected $diskConfigType = DiskConfig::class;
|
|
protected $diskConfigDataType = '';
|
|
/**
|
|
* Optional. The Compute Engine image resource used for cluster instances.The
|
|
* URI can represent an image or image family.Image examples: https://www.goog
|
|
* leapis.com/compute/v1/projects/[project_id]/global/images/[image-id]
|
|
* projects/[project_id]/global/images/[image-id] image-idImage family
|
|
* examples. Dataproc will use the most recent image from the family: https://
|
|
* www.googleapis.com/compute/v1/projects/[project_id]/global/images/family/[c
|
|
* ustom-image-family-name]
|
|
* projects/[project_id]/global/images/family/[custom-image-family-name]If the
|
|
* URI is unspecified, it will be inferred from SoftwareConfig.image_version
|
|
* or the system default.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $imageUri;
|
|
protected $instanceFlexibilityPolicyType = InstanceFlexibilityPolicy::class;
|
|
protected $instanceFlexibilityPolicyDataType = '';
|
|
/**
|
|
* Output only. The list of instance names. Dataproc derives the names from
|
|
* cluster_name, num_instances, and the instance group.
|
|
*
|
|
* @var string[]
|
|
*/
|
|
public $instanceNames;
|
|
protected $instanceReferencesType = InstanceReference::class;
|
|
protected $instanceReferencesDataType = 'array';
|
|
/**
|
|
* Output only. Specifies that this instance group contains preemptible
|
|
* instances.
|
|
*
|
|
* @var bool
|
|
*/
|
|
public $isPreemptible;
|
|
/**
|
|
* Optional. The Compute Engine machine type used for cluster instances.A full
|
|
* URL, partial URI, or short name are valid. Examples: https://www.googleapis
|
|
* .com/compute/v1/projects/[project_id]/zones/[zone]/machineTypes/n1-
|
|
* standard-2 projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2
|
|
* n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone
|
|
* Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-
|
|
* clusters/auto-zone#using_auto_zone_placement) feature, you must use the
|
|
* short name of the machine type resource, for example, n1-standard-2.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $machineTypeUri;
|
|
protected $managedGroupConfigType = ManagedGroupConfig::class;
|
|
protected $managedGroupConfigDataType = '';
|
|
/**
|
|
* Optional. Specifies the minimum cpu platform for the Instance Group. See
|
|
* Dataproc -> Minimum CPU Platform
|
|
* (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
|
|
*
|
|
* @var string
|
|
*/
|
|
public $minCpuPlatform;
|
|
/**
|
|
* Optional. The minimum number of primary worker instances to create. If
|
|
* min_num_instances is set, cluster creation will succeed if the number of
|
|
* primary workers created is at least equal to the min_num_instances
|
|
* number.Example: Cluster creation request with num_instances = 5 and
|
|
* min_num_instances = 3: If 4 VMs are created and 1 instance fails, the
|
|
* failed VM is deleted. The cluster is resized to 4 instances and placed in a
|
|
* RUNNING state. If 2 instances are created and 3 instances fail, the cluster
|
|
* in placed in an ERROR state. The failed VMs are not deleted.
|
|
*
|
|
* @var int
|
|
*/
|
|
public $minNumInstances;
|
|
/**
|
|
* Optional. The number of VM instances in the instance group. For HA cluster
|
|
* master_config groups, must be set to 3. For standard cluster master_config
|
|
* groups, must be set to 1.
|
|
*
|
|
* @var int
|
|
*/
|
|
public $numInstances;
|
|
/**
|
|
* Optional. Specifies the preemptibility of the instance group.The default
|
|
* value for master and worker groups is NON_PREEMPTIBLE. This default cannot
|
|
* be changed.The default value for secondary instances is PREEMPTIBLE.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $preemptibility;
|
|
protected $startupConfigType = StartupConfig::class;
|
|
protected $startupConfigDataType = '';
|
|
|
|
/**
|
|
* Optional. The Compute Engine accelerator configuration for these instances.
|
|
*
|
|
* @param AcceleratorConfig[] $accelerators
|
|
*/
|
|
public function setAccelerators($accelerators)
|
|
{
|
|
$this->accelerators = $accelerators;
|
|
}
|
|
/**
|
|
* @return AcceleratorConfig[]
|
|
*/
|
|
public function getAccelerators()
|
|
{
|
|
return $this->accelerators;
|
|
}
|
|
/**
|
|
* Optional. Disk option config settings.
|
|
*
|
|
* @param DiskConfig $diskConfig
|
|
*/
|
|
public function setDiskConfig(DiskConfig $diskConfig)
|
|
{
|
|
$this->diskConfig = $diskConfig;
|
|
}
|
|
/**
|
|
* @return DiskConfig
|
|
*/
|
|
public function getDiskConfig()
|
|
{
|
|
return $this->diskConfig;
|
|
}
|
|
/**
|
|
* Optional. The Compute Engine image resource used for cluster instances.The
|
|
* URI can represent an image or image family.Image examples: https://www.goog
|
|
* leapis.com/compute/v1/projects/[project_id]/global/images/[image-id]
|
|
* projects/[project_id]/global/images/[image-id] image-idImage family
|
|
* examples. Dataproc will use the most recent image from the family: https://
|
|
* www.googleapis.com/compute/v1/projects/[project_id]/global/images/family/[c
|
|
* ustom-image-family-name]
|
|
* projects/[project_id]/global/images/family/[custom-image-family-name]If the
|
|
* URI is unspecified, it will be inferred from SoftwareConfig.image_version
|
|
* or the system default.
|
|
*
|
|
* @param string $imageUri
|
|
*/
|
|
public function setImageUri($imageUri)
|
|
{
|
|
$this->imageUri = $imageUri;
|
|
}
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getImageUri()
|
|
{
|
|
return $this->imageUri;
|
|
}
|
|
/**
|
|
* Optional. Instance flexibility Policy allowing a mixture of VM shapes and
|
|
* provisioning models.
|
|
*
|
|
* @param InstanceFlexibilityPolicy $instanceFlexibilityPolicy
|
|
*/
|
|
public function setInstanceFlexibilityPolicy(InstanceFlexibilityPolicy $instanceFlexibilityPolicy)
|
|
{
|
|
$this->instanceFlexibilityPolicy = $instanceFlexibilityPolicy;
|
|
}
|
|
/**
|
|
* @return InstanceFlexibilityPolicy
|
|
*/
|
|
public function getInstanceFlexibilityPolicy()
|
|
{
|
|
return $this->instanceFlexibilityPolicy;
|
|
}
|
|
/**
|
|
* Output only. The list of instance names. Dataproc derives the names from
|
|
* cluster_name, num_instances, and the instance group.
|
|
*
|
|
* @param string[] $instanceNames
|
|
*/
|
|
public function setInstanceNames($instanceNames)
|
|
{
|
|
$this->instanceNames = $instanceNames;
|
|
}
|
|
/**
|
|
* @return string[]
|
|
*/
|
|
public function getInstanceNames()
|
|
{
|
|
return $this->instanceNames;
|
|
}
|
|
/**
|
|
* Output only. List of references to Compute Engine instances.
|
|
*
|
|
* @param InstanceReference[] $instanceReferences
|
|
*/
|
|
public function setInstanceReferences($instanceReferences)
|
|
{
|
|
$this->instanceReferences = $instanceReferences;
|
|
}
|
|
/**
|
|
* @return InstanceReference[]
|
|
*/
|
|
public function getInstanceReferences()
|
|
{
|
|
return $this->instanceReferences;
|
|
}
|
|
/**
|
|
* Output only. Specifies that this instance group contains preemptible
|
|
* instances.
|
|
*
|
|
* @param bool $isPreemptible
|
|
*/
|
|
public function setIsPreemptible($isPreemptible)
|
|
{
|
|
$this->isPreemptible = $isPreemptible;
|
|
}
|
|
/**
|
|
* @return bool
|
|
*/
|
|
public function getIsPreemptible()
|
|
{
|
|
return $this->isPreemptible;
|
|
}
|
|
/**
|
|
* Optional. The Compute Engine machine type used for cluster instances.A full
|
|
* URL, partial URI, or short name are valid. Examples: https://www.googleapis
|
|
* .com/compute/v1/projects/[project_id]/zones/[zone]/machineTypes/n1-
|
|
* standard-2 projects/[project_id]/zones/[zone]/machineTypes/n1-standard-2
|
|
* n1-standard-2Auto Zone Exception: If you are using the Dataproc Auto Zone
|
|
* Placement (https://cloud.google.com/dataproc/docs/concepts/configuring-
|
|
* clusters/auto-zone#using_auto_zone_placement) feature, you must use the
|
|
* short name of the machine type resource, for example, n1-standard-2.
|
|
*
|
|
* @param string $machineTypeUri
|
|
*/
|
|
public function setMachineTypeUri($machineTypeUri)
|
|
{
|
|
$this->machineTypeUri = $machineTypeUri;
|
|
}
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getMachineTypeUri()
|
|
{
|
|
return $this->machineTypeUri;
|
|
}
|
|
/**
|
|
* Output only. The config for Compute Engine Instance Group Manager that
|
|
* manages this group. This is only used for preemptible instance groups.
|
|
*
|
|
* @param ManagedGroupConfig $managedGroupConfig
|
|
*/
|
|
public function setManagedGroupConfig(ManagedGroupConfig $managedGroupConfig)
|
|
{
|
|
$this->managedGroupConfig = $managedGroupConfig;
|
|
}
|
|
/**
|
|
* @return ManagedGroupConfig
|
|
*/
|
|
public function getManagedGroupConfig()
|
|
{
|
|
return $this->managedGroupConfig;
|
|
}
|
|
/**
|
|
* Optional. Specifies the minimum cpu platform for the Instance Group. See
|
|
* Dataproc -> Minimum CPU Platform
|
|
* (https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).
|
|
*
|
|
* @param string $minCpuPlatform
|
|
*/
|
|
public function setMinCpuPlatform($minCpuPlatform)
|
|
{
|
|
$this->minCpuPlatform = $minCpuPlatform;
|
|
}
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getMinCpuPlatform()
|
|
{
|
|
return $this->minCpuPlatform;
|
|
}
|
|
/**
|
|
* Optional. The minimum number of primary worker instances to create. If
|
|
* min_num_instances is set, cluster creation will succeed if the number of
|
|
* primary workers created is at least equal to the min_num_instances
|
|
* number.Example: Cluster creation request with num_instances = 5 and
|
|
* min_num_instances = 3: If 4 VMs are created and 1 instance fails, the
|
|
* failed VM is deleted. The cluster is resized to 4 instances and placed in a
|
|
* RUNNING state. If 2 instances are created and 3 instances fail, the cluster
|
|
* in placed in an ERROR state. The failed VMs are not deleted.
|
|
*
|
|
* @param int $minNumInstances
|
|
*/
|
|
public function setMinNumInstances($minNumInstances)
|
|
{
|
|
$this->minNumInstances = $minNumInstances;
|
|
}
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getMinNumInstances()
|
|
{
|
|
return $this->minNumInstances;
|
|
}
|
|
/**
|
|
* Optional. The number of VM instances in the instance group. For HA cluster
|
|
* master_config groups, must be set to 3. For standard cluster master_config
|
|
* groups, must be set to 1.
|
|
*
|
|
* @param int $numInstances
|
|
*/
|
|
public function setNumInstances($numInstances)
|
|
{
|
|
$this->numInstances = $numInstances;
|
|
}
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getNumInstances()
|
|
{
|
|
return $this->numInstances;
|
|
}
|
|
/**
|
|
* Optional. Specifies the preemptibility of the instance group.The default
|
|
* value for master and worker groups is NON_PREEMPTIBLE. This default cannot
|
|
* be changed.The default value for secondary instances is PREEMPTIBLE.
|
|
*
|
|
* Accepted values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE,
|
|
* SPOT
|
|
*
|
|
* @param self::PREEMPTIBILITY_* $preemptibility
|
|
*/
|
|
public function setPreemptibility($preemptibility)
|
|
{
|
|
$this->preemptibility = $preemptibility;
|
|
}
|
|
/**
|
|
* @return self::PREEMPTIBILITY_*
|
|
*/
|
|
public function getPreemptibility()
|
|
{
|
|
return $this->preemptibility;
|
|
}
|
|
/**
|
|
* Optional. Configuration to handle the startup of instances during cluster
|
|
* create and update process.
|
|
*
|
|
* @param StartupConfig $startupConfig
|
|
*/
|
|
public function setStartupConfig(StartupConfig $startupConfig)
|
|
{
|
|
$this->startupConfig = $startupConfig;
|
|
}
|
|
/**
|
|
* @return StartupConfig
|
|
*/
|
|
public function getStartupConfig()
|
|
{
|
|
return $this->startupConfig;
|
|
}
|
|
}
|
|
|
|
// Adding a class alias for backwards compatibility with the previous class name.
|
|
class_alias(InstanceGroupConfig::class, 'Google_Service_Dataproc_InstanceGroupConfig');
|